Libraries/ConfigDB/src/include/ConfigDB/Object.h
Go to the documentation of this file.
316 template <class UpdaterType, class DatabaseClassType, unsigned storeIndex, class ParentClassType, unsigned propIndex,
355 template <class ContainedClassType, class UpdaterType, class DatabaseClassType, unsigned storeIndex,
361 : ContainedClassType(*store, ParentClassType::typeinfo.getObject(propIndex), offset), store(store)
365 OuterObjectTemplate(DatabaseClassType& db) : OuterObjectTemplate(this->openStore(db, storeIndex))
375 OuterObjectUpdaterTemplate<UpdaterType, DatabaseClassType, storeIndex, ParentClassType, propIndex, offset>;
std::enable_if< std::is_integral< T >::value, String >::type toString(T value)
Definition: BitSet.h:481
Definition: Database.h:30
std::unique_ptr< ExportStream > createExportStream(Database &db) const override
Create a stream to serialize the entire database This is used for streaming asychronously to a web cl...
size_t exportToStream(const Object &object, Print &output) const override
Print object.
std::unique_ptr< ImportStream > createImportStream(Database &db) const override
Create a stream for de-serialising (writing) into the database Used when updating a database from a r...
Status importFromStream(Object &object, Stream &source) const override
De-serialise content from stream into object (RAM)
Used by code generator.
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:286
Used by code generator.
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:297
An object can contain other objects, properties and arrays.
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:37
const Store & getStore() const
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:101
Object & operator=(const Object &other)
const Database & getDatabase() const
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:108
StringId getStringId(const PropertyInfo &prop, const String &value)
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:258
PropertyConst getProperty(unsigned index) const
Status importFromFile(const Format &format, const String &filename)
bool typeIs(ObjectType type) const
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:81
Object * parent
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:274
bool isArray() const
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:86
Object(const Object &parent, unsigned propIndex, uint16_t dataRef=0)
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:71
void disposeArrays()
void setPropertyValue(unsigned index, const void *value)
String getPath() const
Object(const Object &other)
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:43
StoreUpdateRef lockStore(StoreRef &store)
bool isWriteable() const
void initArrays()
bool exportToFile(const Format &format, const String &filename) const
void queueUpdate(UpdateCallback callback)
Called from OuterObjectTemplate::update to queue an update.
const ObjectInfo & typeinfo() const
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:207
bool exportToStream(const Format &format, Print &output) const
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:188
void setPropertyValue(unsigned index, const String &value)
const PropertyInfo * propinfoPtr
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:273
const PropertyInfo & propinfo() const
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:202
void loadArrayDefaults()
Clear and load all contained arrays with defaults from schema.
Object(Object &parent, unsigned propIndex, uint16_t dataRef=0)
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:66
uint16_t streamPos
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:278
size_t printTo(Print &p) const
Object(const PropertyInfo &propinfo)
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:52
String getName() const
const PropertyData * getPropertyData(unsigned index) const
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:217
Database & getDatabase()
PropertyData * getPropertyData(unsigned index)
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:212
Object(Object &parent, const PropertyInfo &prop, uint16_t dataRef)
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:56
Store & getStore()
Property findProperty(const char *name, size_t length)
Find property by name.
bool isStore() const
Determine if this object is a store (not just a reference to it)
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:94
StoreRef openStore(Database &db, unsigned storeIndex)
String getPropertyString(unsigned index) const
StringId getStringId(const PropertyInfo &prop, const T &value)
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:263
StoreUpdateRef openStoreForUpdate(Database &db, unsigned storeIndex)
const Object getObject(unsigned index) const
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:124
uint16_t dataRef
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:275
Object findObject(const char *name, size_t length)
Find child object by name.
Object(const Object &parent, const PropertyInfo &prop, uint16_t dataRef)
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:61
StringId getStringId(const PropertyInfo &prop, const char *value, uint16_t valueLength)
void resetToDefaults()
Does a 'clear' followed by 'loadArrayDefaults'.
void * getDataPtr()
Object(Object &&)=delete
const void * getDataPtr() const
String getPropertyString(unsigned index, StringId id) const
Status importFromStream(const Format &format, Stream &source)
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:195
int findStringId(const char *value, uint16_t valueLength) const
bool writeCheck() const
Used by code generator.
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:358
OuterObjectTemplate(DatabaseClassType &db)
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:365
OuterObjectUpdaterTemplate< UpdaterType, DatabaseClassType, storeIndex, ParentClassType, propIndex, offset > OuterUpdater
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:375
bool update(Delegate< void(UpdaterType)> callback)
Run an update asynchronously.
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:399
OuterUpdater update()
Create an update object.
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:389
std::unique_ptr< ExportStream > createExportStream(const Format &format) const
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:369
OuterObjectTemplate(StoreRef store)
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:360
Used by code generator.
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:319
OuterObjectUpdaterTemplate(StoreUpdateRef store)
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:321
OuterObjectUpdaterTemplate(DatabaseClassType &db)
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:326
std::unique_ptr< ImportStream > createImportStream(const Format &format)
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:331
Manages a key/value pair stored in an object, or a simple array value.
Definition: Property.h:32
Definition: Property.h:69
Definition: StoreRef.h:29
Definition: StoreRef.h:46
Manages access to an object store, typically one file.
Definition: ConfigDB/src/include/ConfigDB/Store.h:43
const char * c_str() const
Get a constant (un-modifiable) pointer to String content.
Definition: WString.h:609
size_t length(void) const
Obtain the String length in characters, excluding NUL terminator.
Definition: WString.h:238
Format format
Definition: Array.h:26
uint16_t StringId
Defines contained string data using index into string pool.
Definition: PropertyInfo.h:60
Definition: Formatter.h:20
Definition: ObjectInfo.h:38
Definition: Status.h:54
Definition: PropertyData.h:44
static PropertyData * fromStruct(const PropertyInfo &prop, void *data)
Definition: PropertyData.h:68
1.9.1