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

Class providing 16-bit RLE compression. More...

#include <mdsRLECompressor.h>

Inheritance diagram for mds::mod::CRLE16Compressor:
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
mds::base::CLibraryLockableObject
< CChannel >::CLock 
tLock
 Lock that have to be used to provide mutual access to write(), read() and etc.

Public Member Functions

bool checkMedium (int Medium) const
 Checks if channel medium is equal to a given value.
bool checkType (int Type) const
 Checks if channel type corresponds to a given value.
virtual bool connect (unsigned uTimeout=CH_CONNECTION_TIMEOUT)
 Connects to the opposite channel side.
 CRLE16Compressor (CChannel *pChannel=NULL)
 Constructor.
virtual void disconnect ()
 Disconnects from the opossite channel side.
virtual bool flush ()
 Finalizes all writing operations (flushes internal buffers, etc.).
CChannelgetChannel ()
 Returns pointer to the input/output channel.
int getCompressionMethod () const
 Returns the compression method.
int getMedium () const
 Returns the channel medium.
int getReferencesCount () const
 Returns the number of references.
int getType () const
 Method returns the channel type.
virtual bool isConnected ()
 Method for testing channel errors such as:
bool isOnHeap () const
 Returns true if the object is allocated on the heap.
virtual bool listen (unsigned uTimeout=CH_CONNECTION_TIMEOUT)
 Listens for the opposite channel side.
void lock ()
 Locks the object.
 MDS_SHAREDPTR (CChannelCompressor)
 Smart pointer type.
 MDS_SHAREDPTR (CRLE16Compressor)
 Smart pointer type.
 MDS_SHAREDPTR (CChannel)
 Smart pointer type.
virtual int read (char *pcData, int iLength)
 Reads and decompresses data from the input channel.
virtual void setChannel (CChannel *pChannel)
 Sets the input/output channel.
virtual bool skip (int iLength)
 Skips a given number of bytes.
void unlock ()
 Locks the object.
virtual bool wait (unsigned uTimeout=CH_WAIT_TIMEOUT)
 Waits for data.
virtual bool write (const char *pcData, int iLength)
 Writes compressed data to the output channel.
virtual ~CRLE16Compressor ()
 Destructor.

Static Public Member Functions

static CChannelCompressorcreate (int CompressionMethod, CChannel *pChannel)
 Channel compressor creation function.
static CChannelcreate (EChannelType eType, const std::string &sDesc)
 Creation of a channel which is described by a textual string.
static void * operator new (std::size_t Size)
 Allocates a new object on the heap.
static void separate (const std::string &sDescs, std::vector< std::string > &Descs)
 Parses a given string and separates descriptions of several channels.

Protected Types

enum  { BUFFER_SIZE = 0x7F }
 Size of the internal buffer. More...
enum  EState { S_BEGIN, S_FIRST, S_COMPRESSIBLE, S_UNCOMPRESSIBLE }
 RLE compressor states. More...

Protected Member Functions

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

Protected Attributes

int m_ChannelCompression
 Compression method.
int m_iHeapObject
 Flag initialized if the object is on the heap.
int m_iNumOfUnreadBytes
 The number of remaining unread words in the last block.
int m_iReferences
 The number of references to the object.
int m_Medium
 Channel medium.
char m_pcBuffer [2 *BUFFER_SIZE+1]
 Helper array of data bytes.
CChannelPtr m_spChannel
 Output/input channel.
int m_Type
 Channel type.

Detailed Description

Class providing 16-bit RLE compression.


Member Typedef Documentation

Lock that have to be used to provide mutual access to write(), read() and etc.

functions.


Member Enumeration Documentation

anonymous enum [protected]

Size of the internal buffer.

Enumerator:
BUFFER_SIZE 
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 

RLE compressor states.

Enumerator:
S_BEGIN 
S_FIRST 
S_COMPRESSIBLE 
S_UNCOMPRESSIBLE 

Constructor & Destructor Documentation

Constructor.

Destructor.


Member Function Documentation

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

Increase the reference counter.

bool mds::mod::CChannel::checkMedium ( int  Medium) const [inherited]

Checks if channel medium is equal to a given value.

bool mds::mod::CChannel::checkType ( int  Type) const [inherited]

Checks if channel type corresponds to a given value.

virtual bool mds::mod::CChannelCompressor::connect ( unsigned  uTimeout = CH_CONNECTION_TIMEOUT) [virtual, inherited]

