OFFIS DCMTK  Version 3.6.0
dcvrpobw.h
1 /*
2  *
3  * Copyright (C) 1994-2010, OFFIS e.V.
4  * All rights reserved. See COPYRIGHT file for details.
5  *
6  * This software and supporting documentation were developed by
7  *
8  * OFFIS e.V.
9  * R&D Division Health
10  * Escherweg 2
11  * D-26121 Oldenburg, Germany
12  *
13  *
14  * Module: dcmdata
15  *
16  * Author: Andreas Barth
17  *
18  * Purpose:
19  * Interface of class DcmPolymorphOBOW for Tags that can change their VR
20  * between OB and OW (e.g. Tag PixelData, OverlayData). This class shall
21  * not be used directly in applications. No identification exists.
22  *
23  * Last Update: $Author: joergr $
24  * Update Date: $Date: 2010-10-14 13:15:43 $
25  * CVS/RCS Revision: $Revision: 1.18 $
26  * Status: $State: Exp $
27  *
28  * CVS/RCS Log at end of file
29  *
30  */
31 
32 #ifndef DCVRPOBW_H
33 #define DCVRPOBW_H
34 
35 #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */
36 #include "dcmtk/dcmdata/dcvrobow.h"
37 
42 {
43 public:
44 
50  const DcmTag & tag,
51  const Uint32 len = 0);
52 
55  const DcmPolymorphOBOW & old);
56 
58  virtual ~DcmPolymorphOBOW();
59 
64  const DcmPolymorphOBOW &obj);
65 
69  virtual DcmObject *clone() const
70  {
71  return new DcmPolymorphOBOW(*this);
72  }
73 
86  virtual OFCondition copyFrom(const DcmObject& rhs);
87 
103  virtual OFCondition read(
104  DcmInputStream & inStream,
105  const E_TransferSyntax ixfer,
106  const E_GrpLenEncoding glenc,
107  const Uint32 maxReadLength);
108 
131  virtual OFCondition write(
132  DcmOutputStream &outStream,
133  const E_TransferSyntax oxfer,
134  const E_EncodingType enctype,
135  DcmWriteCache *wcache);
136 
145  DcmOutputStream &outStream,
146  const E_TransferSyntax oxfer,
147  const E_EncodingType enctype,
148  DcmWriteCache *wcache);
149 
153  virtual void transferInit();
154 
158  virtual void transferEnd();
159 
168  virtual OFCondition getUint8Array(Uint8 *&val); // for bytes
169 
178  virtual OFCondition getUint16Array(Uint16 *&val);
179 
186  virtual OFCondition putUint8Array(const Uint8 *vals, const unsigned long num);
187 
194  virtual OFCondition putUint16Array(const Uint16 *vals, const unsigned long num);
195 
204  const Uint32 numBytes,
205  Uint8 * & bytes);
206 
207 
216  const Uint32 numWords,
217  Uint16 * & words);
218 
219 private:
220 
226  OFBool changeVR;
227 
229  DcmEVR currentVR;
230 
231 };
232 #endif
233 
234 /*
235 ** CVS/RCS Log:
236 ** $Log: dcvrpobw.h,v $
237 ** Revision 1.18 2010-10-14 13:15:43 joergr
238 ** Updated copyright header. Added reference to COPYRIGHT file.
239 **
240 ** Revision 1.17 2008-07-17 11:19:49 onken
241 ** Updated copyFrom() documentation.
242 **
243 ** Revision 1.16 2008-07-17 10:30:23 onken
244 ** Implemented copyFrom() method for complete DcmObject class hierarchy, which
245 ** permits setting an instance's value from an existing object. Implemented
246 ** assignment operator where necessary.
247 **
248 ** Revision 1.15 2007-11-29 14:30:19 meichel
249 ** Write methods now handle large raw data elements (such as pixel data)
250 ** without loading everything into memory. This allows very large images to
251 ** be sent over a network connection, or to be copied without ever being
252 ** fully in memory.
253 **
254 ** Revision 1.14 2007/06/07 09:00:59 joergr
255 ** Fixed incorrect comment.
256 **
257 ** Revision 1.13 2005/12/08 16:29:06 meichel
258 ** Changed include path schema for all DCMTK header files
259 **
260 ** Revision 1.12 2004/07/01 12:28:25 meichel
261 ** Introduced virtual clone method for DcmObject and derived classes.
262 **
263 ** Revision 1.11 2002/09/12 14:07:16 joergr
264 ** Added method "createUint8Array" which works similar to the 16 bit variant.
265 **
266 ** Revision 1.10 2002/08/27 16:55:40 meichel
267 ** Initial release of new DICOM I/O stream classes that add support for stream
268 ** compression (deflated little endian explicit VR transfer syntax)
269 **
270 ** Revision 1.9 2001/09/25 17:19:33 meichel
271 ** Adapted dcmdata to class OFCondition
272 **
273 ** Revision 1.8 2001/06/01 15:48:52 meichel
274 ** Updated copyright header
275 **
276 ** Revision 1.7 2001/05/10 12:52:56 meichel
277 ** Added public createUint16Array() method in class DcmPolymorphOBOW.
278 **
279 ** Revision 1.6 2000/11/07 16:56:11 meichel
280 ** Initial release of dcmsign module for DICOM Digital Signatures
281 **
282 ** Revision 1.5 2000/03/08 16:26:25 meichel
283 ** Updated copyright header.
284 **
285 ** Revision 1.4 1999/03/31 09:25:05 meichel
286 ** Updated copyright header in module dcmdata
287 **
288 ** Revision 1.3 1998/11/12 16:47:53 meichel
289 ** Implemented operator= for all classes derived from DcmObject.
290 **
291 ** Revision 1.2 1997/07/31 06:59:00 andreas
292 ** Error correction and additonal functionality for
293 ** DcmPolymorphOBOW to support getting and putting of Uint8 and
294 ** Uint16 data independent of the VR.
295 **
296 ** Revision 1.1 1997/07/21 07:54:00 andreas
297 ** - Support for CP 14. PixelData and OverlayData can have VR OW or OB
298 ** (depending on the transfer syntax). New internal value
299 ** representation (only for ident()) for OverlayData.
300 **
301 */
DcmPolymorphOBOW(const DcmTag &tag, const Uint32 len=0)
constructor
this class encapsulates an attribute tag (group, element) and a VR.
Definition: dctag.h:50
virtual OFCondition createUint8Array(const Uint32 numBytes, Uint8 *&bytes)
create an empty Uint8 array of given number of bytes and set it.
This class implements a buffering mechanism that is used when writing large elements that reside in f...
Definition: dcwcache.h:50
base class for output streams.
Definition: dcostrma.h:119
Abstract base class for most classes in module dcmdata.
Definition: dcobject.h:179
virtual OFCondition read(DcmInputStream &inStream, const E_TransferSyntax ixfer, const E_GrpLenEncoding glenc, const Uint32 maxReadLength)
This function reads the data value of an attribute which is captured in the input stream and captures...
virtual DcmObject * clone() const
clone method
Definition: dcvrpobw.h:69
DcmPolymorphOBOW & operator=(const DcmPolymorphOBOW &obj)
copy assignment operator
virtual OFCondition putUint8Array(const Uint8 *vals, const unsigned long num)
replace the element value by a copy of the given Uint8 array (which is possibly multi-valued).
virtual OFCondition getUint16Array(Uint16 *&val)
get a pointer to the element value of the current element as type Uint16.
virtual OFCondition write(DcmOutputStream &outStream, const E_TransferSyntax oxfer, const E_EncodingType enctype, DcmWriteCache *wcache)
This function writes this element's value to the outstream which was passed.
virtual void transferEnd()
finalize the transfer state of this object.
virtual void transferInit()
initialize the transfer state of this object.
virtual OFCondition writeSignatureFormat(DcmOutputStream &outStream, const E_TransferSyntax oxfer, const E_EncodingType enctype, DcmWriteCache *wcache)
special write method for creation of digital signatures
DcmEVR currentVR
the current VR of value field, which can change over time
Definition: dcvrpobw.h:229
virtual ~DcmPolymorphOBOW()
destructor
a class representing the DICOM value representations 'Other Byte String' (OB) and 'Other Word String'...
Definition: dcvrobow.h:40
abstract base class for input streams.
Definition: dcistrma.h:147
OFBool changeVR
this flag is used during write operations in Implicit VR Little Endian and notes that the VR has temp...
Definition: dcvrpobw.h:226
a class representing DICOM elements (such as uncompressed pixel data) that can be interpreted either ...
Definition: dcvrpobw.h:41
virtual OFCondition createUint16Array(const Uint32 numWords, Uint16 *&words)
create an empty Uint16 array of given number of words and set it.
virtual OFCondition putUint16Array(const Uint16 *vals, const unsigned long num)
replace the element value by a copy of the given Uint16 array (which is possibly multi-valued).
virtual OFCondition getUint8Array(Uint8 *&val)
get a pointer to the element value of the current element as type string.
virtual OFCondition copyFrom(const DcmObject &rhs)
Virtual object copying.
General purpose class for condition codes.
Definition: ofcond.h:305


Generated on Thu Aug 27 2015 for OFFIS DCMTK Version 3.6.0 by Doxygen 1.8.9.1