eq::net::FullSlaveCM Class Reference

#include <fullSlaveCM.h>

Inheritance diagram for eq::net::FullSlaveCM:

Inheritance graph
[legend]
Collaboration diagram for eq::net::FullSlaveCM:

Collaboration graph
[legend]

List of all members.


Detailed Description

An object change manager handling full instance versions for slave instances.

Definition at line 26 of file fullSlaveCM.h.


Versioning

uint32_t _version
 The current version.
base::MTQueue
< ObjectDataIStream * > 
_queuedVersions
 The change queue.
virtual uint32_t commitNB ()
 Start committing a new version.
virtual uint32_t commitSync (const uint32_t commitID)
 Finalize a commit transaction.
virtual void obsolete (const uint32_t version)
 Explicitily obsolete all versions.
virtual void setAutoObsolete (const uint32_t count, const uint32_t flags)
 Automatically obsolete old versions.
virtual uint32_t getAutoObsoleteCount () const
virtual uint32_t sync (const uint32_t version)
 Sync to a given version.
virtual uint32_t getHeadVersion () const
virtual uint32_t getVersion () const
virtual uint32_t getOldestVersion () const
virtual bool isMaster () const
virtual uint32_t getMasterInstanceID () const
virtual void addSlave (NodePtr slave, const uint32_t instanceID, const uint32_t version)
 Add a subscribed slave to the managed object.
virtual void removeSlave (NodePtr node)
 Remove a subscribed slave.
virtual void applyMapData ()
 Apply the initial data after mapping.
virtual void _unpackOneVersion (ObjectDataIStream *is)
 Apply the data in the input stream to the object.

Public Member Functions

 FullSlaveCM (Object *object, uint32_t masterInstanceID)
virtual void notifyAttached ()
 Notification that the object is attached to a session.
virtual void makeThreadSafe ()
 Make this object thread safe.

Member Function Documentation

void eq::net::FullSlaveCM::notifyAttached (  )  [virtual]

Notification that the object is attached to a session.

Reimplemented from eq::net::StaticSlaveCM.

Definition at line 48 of file fullSlaveCM.cpp.

References eq::net::StaticSlaveCM::_object, eq::net::Session::getCommandThreadQueue(), eq::net::Object::getSession(), eq::net::StaticSlaveCM::notifyAttached(), and eq::net::Base::registerCommand().

Here is the call graph for this function:

void eq::net::FullSlaveCM::makeThreadSafe (  )  [virtual]

Make this object thread safe.

The caller has to ensure that no other thread is using this object when this function is called. It is primarily used by the session during object instanciation.

See also:
Session::getObject().

Reimplemented from eq::net::StaticSlaveCM.

Definition at line 64 of file fullSlaveCM.cpp.

virtual uint32_t eq::net::FullSlaveCM::commitNB (  )  [inline, virtual]

Start committing a new version.

Returns:
the commit identifier to be passed to commitSync
See also:
commitSync

Reimplemented from eq::net::StaticSlaveCM.

Definition at line 39 of file fullSlaveCM.h.

virtual uint32_t eq::net::FullSlaveCM::commitSync ( const uint32_t  commitID  )  [inline, virtual]

Finalize a commit transaction.

Parameters:
commitID the commit identifier returned from commitNB
Returns:
the new head version.

Reimplemented from eq::net::StaticSlaveCM.

Definition at line 40 of file fullSlaveCM.h.

virtual void eq::net::FullSlaveCM::obsolete ( const uint32_t  version  )  [inline, virtual]

Explicitily obsolete all versions.

Parameters:
version the version to obsolete

Reimplemented from eq::net::StaticSlaveCM.

Definition at line 43 of file fullSlaveCM.h.

virtual void eq::net::FullSlaveCM::setAutoObsolete ( const uint32_t  count,
const uint32_t  flags 
) [inline, virtual]

Automatically obsolete old versions.