Connects to the opposite channel side.

  • Returns false on failure and/or timeout elapsed.

Implements mds::mod::CChannel.

CChannelCompressor * mds::mod::CChannelCompressor::create ( int  CompressionMethod,
CChannel pChannel 
) [static, inherited]

Channel compressor creation function.

CChannel * mds::mod::CChannel::create ( EChannelType  eType,
const std::string &  sDesc 
) [static, inherited]

Creation of a channel which is described by a textual string.

  • String has the form: "chmedium[:chattrib1[:chattrib2[:...]]]".
  • Actually, the channel medium can be "stdio", "file", "pipe" and "shm".
  • Channel attributes depend on the medium.
  • "stdio" has empty attributes, "file" (:filename), "pipe" (:pipename) and "shm" (:shmname).
  • Throws CCannotCreate exception on failure!
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.
virtual void mds::mod::CChannelCompressor::disconnect ( ) [virtual, inherited]

Disconnects from the opossite channel side.

Implements mds::mod::CChannel.

virtual bool mds::mod::CChannelCompressor::flush ( ) [virtual, inherited]

Finalizes all writing operations (flushes internal buffers, etc.).

Implements mds::mod::CChannel.

Reimplemented in mds::mod::CGZipCompressor.

Returns pointer to the input/output channel.

Returns the compression method.

int mds::mod::CChannel::getMedium ( ) const [inherited]

Returns the channel medium.

Returns the number of references.

int mds::mod::CChannel::getType ( ) const [inherited]

Method returns the channel type.

virtual bool mds::mod::CChannelCompressor::isConnected ( ) [virtual, inherited]

Method for testing channel errors such as:

  • Disconnected or broken channel.
  • Reading after end of input.

Implements mds::mod::CChannel.

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

Returns true if the object is allocated on the heap.

virtual bool mds::mod::CChannelCompressor::listen ( unsigned  uTimeout = CH_CONNECTION_TIMEOUT) [virtual, inherited]

Listens for the opposite channel side.

  • Returns false on failure and/or timeout elapsed.

Implements mds::mod::CChannel.

void mds::base::CLockableObject< CChannel >::lock ( ) [inherited]

Locks the object.

Smart pointer type.

Smart pointer type.

Smart pointer type.

static void* mds::base::CObject::operator new ( std::size_t  Size) [static, inherited]

Allocates a new object on the heap.

int mds::mod::CRLE16Compressor::read ( char *  pcData,
int  iLength 
) [virtual]

Reads and decompresses data from the input channel.

  • In case of error or reading after end of input the number of successfully readed bytes is returned.

Implements mds::mod::CChannelCompressor.

void mds::mod::CChannel::separate ( const std::string &  sDescs,
std::vector< std::string > &  Descs 
) [static, inherited]

Parses a given string and separates descriptions of several channels.

  • Channels are separated by two successive colons "::" in the string.
  • Example: "chmedium1[:chattribs1][::chmedium2[:chattribs2][::...]]".
virtual void mds::mod::CChannelCompressor::setChannel ( CChannel pChannel) [virtual, inherited]

Sets the input/output channel.

Reimplemented in mds::mod::CDensityCompressor.

bool mds::mod::CChannel::skip ( int  iLength) [virtual, inherited]

Skips a given number of bytes.

  • If the channel is open for readinpg, the data are discarded. Otherwise, zeros are written to the output channel.
  • This method cannot be used if the channel is opened for reading and writting simultaneously!

Reimplemented in mds::mod::CSharedMemChannel, and mds::mod::CMemoryChannel.

void mds::base::CLockableObject< CChannel >::unlock ( ) [inherited]

Locks the object.

virtual bool mds::mod::CChannelCompressor::wait ( unsigned  uTimeout = CH_WAIT_TIMEOUT) [virtual, inherited]

Waits for data.

  • Returns false if a timeout elapses and/or the channel is not input.

Implements mds::mod::CChannel.

bool mds::mod::CRLE16Compressor::write ( const char *  pcData,
int  iLength 
) [virtual]

Writes compressed data to the output channel.

Implements mds::mod::CChannelCompressor.


Member Data Documentation

Compression method.

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

Flag initialized if the object is on the heap.

The number of remaining unread words in the last block.

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

The number of references to the object.

  • Zero if there is no reference.
int mds::mod::CChannel::m_Medium [protected, inherited]

Channel medium.

Helper array of data bytes.

Output/input channel.

int mds::mod::CChannel::m_Type [protected, inherited]

Channel type.


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