#include <ipersistent.h>
Inheritance diagram for Steinberg::IAttributes:

Public Member Functions | |
Methods to write attributes | |
| virtual tresult PLUGIN_API | set (IAttrID attrID, const FVariant &data)=0 |
| virtual tresult PLUGIN_API | queue (IAttrID listID, const FVariant &data)=0 |
| virtual tresult PLUGIN_API | setBinaryData (IAttrID attrID, void *data, uint32 bytes, bool copyBytes)=0 |
Methods to read attributes | |
| virtual tresult PLUGIN_API | get (IAttrID attrID, FVariant &data)=0 |
| virtual tresult PLUGIN_API | unqueue (IAttrID listID, FVariant &data)=0 |
| virtual int32 PLUGIN_API | getQueueItemCount (IAttrID)=0 |
| virtual tresult PLUGIN_API | resetQueue (IAttrID attrID)=0 |
| virtual tresult PLUGIN_API | resetAllQueues ()=0 |
| virtual tresult PLUGIN_API | getBinaryData (IAttrID attrID, void *data, uint32 bytes)=0 |
| virtual uint32 PLUGIN_API | getBinaryDataSize (IAttrID attrID)=0 |
Static Public Attributes | |
| static const FUID | iid |
All data stored to the archive are identified by a string (IAttrID), which must be unique on each IAttribute level.
The basic set/get methods make use of the FVariant class defined in 'funknown.h'. For a more convenient usage of this interface, you should use the functions defined in namespace PAttributes (public.sdk/source/common/pattriutes.h+cpp) !!
Definition at line 89 of file ipersistent.h.
| virtual tresult PLUGIN_API Steinberg::IAttributes::get | ( | IAttrID | attrID, | |
| FVariant & | data | |||
| ) | [pure virtual] |
Get data previously stored to the archive.
| virtual tresult PLUGIN_API Steinberg::IAttributes::getBinaryData | ( | IAttrID | attrID, | |
| void * | data, | |||
| uint32 | bytes | |||
| ) | [pure virtual] |
Read binary data from the archive. The data is copied into the passed buffer. The size of that buffer must fit the size of data stored in the archive which can be queried via IAttributes::getBinaryDataSize
| virtual uint32 PLUGIN_API Steinberg::IAttributes::getBinaryDataSize | ( | IAttrID | attrID | ) | [pure virtual] |
Get the size in bytes of binary data in the archive.
Get the amount of items in a queue.
| virtual tresult PLUGIN_API Steinberg::IAttributes::queue | ( | IAttrID | listID, | |
| const FVariant & | data | |||
| ) | [pure virtual] |
Store a list of data in the archive. Please note that the type of data is not mixable! So you can only store a list of intergers or a list of doubles/strings/etc. You can also store a list of subattributes or other objects that implement the IPersistent interface.
| virtual tresult PLUGIN_API Steinberg::IAttributes::resetAllQueues | ( | ) | [pure virtual] |
Reset all queues in the archive.
Reset a queue. If you need to restart reading a queue, you have to reset it. You can reset a queue at any time.
| virtual tresult PLUGIN_API Steinberg::IAttributes::set | ( | IAttrID | attrID, | |
| const FVariant & | data | |||
| ) | [pure virtual] |
Store any data in the archive. It is even possible to store sub-attributes by creating a new IAttributes instance via the IHostClasses interface and pass it to the parent in the FVariant. In this case the archive must take the ownership of the newly created object, which is true for all objects that have been created only for storing. You tell the archive to take ownership by adding the FVariant::kOwner flag to the FVariant::type member (data.type |= FVariant::kOwner). When using the PAttributes functions, this is done through a function parameter.
| virtual tresult PLUGIN_API Steinberg::IAttributes::setBinaryData | ( | IAttrID | attrID, | |
| void * | data, | |||
| uint32 | bytes, | |||
| bool | copyBytes | |||
| ) | [pure virtual] |
Store binary data in the archive. Parameter 'copyBytes' defines if the passed data should be copied. The archive can not take the ownership of binary data. Either it just references a buffer in order to write it to a file (copyBytes = false) or it copies the data to its own buffers (copyBytes = true). When binary data should be stored in the default pool for example, you must always copy it!
| virtual tresult PLUGIN_API Steinberg::IAttributes::unqueue | ( | IAttrID | listID, | |
| FVariant & | data | |||
| ) | [pure virtual] |
Get list of data previously stored to the archive. As long as there are queue members the method will return kResultTrue. When the queue is empty, the methods returns kResultFalse. All lists except from object lists can be reset which means that the items can be read once again.
const FUID Steinberg::IAttributes::iid [static] |