Parameters:
count the number of versions to retain, excluding the head version.
flags additional flags for the auto-obsoletion mechanism

Reimplemented from eq::net::StaticSlaveCM.

Definition at line 45 of file fullSlaveCM.h.

virtual uint32_t eq::net::FullSlaveCM::getAutoObsoleteCount (  )  const [inline, virtual]

Returns:
get the number of versions this object retains.

Reimplemented from eq::net::StaticSlaveCM.

Definition at line 47 of file fullSlaveCM.h.

uint32_t eq::net::FullSlaveCM::sync ( const uint32_t  version  )  [virtual]

Sync to a given version.

Parameters:
version the version to synchronize, must be bigger than the current version.
Returns:
the version of the object after the operation.

Reimplemented from eq::net::StaticSlaveCM.

Definition at line 71 of file fullSlaveCM.cpp.

References eq::net::StaticSlaveCM::_object, _queuedVersions, _unpackOneVersion(), _version, eq::net::Object::getID(), eq::net::Object::getInstanceID(), eq::net::Object::getLocalNode(), and eq::net::ObjectDataIStream::getVersion().

Here is the call graph for this function:

uint32_t eq::net::FullSlaveCM::getHeadVersion (  )  const [virtual]

Returns:
the latest available (head) version.

Reimplemented from eq::net::StaticSlaveCM.

Definition at line 123 of file fullSlaveCM.cpp.

References _queuedVersions, _version, and eq::net::ObjectDataIStream::getVersion().

Here is the call graph for this function:

virtual uint32_t eq::net::FullSlaveCM::getVersion (  )  const [inline, virtual]

Returns:
the current version.

Reimplemented from eq::net::StaticSlaveCM.

Definition at line 53 of file fullSlaveCM.h.

References _version.

virtual uint32_t eq::net::FullSlaveCM::getOldestVersion (  )  const [inline, virtual]

Returns:
the oldest available version.

Reimplemented from eq::net::StaticSlaveCM.

Definition at line 54 of file fullSlaveCM.h.

References _version.

virtual bool eq::net::FullSlaveCM::isMaster (  )  const [inline, virtual]

Returns:
if this instance is the master version.

Reimplemented from eq::net::StaticSlaveCM.

Definition at line 57 of file fullSlaveCM.h.

virtual uint32_t eq::net::FullSlaveCM::getMasterInstanceID (  )  const [inline, virtual]

Returns:
the instance identifier of the master object.

Reimplemented from eq::net::StaticSlaveCM.

Definition at line 58 of file fullSlaveCM.h.

virtual void eq::net::FullSlaveCM::addSlave ( NodePtr  node,
const uint32_t  instanceID,
const uint32_t  version 
) [inline, virtual]

Add a subscribed slave to the managed object.

Parameters:
node the slave node.
instanceID the object instance identifier on the slave node.
version the initial version.

Reimplemented from eq::net::StaticSlaveCM.

Definition at line 60 of file fullSlaveCM.h.

virtual void eq::net::FullSlaveCM::removeSlave ( NodePtr  node  )  [inline, virtual]

Remove a subscribed slave.

Parameters:
node the slave node.

Reimplemented from eq::net::StaticSlaveCM.

Definition at line 62 of file fullSlaveCM.h.

void eq::net::FullSlaveCM::applyMapData (  )  [virtual]


Member Data Documentation

uint32_t eq::net::FullSlaveCM::_version [protected]

The current version.

Definition at line 68 of file fullSlaveCM.h.

Referenced by _unpackOneVersion(), applyMapData(), getHeadVersion(), getOldestVersion(), getVersion(), and sync().

The change queue.

Definition at line 71 of file fullSlaveCM.h.

Referenced by getHeadVersion(), and sync().


The documentation for this class was generated from the following files:
Generated on Sat Dec 6 12:01:51 2008 for Equalizer 0.6 by  doxygen 1.5.5