OFFIS DCMTK
Version 3.6.0
Main Page
Related Pages
Classes
Files
File List
File Members
dcmdata
include
dcmtk
dcmdata
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
41
class
DcmConsumer
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
97
class
DcmOutputFilter
:
public
DcmConsumer
98
{
99
public
:
100
102
virtual
~DcmOutputFilter
()
103
{
104
}
105
112
virtual
void
append
(
DcmConsumer
& consumer) = 0;
113
};
114
115
119
class
DcmOutputStream
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
195
DcmOutputStream
(
const
DcmOutputStream
&);
196
198
DcmOutputStream
&
operator=
(
const
DcmOutputStream
&);
199
201
DcmConsumer
*
current_
;
202
204
DcmOutputFilter
*
compressionFilter_
;
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