MrSID Decode SDK for Raster Reference Manual 9.5.4.4709

- Main Page
- Namespaces
- Classes
- Files
- Examples

- File List
- File Members

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
19 LT_BEGIN_LIZARDTECH_NAMESPACE
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
49 LT_STATUS initialize();
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
69 LT_STATUS addMetadataLocal(LTIMetadataDatabase& db) const;
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
132 FileHeader(FileHeader&);
133 FileHeader& operator=(const FileHeader&);
134 };
135
136
137 }
138 LT_END_LIZARDTECH_NAMESPACE
139
140 #endif // FileHeader_H

LizardTech