MDSTk Libraries  1.1.0
Medical Data Segmentation Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
mds::mod::CSHMSerializer Class Reference

Fast serialization of data entities and their members over shared memory. More...

#include <mdsSHMSerializer.h>

Inheritance diagram for mds::mod::CSHMSerializer:
Inheritance graph
[legend]

List of all members.

Public Types

enum  { CLASS_OBJECT }
 Templates that require members of the CObject class can use this enum to check the existence. More...
enum  { HEAP_OBJECT = 0x70616568 }
 Signature used to recognize objects on the heap. More...
typedef CChannelSerializer
< CSHMSerializer
tBase
 Base class.
typedef mds::base::CFunctor
< bool, int, int
tProgressFunc
 Progress observer (= functor).
typedef CProgressInitializer tProgressInitializer
 Helper class which can be used to call methods beginProgress() and endProgress() automatically.
typedef CSHMSerializer tSerializer
 Serializer type.

Public Member Functions

CHasOptionsaddOption (int Flag)
 Adds a given flag using bitwise OR operation.
void beginProgress ()
 This function must be called by the class realizing an operation before it starts.
template<typename T >
void beginRead (T &Object)
 Reads information on logical group of class members from the serialized data.
template<typename T >
void beginRead (T &Object)
 Reads information on logical group of class members from the serialized data.
template<typename T >
void beginWrite (T &Object)
 Creates a new logical group of class members in the serialized data.
template<typename T >
void beginWrite (T &Object)
 Creates a new logical group of class members in the serialized data.
bool checkAllOptions (int Flags) const
 Checks if all specified flags are set.
bool checkAnyOption (int Flags) const
 Checks if any of specified flags is set.
int checkOption (int Flag) const
 Checks if a single flag is set.
CHasOptionsclearOption (int Flag)
 Removes a given flag.
 CSHMSerializer (CSharedMemChannel *pChannel, int iFlags=0)
 Default constructor.
void deregisterProgressFunc ()
 Sets the default empty observer.
void endProgress ()
 The function must be called by the class realizing an operation every time the operation finishes.
template<typename T >
void endRead (T &Object)
 Reads end of the logical group.
template<typename T >
void endRead (T &Object)
 Reads end of the logical group.
template<typename T >
void endWrite (T &Object)
 End of the logical group.
template<typename T >
void endWrite (T &Object)
 End of the logical group.
CChannelgetChannelPtr ()
 Returns pointer to the I/O channel.
tSerializergetImpl ()
 Returns reference to the serializer implementation.
const tSerializergetImpl () const
int getOptions () const
 Returns all flags.
int getProgressCount () const
 Returns current value of the internal progress value.
int getProgressMax () const
 Returns the maximum allowed value of the internal progress counter.
int getReferencesCount () const
 Returns the number of references.
bool isOnHeap () const
 Returns true if the object is allocated on the heap.
 MDS_SHAREDPTR (CSHMSerializer)
 Smart pointer type.
bool progress (int iIncrement=1)
 Calls the registered observer.
template<typename T >
void read (T &Value)
 Deserializes a given fundamental value.
template<typename T >
void read (T *pData, tSize Length)
 Deserializes a given block of data.
template<typename T >
void read (mds::base::CSHMData< T > &Value)
 Deserializes a block of data stored in a CSHMData<> structure.
template<typename T >
void read (T &Value)
 Deserializes a given fundamental value.
template<typename T >
void read (mds::base::CSHMData< T > &Data)
template<typename T >
void read (T *pData, tSize Length)
 Deserializes a given block of data.
template<typename T >
void readRoot (T &Object)
 Deserializes a given data entity.
template<typename T >
void readRoot (T &Object)
 Deserializes a given data entity.
void registerProgressFunc (const tProgressFunc &Func)
 Sets observer/functor called to inform a calling process about the current state of the running operation.
void setChannel (CChannel *pChannel)
 Sets the I/O channel.
CHasOptionssetOption (int Flag)
 Adds a given flag using bitwise OR operation.
CHasOptionssetOptions (int Flags)
 Sets complete flags.
void setProgressMax (int iValue)
 Sets the maximal counter value.
template<typename T >
void write (const T &Value)
 Serializes a given fundamental value.
template<typename T >
void write (const T &Value)
 Serializes a given fundamental value.
template<typename T >
void write (mds::base::CSHMData< T > &Data)
template<typename T >
void write (const T *pData, tSize Length)
 Serializes a given block of data.
template<typename T >
void write (mds::base::CSHMData< T > &Value)
 Serializes a block of data stored in a CSHMData<> structure.
template<typename T >
void write (const T *pData, tSize Length)
 Serializes a given block of data.
template<typename T >
void writeRoot (T &Object)
 Serializes a given data entity.
template<typename T >
void writeRoot (T &Object)
 Serializes a given data entity.
 ~CSHMSerializer ()
 Destructor.

Static Public Member Functions

static void * operator new (std::size_t Size)
 Allocates a new object on the heap.

Protected Member Functions

