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
#define LT_BEGIN_LIZARDTECH_NAMESPACE
compiler does not support namespaces
Definition: lt_define.h:96
LT_STATUS addMetadataLocal(LTIMetadataDatabase &db) const
base class for segment data in an NITF file
Definition: Segment.h:42
represents a data segment in an existing NITF file
Definition: DataSegment.h:34
Abstract definition of a stream.
unsigned int lt_uint32
unsigned 32-bit integer
Definition: lt_types.h:54
class for storing metadata associated with an image
FileHeader(NITFReaderManager &, LTIOStreamInf &, lt_int64 fileSize)
const FileMetadata * getFileMetadata() const
returns the object holding the file metadata
represents a Reserved segment in an NITF file
LT_STATUS initialize()
initializer
LT_STATUS createSegments(ImageSegment **&imageSegments, lt_uint32 &numImageSegments, GraphicSegment **&graphicSegments, lt_uint32 &numGraphicSegments, LabelSegment **&labelSegments, lt_uint32 &numLabelSegments, TextSegment **&textSegments, lt_uint32 &numTextSegments, DataSegment **&dataSegments, lt_uint32 &numDataSegments, ReservedSegment **&resSegments, lt_uint32 &numResSegments)
Version
version
Definition: nitf_types.h:35
represents a label segment in an existing NITF file
Definition: LabelSegment.h:34
signed int lt_int32
signed 32-bit integer
Definition: lt_types.h:52
container for File Header metadata
Definition: FileMetadata.h:38
#define LT_END_LIZARDTECH_NAMESPACE
compiler does not support namespaces
Definition: lt_define.h:97
unsigned char lt_uint8
unsigned 8-bit integer
Definition: lt_types.h:46
represents a text segment in an NITF file
Definition: TextSegment.h:36
represents a image segment in an existing NITF file
Definition: ImageSegment.h:44
represents a graphic segment in an existing NITF file
lt_uint32 LT_STATUS
An integral status code.
Definition: lt_status.h:39
Version getVersion() const
returns the version of the file
const lt_uint8 * getFBKGC() const
returns the background pixel for the overall file
represents the file header properties of a NITF file
Definition: FileHeader.h:41

LizardTech