DcmBufferProducer Class Reference

producer class that reads data from a buffer provided by the caller. More...

Inheritance diagram for DcmBufferProducer:

DcmProducer List of all members.

Public Member Functions

 DcmBufferProducer ()
 constructor
virtual ~DcmBufferProducer ()
 destructor
virtual OFBool good () const
 returns the status of the producer.
virtual OFCondition status () const
 returns the status of the producer as an OFCondition object.
virtual OFBool eos ()
 returns true if the producer is at the end of stream.
virtual offile_off_t avail ()
 returns the minimum number of bytes that can be read with the next call to read().
virtual offile_off_t read (void *buf, offile_off_t buflen)
 reads as many bytes as possible into the given block.
virtual offile_off_t skip (offile_off_t skiplen)
 skips over the given number of bytes (or less)
virtual void putback (offile_off_t num)
 resets the stream to the position by the given number of bytes.
virtual void setBuffer (const void *buf, offile_off_t buflen)
 adds the content of the given buffer to the input stream.
virtual void releaseBuffer ()
 releases the current buffer.
virtual void setEos ()
 marks the end of stream, i.e.

Private Member Functions

 DcmBufferProducer (const DcmBufferProducer &)
 private unimplemented copy constructor
DcmBufferProduceroperator= (const DcmBufferProducer &)
 private unimplemented copy assignment operator

Private Attributes

unsigned char * buffer_
 the user buffer we're actually reading from
unsigned char * backup_
 the backup buffer
offile_off_t bufSize_
 size of the user buffer, in bytes
offile_off_t bufIndex_
 number of bytes read from the user buffer
offile_off_t backupIndex_
 number of bytes read from the backup buffer
offile_off_t backupStart_
 index of first valid byte in backup buffer, for putback
OFCondition status_
 status
OFBool eosflag_
 true if setEos has been called before

Detailed Description

producer class that reads data from a buffer provided by the caller.

Used for DICOM network communication.

Definition at line 40 of file dcistrmb.h.


Member Function Documentation

virtual OFBool DcmBufferProducer::good (  )  const [virtual]

returns the status of the producer.

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

Returns:
status, true if good

Implements DcmProducer.

virtual OFCondition DcmBufferProducer::status (  )  const [virtual]

returns the status of the producer as an OFCondition object.

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

Returns:
status, EC_Normal if good

Implements DcmProducer.

virtual OFBool DcmBufferProducer::eos (  )  [virtual]

returns true if the producer is at the end of stream.

Returns:
true if end of stream, false otherwise

Implements DcmProducer.

virtual offile_off_t DcmBufferProducer::avail (  )  [virtual]

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

The DcmObject read 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 read "en bloc", i.e. all or nothing.

Returns:
minimum of data available in producer

Implements DcmProducer.

virtual offile_off_t DcmBufferProducer::read ( void *  buf,
offile_off_t  buflen 
) [virtual]

reads as many bytes as possible into the given block.

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

Implements DcmProducer.

virtual offile_off_t DcmBufferProducer::skip ( offile_off_t  skiplen  )  [virtual]

skips over the given number of bytes (or less)

Parameters:
skiplen number of bytes to skip
Returns:
number of bytes actually skipped.

Implements DcmProducer.

virtual void DcmBufferProducer::putback ( offile_off_t  num  )  [virtual]

resets the stream to the position by the given number of bytes.

Parameters:
num number of bytes to putback. If the putback operation fails, the producer status becomes bad.

Implements DcmProducer.

virtual void DcmBufferProducer::setBuffer ( const void *  buf,
offile_off_t  buflen 
) [virtual]

adds the content of the given buffer to the input stream.

Parameters:
buf buffer from which data is read. Must be allocated by caller and remain valid until releaseBuffer() is called
buflen buffer length, must be even number > 0.

virtual void DcmBufferProducer::releaseBuffer (  )  [virtual]

releases the current buffer.

Should only be called when the content of the buffer has been read as far as possible. Pending input from the buffer is copied into an internal backup buffer if necessary. If an overflow condition occurs, the producer status becomes bad.

virtual void DcmBufferProducer::setEos (  )  [virtual]

marks the end of stream, i.e.

the data provided with the last call to setBuffer is the last data available in the stream.


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


Generated on 6 Jan 2011 for OFFIS DCMTK Version 3.6.0 by Doxygen 1.5.1