Libraries/ConfigDB/src/include/ConfigDB/Object.h
Go to the documentation of this file.
197 bool exportToStream(const Format& format, Print& output, const ExportOptions& options = {}) const
208 bool exportToFile(const Format& format, const String& filename, const ExportOptions& options = {}) const;
341 template <class UpdaterType, class DatabaseClassType, unsigned storeIndex, class ParentClassType, unsigned propIndex,
384 template <class ContainedClassType, class UpdaterType, class DatabaseClassType, unsigned storeIndex,
390 : ContainedClassType(*store, ParentClassType::typeinfo.getObject(propIndex), offset), store(store)
394 OuterObjectTemplate(DatabaseClassType& db) : OuterObjectTemplate(this->openStore(db, storeIndex))
404 std::unique_ptr<ExportStream> createExportStream(const Format& format, const ExportOptions& options = {}) const
410 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
size_t exportToStream(const Object &object, Print &output, const ExportOptions &options) const override
Print object.
std::unique_ptr< ExportStream > createExportStream(Database &db, const ExportOptions &options) const override
Create a stream to serialize the entire database.
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:311
Used by code generator.
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:322
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:283
PropertyConst getProperty(unsigned index) const
Status importFromFile(const Format &format, const String &filename)
Import content to this object.
bool typeIs(ObjectType type) const
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:81
Object * parent
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:299
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()
void queueUpdate(UpdateCallback callback)
Called from OuterObjectTemplate::update to queue an update.
const ObjectInfo & typeinfo() const
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:232
void setPropertyValue(unsigned index, const String &value)
const PropertyInfo * propinfoPtr
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:298
const PropertyInfo & propinfo() const
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:227
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:303
size_t printTo(Print &p) const
Support standard streaming output of this object's content in prettified JSON.
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:242
bool exportToFile(const Format &format, const String &filename, const ExportOptions &options={}) const
Export object to an output stream.
Database & getDatabase()
PropertyData * getPropertyData(unsigned index)
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:237
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
bool exportToStream(const Format &format, Print &output, const ExportOptions &options={}) const
Export object to an output stream.
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:197
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:288
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:300
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)
Import content to this object.
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:215
int findStringId(const char *value, uint16_t valueLength) const
bool writeCheck() const
Used by code generator.
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:387
std::unique_ptr< ExportStream > createExportStream(const Format &format, const ExportOptions &options={}) const
Create a read-only stream for serializing object contents.
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:404
OuterObjectTemplate(DatabaseClassType &db)
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:394
OuterObjectUpdaterTemplate< UpdaterType, DatabaseClassType, storeIndex, ParentClassType, propIndex, offset > OuterUpdater
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:410
bool update(Delegate< void(UpdaterType)> callback)
Run an update asynchronously.
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:434
OuterUpdater update()
Create an update object.
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:424
OuterObjectTemplate(StoreRef store)
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:389
Used by code generator.
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:344
OuterObjectUpdaterTemplate(StoreUpdateRef store)
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:346
OuterObjectUpdaterTemplate(DatabaseClassType &db)
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:351
std::unique_ptr< ImportStream > createImportStream(const Format &format)
Create a write-only stream for importing data to this object.
Definition: Libraries/ConfigDB/src/include/ConfigDB/Object.h:360
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
Options for streaming object output.
Definition: Libraries/ConfigDB/src/include/ConfigDB/Format.h:41
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