MrSID Decode SDK for Raster Reference Manual  9.0.0.3864
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 
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 
54 {
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 
284 
285 #endif // NITFReaderManager_H

LizardTech