MrSID Decode SDK for Raster Reference Manual  9.5.1.4427
FileHeader.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 FileHeader_H
13 #define FileHeader_H
14 
15 // local
16 #include "Segment.h"
17 
18 
20 class LTIOStreamInf;
21 
22 namespace Nitf {
23 class ImageSegment;
24 class GraphicSegment;
25 class LabelSegment;
26 class TextSegment;
27 class DataSegment;
28 class ReservedSegment;
29 class FieldReader;
30 class FileMetadata;
31 
32 
41 class FileHeader : public Segment
42 {
43 public:
44  // not for public use
45  FileHeader(NITFReaderManager&, LTIOStreamInf&, lt_int64 fileSize);
46  ~FileHeader();
47 
48  // not for public use
50 
58  Version getVersion() const;
59 
60  // not for public use
61  LT_STATUS createSegments(ImageSegment**& imageSegments, lt_uint32& numImageSegments,
62  GraphicSegment**& graphicSegments, lt_uint32& numGraphicSegments,
63  LabelSegment**& labelSegments, lt_uint32& numLabelSegments,
64  TextSegment**& textSegments, lt_uint32& numTextSegments,
65  DataSegment**& dataSegments, lt_uint32& numDataSegments,
66  ReservedSegment**& resSegments, lt_uint32& numResSegments);
67 
68  // not for public use
70 
79  const lt_uint8* getFBKGC() const;
80 
88  const FileMetadata* getFileMetadata() const;
89 
90 private:
91  LT_STATUS readHeader();
92  LT_STATUS readData();
93  LT_STATUS readHeader_v2x();
94  LT_STATUS parseVersion();
95 
96  const lt_int64 m_fileSize;
97 
98  Version m_ver;
99  char* m_FHDR; // 4
100  char* m_FVER; // 5
101  int m_CLEVEL;
102  char* m_STYPE; // 4
103  int m_FSCOP;
104  int m_FSCPYS;
105  lt_uint8 m_FBKGC[3];
106  lt_int64 m_FL;
107  lt_int64 m_HL;
108  lt_int32 m_NUMI;
109  lt_int64* m_LISH;
110  lt_int64* m_LI;
111  lt_int32 m_NUMS;
112  lt_int64* m_LSSH;
113  lt_int64* m_LS;
114  lt_int32 m_NUML;
115  lt_int64* m_LLSH;
116  lt_int64* m_LL;
117  lt_int32 m_NUMT;
118  lt_int64* m_LTSH;
119  lt_int64* m_LT;
120  lt_int32 m_NUMDES;
121  lt_int64* m_LDSH;
122  lt_int64* m_LD;
123  lt_int32 m_NUMRES;
124  lt_int64* m_LRESH;
125  lt_int64* m_LRE;
126 
127  char* m_FTITLE;
128 
129  FileMetadata* m_fileMetadata;
130 
131  // nope
133  FileHeader& operator=(const FileHeader&);
134 };
135 
136 
137 }
139 
140 #endif // FileHeader_H

LizardTech