diff options
| author | Ted Ross <tross@apache.org> | 2010-03-02 03:25:56 +0000 |
|---|---|---|
| committer | Ted Ross <tross@apache.org> | 2010-03-02 03:25:56 +0000 |
| commit | 26883f5dcdd17e31fad56d89bda169eb1e5a281f (patch) | |
| tree | 9a6706120771ed48990db8b416d35f949d060a34 /qpid/cpp/src/qmf/engine/DataImpl.h | |
| parent | 4133cb8e05f8ea6bac29e1e5cf81afaa3d3a591a (diff) | |
| download | qpid-python-qmf-devel0.7.tar.gz | |
Update branch with new Agent engine implementation:qmf-devel0.7
- Data hooks to allow batched and partial updates from internal storage.
- Capability for immediate updates for deletion and changing of discrete values.
- Implementation of query and event-raise.
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/qmf-devel0.7@917854 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src/qmf/engine/DataImpl.h')
| -rw-r--r-- | qpid/cpp/src/qmf/engine/DataImpl.h | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/qpid/cpp/src/qmf/engine/DataImpl.h b/qpid/cpp/src/qmf/engine/DataImpl.h index 92559ae634..3974aafde7 100644 --- a/qpid/cpp/src/qmf/engine/DataImpl.h +++ b/qpid/cpp/src/qmf/engine/DataImpl.h @@ -35,7 +35,18 @@ namespace engine { typedef boost::shared_ptr<Data> DataPtr; + class DataManager { + public: + virtual ~DataManager() {} + virtual void modifyStart(DataPtr data) = 0; + virtual void modifyDone(DataPtr data) = 0; + virtual void destroy(DataPtr data) = 0; + + }; + struct DataImpl { + qpid::sys::Mutex lock; + /** * Content of the object's data */ @@ -56,8 +67,15 @@ namespace engine { uint64_t destroyTime; uint64_t lastUpdatedTime; + DataManager* manager; + DataPtr parent; + DataImpl(); DataImpl(SchemaClass* type, const qpid::messaging::Variant::Map&); + DataImpl(const DataImpl& from) : + values(from.values), subtypes(from.subtypes), objectClass(from.objectClass), + key(from.key), createTime(from.createTime), destroyTime(from.destroyTime), + lastUpdatedTime(from.lastUpdatedTime), manager(0) {} ~DataImpl() {} const qpid::messaging::Variant::Map& getValues() const { return values; } @@ -67,15 +85,17 @@ namespace engine { qpid::messaging::Variant::Map& getSubtypes() { return subtypes; } const SchemaClass* getSchema() const { return objectClass; } - void setSchema(SchemaClass* schema) { objectClass = schema; } const char* getKey() const { return key.c_str(); } void setKey(const char* _key) { key = _key; } - void touch(); + void modifyStart(); + void modifyDone(); void destroy(); qpid::messaging::Variant::Map asMap() const; + qpid::messaging::Variant::Map asMapDelta(Data& base) const; + void registerManager(DataManager* manager, DataPtr data); }; } } |
