MDSTk Libraries
1.1.0
Medical Data Segmentation Toolkit
|
Buffered channel organizing data into blocks of predefined size. More...
#include <mdsBlockChannel.h>
Public Types | |
enum | { DEFAULT_BLOCK_SIZE = 4096 } |
Default block size. More... | |
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 | |
CBlockChannel (int iBlockSize=DEFAULT_BLOCK_SIZE, CChannel *pChannel=NULL) | |
Default constructor. | |
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. | |
virtual void | disconnect () |
Disconnects from the opossite channel side. | |
virtual bool | flush () |
In case of the output channel, the function writes all remaining data (partially filled or empty block) to the channel. | |
int | getBlockSize () const |
Returns data block size. | |
CChannel * | getChannel () |
Returns pointer to the input/output channel. | |
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 (CBlockChannel) | |
Smart pointer type. | |
MDS_SHAREDPTR (CChannel) | |
Smart pointer type. | |
virtual int | read (char *pcData, int iLength) |
Reads data from the input channel. | |
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 | ~CBlockChannel () |
Virtual destructor. | |
Static Public Member Functions | |
static CChannel * | create (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 Member Functions | |
void | addReference () const |
Increase the reference counter. | |
bool | delReference () const |
Decrease the reference counter. | |
bool | readBlockHeader (int &iSize) |
Reads and checks the data block header. | |
bool | writeBlockHeader (int iSize) |
Writes data block header to the channel. | |
Protected Attributes | |
bool | m_bFinished |
Flag set to true if an empty or partially filled block was found. | |
mds::base::CData< char > | m_Buffer |
Internal buffer (data block). | |
int | m_iBlockSize |
Size of the block. | |
int | m_iHeapObject |
Flag initialized if the object is on the heap. | |
int | m_iNumOfBytes |
The number of free (or unread) bytes in the block. | |
int | m_iReferences |
The number of references to the object. | |
int | m_Medium |
Channel medium. | |
char * | m_pcData |
Pointer to the data. | |
CChannelPtr | m_spChannel |
Output/input channel. | |
int | m_Type |
Channel type. |
Buffered channel organizing data into blocks of predefined size.
typedef mds::base::CLibraryLockableObject<CChannel>::CLock mds::mod::CChannel::tLock [inherited] |
anonymous enum [inherited] |
Templates that require members of the CObject class can use this enum to check the existence.
mds::mod::CBlockChannel::CBlockChannel | ( | int | iBlockSize = DEFAULT_BLOCK_SIZE , |
CChannel * | pChannel = NULL |
||
) |
Default constructor.
mds::mod::CBlockChannel::~CBlockChannel | ( | ) | [virtual] |
Virtual destructor.
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::CBlockChannel::connect | ( | unsigned | uTimeout = CH_CONNECTION_TIMEOUT | ) | [virtual] |
Connects to the opposite channel side.
Implements mds::mod::CChannel.
CChannel * mds::mod::CChannel::create | ( | EChannelType | eType, |
const std::string & | sDesc | ||
) | [static, inherited] |
Creation of a channel which is described by a textual string.
bool mds::base::CObject::delReference | ( | ) | const [protected, inherited] |
Decrease the reference counter.
virtual void mds::mod::CBlockChannel::disconnect | ( | ) | [virtual] |
Disconnects from the opossite channel side.
Implements mds::mod::CChannel.
bool mds::mod::CBlockChannel::flush | ( | ) | [virtual] |
In case of the output channel, the function writes all remaining data (partially filled or empty block) to the channel.
Otherwise, it skips the remaining data in the channel until en empty data block or partially filled block is found.
Implements mds::mod::CChannel.
int mds::mod::CBlockChannel::getBlockSize | ( | ) | const |
Returns data block size.
Returns pointer to the input/output channel.
int mds::mod::CChannel::getMedium | ( | ) | const [inherited] |
Returns the channel medium.
int mds::base::CObject::getReferencesCount | ( | ) | const [inherited] |
Returns the number of references.
int mds::mod::CChannel::getType | ( | ) | const [inherited] |
Method returns the channel type.
bool mds::mod::CBlockChannel::isConnected | ( | ) | [virtual] |
Method for testing channel errors such as:
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::CBlockChannel::listen | ( | unsigned | uTimeout = CH_CONNECTION_TIMEOUT | ) | [virtual] |
Listens for the opposite channel side.
Implements mds::mod::CChannel.
void mds::base::CLockableObject< CChannel >::lock | ( | ) | [inherited] |
Locks the object.
Smart pointer type.
mds::mod::CChannel::MDS_SHAREDPTR | ( | CChannel | ) | [inherited] |
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::CBlockChannel::read | ( | char * | pcData, |
int | iLength | ||
) | [virtual] |
Reads data from the input channel.
Implements mds::mod::CChannel.
bool mds::mod::CBlockChannel::readBlockHeader | ( | int & | iSize | ) | [protected] |
Reads and checks the data block header.
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.
void mds::mod::CBlockChannel::setChannel | ( | CChannel * | pChannel | ) |
Sets the input/output channel.
bool mds::mod::CChannel::skip | ( | int | iLength | ) | [virtual, inherited] |
Skips a given number of bytes.
Reimplemented in mds::mod::CSharedMemChannel, and mds::mod::CMemoryChannel.
void mds::base::CLockableObject< CChannel >::unlock | ( | ) | [inherited] |
Locks the object.
virtual bool mds::mod::CBlockChannel::wait | ( | unsigned | uTimeout = CH_WAIT_TIMEOUT | ) | [virtual] |
Waits for data.
Implements mds::mod::CChannel.
bool mds::mod::CBlockChannel::write | ( | const char * | pcData, |
int | iLength | ||
) | [virtual] |
Writes compressed data to the output channel.
Implements mds::mod::CChannel.
bool mds::mod::CBlockChannel::writeBlockHeader | ( | int | iSize | ) | [protected] |
Writes data block header to the channel.
bool mds::mod::CBlockChannel::m_bFinished [protected] |
Flag set to true if an empty or partially filled block was found.
mds::base::CData<char> mds::mod::CBlockChannel::m_Buffer [protected] |
Internal buffer (data block).
int mds::mod::CBlockChannel::m_iBlockSize [protected] |
Size of the block.
int mds::base::CObject::m_iHeapObject [mutable, protected, inherited] |
Flag initialized if the object is on the heap.
int mds::mod::CBlockChannel::m_iNumOfBytes [protected] |
The number of free (or unread) bytes in the block.
int mds::base::CObject::m_iReferences [mutable, protected, inherited] |
The number of references to the object.
int mds::mod::CChannel::m_Medium [protected, inherited] |
Channel medium.
char* mds::mod::CBlockChannel::m_pcData [protected] |
Pointer to the data.
CChannelPtr mds::mod::CBlockChannel::m_spChannel [protected] |
Output/input channel.
int mds::mod::CChannel::m_Type [protected, inherited] |
Channel type.