DcmBufferConsumer Class Reference

consumer class that stores data in a buffer provided by the caller. More...

Inheritance diagram for DcmBufferConsumer:

DcmConsumer List of all members.

Public Member Functions

 DcmBufferConsumer (void *buf, Uint32 bufLen)
 constructor
virtual ~DcmBufferConsumer ()
 destructor
virtual OFBool good () const
 returns the status of the consumer.
virtual OFCondition status () const
 returns the status of the consumer as an OFCondition object.
virtual OFBool isFlushed () const
 returns true if the consumer is flushed, i.e.
virtual Uint32 avail () const
 returns the minimum number of bytes that can be written with the next call to write().
virtual Uint32 write (const void *buf, Uint32 buflen)
 processes as many bytes as possible from the given input block.
virtual void flush ()
 instructs the consumer to flush its internal content until either the consumer becomes "flushed" or I/O suspension occurs.
virtual void flushBuffer (void *&buffer, Uint32 &length)
 retrieves and flushes the underlying buffer.

Private Member Functions

 DcmBufferConsumer (const DcmBufferConsumer &)
 private unimplemented copy constructor
DcmBufferConsumeroperator= (const DcmBufferConsumer &)
 private unimplemented copy assignment operator

Private Attributes

unsigned char * buffer_
 the buffer we're actually writing to
Uint32 bufSize_
 size of the buffer, in bytes
Uint32 filled_
 number of bytes filled in buffer
OFCondition status_
 status

Detailed Description

consumer class that stores data in a buffer provided by the caller.

Used for DICOM network communication.

Definition at line 44 of file dcostrmb.h.


Constructor & Destructor Documentation

DcmBufferConsumer::DcmBufferConsumer void *  buf,
Uint32  bufLen
 

constructor

Parameters:
buf buffer in which data is stored. Must be allocated by caller and remain valid during the lifetime of this object.
bufLen buffer length, must be even number > 0.


Member Function Documentation

virtual Uint32 DcmBufferConsumer::avail  )  const [virtual]
 

returns the minimum number of bytes that can be written with the next call to write().

The DcmObject write methods rely on avail to return a value > 0 if there is no I/O suspension since certain data such as tag and length are only written "en bloc", i.e. all or nothing.

Returns:
minimum of space available in consumer

Implements DcmConsumer.

virtual void DcmBufferConsumer::flush  )  [virtual]
 

instructs the consumer to flush its internal content until either the consumer becomes "flushed" or I/O suspension occurs.

After a call to flush(), a call to write() will produce undefined behaviour.

Implements DcmConsumer.

virtual void DcmBufferConsumer::flushBuffer void *&  buffer,
Uint32 &  length
[virtual]
 

retrieves and flushes the underlying buffer.

After return of this method, the buffer is considered to have been flushed (copied, stored) by the caller and is reused by the next write operation.

Parameters:
buffer pointer to user provided buffer returned in this parameter
length number of bytes in buffer returned in this parameter

virtual OFBool DcmBufferConsumer::good  )  const [virtual]
 

returns the status of the consumer.

Unless the status is good, the consumer will not permit any operation.

Returns:
status, true if good

Implements DcmConsumer.

virtual OFBool DcmBufferConsumer::isFlushed  )  const [virtual]
 

returns true if the consumer is flushed, i.e.

has no more data pending in it's internal state that needs to be flushed before the stream is closed.

Returns:
true if consumer is flushed, false otherwise

Implements DcmConsumer.

virtual OFCondition DcmBufferConsumer::status  )  const [virtual]
 

returns the status of the consumer as an OFCondition object.

Unless the status is good, the consumer will not permit any operation.

Returns:
status, EC_Normal if good

Implements DcmConsumer.

virtual Uint32 DcmBufferConsumer::write const void *  buf,
Uint32  buflen
[virtual]
 

processes as many bytes as possible from the given input block.

Parameters:
buf pointer to memory block, must not be NULL
buflen length of memory block
Returns:
number of bytes actually processed.

Implements DcmConsumer.


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


Generated on 20 Dec 2005 for OFFIS DCMTK Version 3.5.4 by Doxygen 1.4.5