| DCMTK Version 3.6.9
    OFFIS DICOM Toolkit | 
This class implements a buffering mechanism that is used when writing large elements that reside in file into an output stream. More...
| Public Member Functions | |
| DcmWriteCache () | |
| default constructor. Construction is cheap (no allocation of memory block). | |
| ~DcmWriteCache () | |
| destructor | |
| void | init (void *owner, Uint32 fieldLength, Uint32 bytesTransferred, E_ByteOrder byteOrder) | 
| initialize the buffer maintained by this class. | |
| OFBool | bufferIsEmpty () const | 
| check whether the buffer is currently empty | |
| Uint32 | contentLength () const | 
| return the number of bytes of user data currently in buffer | |
| OFCondition | fillBuffer (DcmElement &elem) | 
| fill buffer from given DICOM element if buffer is currently empty. | |
| Uint32 | writeBuffer (DcmOutputStream &outStream) | 
| write buffer content to output stream | |
| Private Member Functions | |
| DcmWriteCache (const DcmWriteCache &arg) | |
| private undefined copy constructor | |
| DcmWriteCache & | operator= (const DcmWriteCache &arg) | 
| private undefined copy assignment operator | |
| Private Attributes | |
| DcmFileCache | fcache_ | 
| file cache object | |
| Uint8 * | buf_ | 
| write buffer | |
| void * | owner_ | 
| current "owner" (DcmElement instance using this buffer) | |
| Uint32 | offset_ | 
| offset within buffer to first byte | |
| Uint32 | numBytes_ | 
| number of user data bytes currently in buffer | |
| Uint32 | capacity_ | 
| buffer size in bytes | |
| Uint32 | fieldLength_ | 
| length of the current DICOM element, in bytes | |
| Uint32 | fieldOffset_ | 
| offset within the current DICOM element, in bytes | |
| E_ByteOrder | byteOrder_ | 
| current output byte order | |
This class implements a buffering mechanism that is used when writing large elements that reside in file into an output stream.
DcmElement::getPartialValue is used to fill the buffer maintained by this class, and the buffer content is then copied to the output stream. The intermediate buffer is necessary because both DcmElement::getPartialValue and DcmOutputStream::write expect a buffer to write to and read from, respectively.
| 
 | inline | 
check whether the buffer is currently empty
References numBytes_.
| 
 | inline | 
return the number of bytes of user data currently in buffer
References numBytes_.
| OFCondition DcmWriteCache::fillBuffer | ( | DcmElement & | elem | ) | 
fill buffer from given DICOM element if buffer is currently empty.
This method uses DcmElement::getPartialValue to fill the buffer from the given DICOM element at the given offset (which is updated to reflect the number of bytes read into the buffer).
| elem | DICOM element to read from | 
| void DcmWriteCache::init | ( | void * | owner, | 
| Uint32 | fieldLength, | ||
| Uint32 | bytesTransferred, | ||
| E_ByteOrder | byteOrder ) | 
initialize the buffer maintained by this class.
Can safely be called multiple times.
| owner | current "owner" (DcmElement instance using this buffer) | 
| fieldLength | number of bytes of user data in DICOM element | 
| bytesTransferred | number of bytes of user data in DICOM element that have already been transferred | 
| byteOrder | byteOrder desired byte order in buffer | 
| Uint32 DcmWriteCache::writeBuffer | ( | DcmOutputStream & | outStream | ) | 
write buffer content to output stream
| outStream | output stream to write to |