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 */


Generated on Thu Dec 20 2012 for OFFIS DCMTK Version 3.6.0 by Doxygen 1.8.2