void addReference () const
 Increase the reference counter.
bool delReference () const
 Decrease the reference counter.

Protected Attributes

int m_iHeapObject
 Flag initialized if the object is on the heap.
int m_iReferences
 The number of references to the object.
int m_Options
 Optional flags.
CSharedMemChannelPtr m_spActiveChannel
 Smart pointer to actively used channel.
CChannelPtr m_spChannel
 Pointer to the I/O channel.

Detailed Description

Fast serialization of data entities and their members over shared memory.


Member Typedef Documentation

Base class.

Progress observer (= functor).

  • You may return false from the observer if you want to terminate the running operation.
  • Parameters describe current and final state of the pending operation (counter and maximal value).
  • If the second parameter is equal to -1, termination time cannot be determined, the current state is unknown.

Helper class which can be used to call methods beginProgress() and endProgress() automatically.

Create static object of this type at the begining of a method that realizes an operation.

Serializer type.


Member Enumeration Documentation

anonymous enum [inherited]

Templates that require members of the CObject class can use this enum to check the existence.

Enumerator:
CLASS_OBJECT 
anonymous enum [inherited]

Signature used to recognize objects on the heap.

Enumerator:
HEAP_OBJECT 

Constructor & Destructor Documentation

Default constructor.

Destructor.


Member Function Documentation

Adds a given flag using bitwise OR operation.

void mds::base::CObject::addReference ( ) const [protected, inherited]

Increase the reference counter.

void mds::mod::CProgress::beginProgress ( ) [inherited]

This function must be called by the class realizing an operation before it starts.

template<typename T >
void mds::mod::CSHMSerializer::beginRead ( T &  Object)

Reads information on logical group of class members from the serialized data.

  • Must be called before any read() method.
  • Throws exception on failure.

Reimplemented from mds::mod::CChannelSerializer< CSHMSerializer >.

template<typename T >
void mds::mod::CSHMSerializer::beginRead ( T &  Object)

Reads information on logical group of class members from the serialized data.

  • Must be called before any read() method.
  • Throws exception on failure.

Reimplemented from mds::mod::CChannelSerializer< CSHMSerializer >.

template<typename T >
void mds::mod::CSHMSerializer::beginWrite ( T &  Object)

Creates a new logical group of class members in the serialized data.

  • Properties of the group, such as compression method, are chosen according to the serialization traits.
  • Must be called before any write() method.
  • Throws exception on failure.

Reimplemented from mds::mod::CChannelSerializer< CSHMSerializer >.

template<typename T >
void mds::mod::CSHMSerializer::beginWrite ( T &  Object)

Creates a new logical group of class members in the serialized data.

  • Properties of the group, such as compression method, are chosen according to the serialization traits.
  • Must be called before any write() method.
  • Throws exception on failure.

Reimplemented from mds::mod::CChannelSerializer< CSHMSerializer >.

bool mds::base::CHasOptions::checkAllOptions ( int  Flags) const [inherited]

Checks if all specified flags are set.

bool mds::base::CHasOptions::checkAnyOption ( int  Flags) const [inherited]

Checks if any of specified flags is set.

int mds::base::CHasOptions::checkOption ( int  Flag) const [inherited]

Checks if a single flag is set.

  • Returns zero on false.

Removes a given flag.

bool mds::base::CObject::delReference ( ) const [protected, inherited]

Decrease the reference counter.

  • Returns true if the decremented number of references is lower or equal to zero and object must be deleted.

Sets the default empty observer.

void mds::mod::CProgress::endProgress ( ) [inherited]

The function must be called by the class realizing an operation every time the operation finishes.

  • Sets the default observer.
template<typename T >
void mds::mod::CSHMSerializer::endRead ( T &  Object)

Reads end of the logical group.

  • Throws exception on failure.

Reimplemented from mds::mod::CChannelSerializer< CSHMSerializer >.

template<typename T >
void mds::mod::CSHMSerializer::endRead ( T &  Object)

Reads end of the logical group.

  • Throws exception on failure.

Reimplemented from mds::mod::CChannelSerializer< CSHMSerializer >.

template<typename T >
void mds::mod::CSHMSerializer::endWrite ( T &  Object)

End of the logical group.

  • Throws exception on failure.

Reimplemented from mds::mod::CChannelSerializer< CSHMSerializer >.

template<typename T >
void mds::mod::CSHMSerializer::endWrite ( T &  Object)

End of the logical group.

  • Throws exception on failure.

Reimplemented from mds::mod::CChannelSerializer< CSHMSerializer >.

Returns pointer to the I/O channel.

Returns reference to the serializer implementation.

int mds::base::CHasOptions::getOptions ( ) const [inherited]

Returns all flags.

Returns current value of the internal progress value.

Returns the maximum allowed value of the internal progress counter.

Returns the number of references.

bool mds::base::CObject::isOnHeap ( ) const [inherited]

Returns true if the object is allocated on the heap.

Smart pointer type.

  • Declares type tSmartPtr.
