GDCM
2.2.4
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
File Members
Source
MediaStorageAndFileFormat
gdcmRLECodec.h
Go to the documentation of this file.
1
/*=========================================================================
2
3
Program: GDCM (Grassroots DICOM). A DICOM library
4
5
Copyright (c) 2006-2011 Mathieu Malaterre
6
All rights reserved.
7
See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details.
8
9
This software is distributed WITHOUT ANY WARRANTY; without even
10
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11
PURPOSE. See the above copyright notice for more information.
12
13
=========================================================================*/
14
#ifndef GDCMRLECODEC_H
15
#define GDCMRLECODEC_H
16
17
#include "
gdcmImageCodec.h
"
18
19
namespace
gdcm
20
{
21
22
class
Fragment;
23
class
RLEInternals;
36
class
GDCM_EXPORT
RLECodec
:
public
ImageCodec
37
{
38
friend
class
ImageRegionReader
;
39
public
:
40
RLECodec
();
41
~
RLECodec
();
42
bool
CanCode(
TransferSyntax
const
&ts)
const
;
43
bool
CanDecode(
TransferSyntax
const
&ts)
const
;
44
bool
Decode(
DataElement
const
&is,
DataElement
&os);
45
unsigned
long
GetBufferLength
()
const
{
return
BufferLength; }
46
void
SetBufferLength
(
unsigned
long
l) { BufferLength = l; }
47
48
bool
Code(
DataElement
const
&in,
DataElement
&out);
49
bool
GetHeaderInfo(std::istream &is,
TransferSyntax
&ts);
50
51
protected
:
52
bool
DecodeExtent(
53
char
*buffer,
54
unsigned
int
XMin,
unsigned
int
XMax,
55
unsigned
int
YMin,
unsigned
int
YMax,
56
unsigned
int
ZMin,
unsigned
int
ZMax,
57
std::istream & is
58
);
59
60
bool
DecodeByStreams(std::istream &is, std::ostream &os);
61
public
:
62
63
void
SetLength
(
unsigned
long
l)
64
{
65
Length = l;
66
}
67
private
:
68
bool
DecodeByStreamsCommon(std::istream &is, std::ostream &os);
69
RLEInternals *Internals;
70
unsigned
long
Length;
71
unsigned
long
BufferLength;
72
size_t
DecodeFragment(
Fragment
const
& frag,
char
*buffer,
unsigned
long
llen);
73
};
74
75
}
// end namespace gdcm
76
77
#endif //GDCMRLECODEC_H
Generated on Tue Aug 13 2013 15:28:54 for GDCM by
1.8.4