MrSID Decode SDK for Raster Reference Manual
9.0.0.3864
Main Page
Namespaces
Classes
Files
Examples
File List
File Members
NITFReaderManager.h
Go to the documentation of this file.
1
/* //////////////////////////////////////////////////////////////////////////
2
// //
3
// This code is Copyright (c) 2010 LizardTech, Inc, 1008 Western Avenue, //
4
// Suite 200, Seattle, WA 98104. Unauthorized use or distribution //
5
// prohibited. Access to and use of this code is permitted only under //
6
// license from LizardTech, Inc. Portions of the code are protected by //
7
// US and foreign patents and other filings. All Rights Reserved. //
8
// //
10
/* PUBLIC */
11
12
#ifndef NITFReaderManager_H
13
#define NITFReaderManager_H
14
15
// lt_lib_base
16
#include "
lt_base.h
"
17
18
// lt_lib_mrsid_core
19
#include "
lti_geoImageReader.h
"
20
#include "
lti_imageStageManager.h
"
21
22
LT_BEGIN_LIZARDTECH_NAMESPACE
23
class
LTFileSpec
;
24
class
LTIOStreamInf
;
25
26
namespace
Nitf
27
{
28
class
ImageReader;
29
class
FileHeader;
30
class
ImageSegment;
31
class
GraphicSegment;
32
class
LabelSegment;
33
class
TextSegment;
34
class
DataSegment;
35
class
ReservedSegment;
36
class
FileMetadata;
37
class
SecurityMetadata;
38
}
39
40
53
class
NITFReaderManager
:
public
LTIImageStageManager
54
{
55
LTI_REFERENCE_COUNTED_BOILERPLATE
(
NITFReaderManager
);
56
public
:
66
LT_STATUS
initialize(
const
LTFileSpec
& fileSpec,
bool
useWorldFile=
true
);
67
75
LT_STATUS
initialize(
LTIOStreamInf
*stream);
76
77
78
// not for public use
79
// must be called before initialize
80
LT_STATUS
setTileMaskList(
const
lt_uint32
* tileMaskList,
81
lt_uint32
tileMaskListLen);
82
96
LT_STATUS
createReader(
Nitf::ImageReader
*& reader,
lt_uint32
idx);
97
98
// not for public use - use createReader instead
99
LT_STATUS
createImageStage(
lt_uint32
imageNumber,
100
LTIImageStage
*&imageStage);
101
117
void
setCompat_2500B_N2(
bool
use2500B);
118
127
bool
getCompat_2500B_N2()
const
;
128
129
lt_int64 getFileSize()
const
;
130
134
const
Nitf::FileHeader
* getFileHeader()
const
;
135
139
lt_uint32
getNumImageSegments()
const
;
140
151
const
Nitf::ImageSegment
* getImageSegment(
lt_uint32
num)
const
;
152
156
const
char
* getImageSegmentIID1(
lt_uint32
num)
const
;
157
161
lt_uint32
getNumGraphicSegments()
const
;
162
171
const
Nitf::GraphicSegment
* getGraphicSegment(
lt_uint32
num)
const
;
172
176
lt_uint32
getNumLabelSegments()
const
;
177
186
const
Nitf::LabelSegment
* getLabelSegment(
lt_uint32
num)
const
;
187
191
lt_uint32
getNumTextSegments()
const
;
192
201
const
Nitf::TextSegment
* getTextSegment(
lt_uint32
num)
const
;
202
206
lt_uint32
getNumDataSegments()
const
;
207
216
const
Nitf::DataSegment
* getDataSegment(
lt_uint32
num)
const
;
217
221
lt_uint32
getNumResSegments()
const
;
222
231
const
Nitf::ReservedSegment
* getResSegment(
lt_uint32
num)
const
;
232
236
const
char
* getVersionString()
const
;
237
241
const
Nitf::FileMetadata
* getFileMetadata()
const
;
242
246
const
Nitf::SecurityMetadata
* getSecurityMetadata()
const
;
247
248
// not for public use
249
LTFileSpec
* getFileSpec()
const
;
250
251
private
:
252
LT_STATUS
fixMetadata(
LTIImageStage
*mos);
253
254
LTFileSpec
*m_fileSpec;
255
LTIOStreamInf
*m_stream;
256
bool
m_ownStream;
257
lt_int64 m_fileSize;
258
bool
m_useWorldFile;
259
260
Nitf::FileHeader
* m_fileHeader;
261
Nitf::ImageSegment
** m_imageSegments;
262
Nitf::GraphicSegment
** m_graphicSegments;
263
Nitf::LabelSegment
** m_labelSegments;
264
Nitf::TextSegment
** m_textSegments;
265
Nitf::DataSegment
** m_dataSegments;
266
Nitf::ReservedSegment
** m_resSegments;
267
lt_uint32
m_numImageSegments;
268
lt_uint32
m_numGraphicSegments;
269
lt_uint32
m_numLabelSegments;
270
lt_uint32
m_numTextSegments;
271
lt_uint32
m_numDataSegments;
272
lt_uint32
m_numResSegments;
273
274
char
* m_versionString;
275
276
bool
m_compat_2500B_N2;
277
278
const
lt_uint32
* m_tileMaskList;
279
lt_uint32
m_tileMaskListLen;
280
};
281
282
283
LT_END_LIZARDTECH_NAMESPACE
284
285
#endif // NITFReaderManager_H
LizardTech