static void* mds::base::CObject::operator new ( std::size_t  Size) [static, inherited]

Allocates a new object on the heap.

bool mds::mod::CProgress::progress ( int  iIncrement = 1) [inherited]

Calls the registered observer.

  • Returns false if the running operation should be terminated as soon as possible.
  • It must be called periodically by the class realizing the operation.
template<typename T >
void mds::mod::CSHMSerializer::read ( T &  Value)

Deserializes a given fundamental value.

  • Throws exception on failure.

Reimplemented from mds::mod::CChannelSerializer< CSHMSerializer >.

template<typename T >
void mds::mod::CSHMSerializer::read ( T *  pData,
tSize  Length 
)

Deserializes a given block of data.

  • Throws exception on failure.

Reimplemented from mds::mod::CChannelSerializer< CSHMSerializer >.

template<typename T >
void mds::mod::CSHMSerializer::read ( mds::base::CSHMData< T > &  Value)

Deserializes a block of data stored in a CSHMData<> structure.

  • Throws exception on failure.
template<typename T >
void mds::mod::CSHMSerializer::read ( T &  Value)

Deserializes a given fundamental value.

  • Throws exception on failure.
  • Derived classes have to implement this method!

Reimplemented from mds::mod::CChannelSerializer< CSHMSerializer >.

template<typename T >
void mds::mod::CSHMSerializer::read ( mds::base::CSHMData< T > &  Data)
template<typename T >
void mds::mod::CSHMSerializer::read ( T *  pData,
tSize  Length 
)

Deserializes a given block of data.

  • Throws exception on failure.
  • Derived classes have to implement this method!

Reimplemented from mds::mod::CChannelSerializer< CSHMSerializer >.

template<typename T >
void mds::mod::CSHMSerializer::readRoot ( T &  Object)

Deserializes a given data entity.

  • Throws exception on failure.

Reimplemented from mds::mod::CChannelSerializer< CSHMSerializer >.

template<typename T >
void mds::mod::CSHMSerializer::readRoot ( T &  Object)

Deserializes a given data entity.

  • Throws exception on failure.
  • Derived classes have to implement this method!

Reimplemented from mds::mod::CChannelSerializer< CSHMSerializer >.

void mds::mod::CProgress::registerProgressFunc ( const tProgressFunc Func) [inherited]

Sets observer/functor called to inform a calling process about the current state of the running operation.

  • This function should be called before any operation starts.
void mds::mod::CChannelSerializer< CSHMSerializer >::setChannel ( CChannel pChannel) [inherited]

Sets the I/O channel.

Adds a given flag using bitwise OR operation.

Sets complete flags.

void mds::mod::CProgress::setProgressMax ( int  iValue) [inherited]

Sets the maximal counter value.

template<typename T >
void mds::mod::CSHMSerializer::write ( const T &  Value)

Serializes a given fundamental value.

  • Throws exception on failure.
  • Derived classes have to implement this method!

Reimplemented from mds::mod::CChannelSerializer< CSHMSerializer >.

template<typename T >
void mds::mod::CSHMSerializer::write ( const T &  Value)

Serializes a given fundamental value.

  • Throws exception on failure.

Reimplemented from mds::mod::CChannelSerializer< CSHMSerializer >.

template<typename T >
void mds::mod::CSHMSerializer::write ( mds::base::CSHMData< T > &  Data)
template<typename T >
void mds::mod::CSHMSerializer::write ( const T *  pData,
tSize  Length 
)

Serializes a given block of data.

  • Throws exception on failure.

Reimplemented from mds::mod::CChannelSerializer< CSHMSerializer >.

template<typename T >
void mds::mod::CSHMSerializer::write ( mds::base::CSHMData< T > &  Value)

Serializes a block of data stored in a CSHMData<> structure.

  • Throws exception on failure.
template<typename T >
void mds::mod::CSHMSerializer::write ( const T *  pData,
tSize  Length 
)

Serializes a given block of data.

  • Throws exception on failure.
  • Derived classes have to implement this method!

Reimplemented from mds::mod::CChannelSerializer< CSHMSerializer >.

template<typename T >
void mds::mod::CSHMSerializer::writeRoot ( T &  Object)

Serializes a given data entity.

  • Throws exception on failure.
  • Derived classes have to implement this method!

Reimplemented from mds::mod::CChannelSerializer< CSHMSerializer >.

template<typename T >
void mds::mod::CSHMSerializer::writeRoot ( T &  Object)

Serializes a given data entity.

  • Throws exception on failure.

Reimplemented from mds::mod::CChannelSerializer< CSHMSerializer >.


Member Data Documentation

int mds::base::CObject::m_iHeapObject [mutable, protected, inherited]

Flag initialized if the object is on the heap.

int mds::base::CObject::m_iReferences [mutable, protected, inherited]

The number of references to the object.

  • Zero if there is no reference.
int mds::base::CHasOptions::m_Options [protected, inherited]

Optional flags.

Smart pointer to actively used channel.

Pointer to the I/O channel.


The documentation for this class was generated from the following files: