OFFIS DCMTK  Version 3.6.0
dcostrma.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: Marco Eichelberg
17  *
18  * Purpose: base classes for output streams
19  *
20  * Last Update: $Author: joergr $
21  * Update Date: $Date: 2010-10-14 13:15:41 $
22  * CVS/RCS Revision: $Revision: 1.5 $
23  * Status: $State: Exp $
24  *
25  * CVS/RCS Log at end of file
26  *
27  */
28 
29 #ifndef DCOSTRMA_H
30 #define DCOSTRMA_H
31 
32 #include "dcmtk/config/osconfig.h"
33 #include "dcmtk/ofstd/oftypes.h" /* for OFBool */
34 #include "dcmtk/ofstd/ofcond.h" /* for OFCondition */
35 #include "dcmtk/dcmdata/dcxfer.h" /* for E_StreamCompression */
36 #include "dcmtk/ofstd/offile.h" /* for offile_off_t */
37 
42 {
43 public:
44 
46  virtual ~DcmConsumer()
47  {
48  }
49 
54  virtual OFBool good() const = 0;
55 
60  virtual OFCondition status() const = 0;
61 
67  virtual OFBool isFlushed() const = 0;
68 
76  virtual offile_off_t avail() const = 0;
77 
83  virtual offile_off_t write(const void *buf, offile_off_t buflen) = 0;
84 
90  virtual void flush() = 0;
91 };
92 
93 
98 {
99 public:
100 
103  {
104  }
105 
112  virtual void append(DcmConsumer& consumer) = 0;
113 };
114 
115 
120 {
121 public:
122 
124  virtual ~DcmOutputStream();
125 
130  virtual OFBool good() const;
131 
136  virtual OFCondition status() const;
137 
143  virtual OFBool isFlushed() const;
144 
152  virtual offile_off_t avail() const;
153 
159  virtual offile_off_t write(const void *buf, offile_off_t buflen);
160 
166  virtual void flush();
167 
171  virtual offile_off_t tell() const;
172 
180  virtual OFCondition installCompressionFilter(E_StreamCompression filterType);
181 
182 protected:
183 
190  DcmOutputStream(DcmConsumer *initial);
191 
192 private:
193 
196 
199 
202 
205 
207  offile_off_t tell_;
208 };
209 
210 
211 
212 #endif
213 
214 /*
215  * CVS/RCS Log:
216  * $Log: dcostrma.h,v $
217  * Revision 1.5 2010-10-14 13:15:41 joergr
218  * Updated copyright header. Added reference to COPYRIGHT file.
219  *
220  * Revision 1.4 2009-11-04 09:58:07 uli
221  * Switched to logging mechanism provided by the "new" oflog module
222  *
223  * Revision 1.3 2007-02-19 16:06:09 meichel
224  * Class DcmOutputStream and related classes are now safe for use with
225  * large files (2 GBytes or more) if supported by compiler and operating system.
226  *
227  * Revision 1.2 2005/12/08 16:28:24 meichel
228  * Changed include path schema for all DCMTK header files
229  *
230  * Revision 1.1 2002/08/27 16:55:36 meichel
231  * Initial release of new DICOM I/O stream classes that add support for stream
232  * compression (deflated little endian explicit VR transfer syntax)
233  *
234  *
235  */


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