21 #ifndef CO_OBJECTMAP_H 22 #define CO_OBJECTMAP_H 24 #include <co/serializable.h> 28 namespace detail {
class ObjectMap; }
58 CO_API
virtual ~ObjectMap();
71 CO_API
bool register_(
Object*
object,
const uint32_t type );
84 CO_API
bool deregister(
Object*
object );
102 CO_API
Object* map(
const uint128_t& identifier,
Object* instance = 0 );
115 CO_API
bool unmap(
Object*
object );
121 CO_API uint128_t commit(
const uint32_t incarnation =
122 CO_COMMIT_NEXT )
override;
125 CO_API
bool isDirty()
const override;
129 const uint64_t dirtyBits )
override;
133 const uint64_t dirtyBits )
override;
136 CO_API
void notifyAttached()
override;
141 DIRTY_ADDED = Serializable::DIRTY_CUSTOM << 0,
142 DIRTY_REMOVED = Serializable::DIRTY_CUSTOM << 1,
143 DIRTY_CHANGED = Serializable::DIRTY_CUSTOM << 2,
144 DIRTY_CUSTOM = Serializable::DIRTY_CUSTOM << 3
148 detail::ObjectMap*
const _impl;
151 void _commitMasters(
const uint32_t incarnation );
154 #endif // CO_OBJECTMAP_H Base class for distributed, inheritable objects.
CO_API std::string serialize(const ConnectionDescriptions &)
Serialize a vector of connection descriptions to a string.
ChangeType getChangeType() const override
ChangeType
Object change handling characteristics, see Programming Guide.
A std::ostream-like interface for object serialization.
Object-oriented network library.
A distributed object registry.
Interface for entities which map and register objects.
The interface to create objects, used by ObjectMap.
A std::istream-like input data stream for binary data.
CO_API bool deserialize(std::string &data, ConnectionDescriptions &descriptions)
Deserialize a vector or connection descriptions from a string.