MrSID Decode SDK for Raster Reference Manual
9.5.1.4427
|
00001 /* ////////////////////////////////////////////////////////////////////////// 00002 // // 00003 // This code is Copyright (c) 2010 LizardTech, Inc, 1008 Western Avenue, // 00004 // Suite 200, Seattle, WA 98104. Unauthorized use or distribution // 00005 // prohibited. Access to and use of this code is permitted only under // 00006 // license from LizardTech, Inc. Portions of the code are protected by // 00007 // US and foreign patents and other filings. All Rights Reserved. // 00008 // // 00010 /* PUBLIC */ 00011 00012 #ifndef DataSegment_H 00013 #define DataSegment_H 00014 00015 // lt_lib_base 00016 #include "lt_base.h" 00017 00018 // local 00019 #include "Segment.h" 00020 00021 LT_BEGIN_LIZARDTECH_NAMESPACE 00022 class LTIOStreamInf; 00023 00024 namespace Nitf { 00025 00026 00034 class DataSegment : public Segment 00035 { 00036 public: 00037 // not for public use -- to get a DataSegment, use NITFReaderManager::getDataSegment 00038 DataSegment(NITFReaderManager&, LTIOStreamInf&, 00039 int segmentNumber, 00040 lt_int64 headerOffset, lt_int64 headerLength, 00041 lt_int64 dataOffset, lt_int64 dataLength); 00042 ~DataSegment(); 00043 00044 // not for public use 00045 LT_STATUS initialize(); 00046 00047 // not for public use 00048 LT_STATUS addMetadataLocal(LTIMetadataDatabase& db) const; 00049 00050 // not for public use 00051 LT_STATUS addMetadataLocal(LTIMetadataDatabase& db, 00052 const char* prefixOverride) const; 00053 00054 // not for public use 00055 bool verifyIsOverflow(const char* code, bool isU, int segmentNum) const; 00056 00064 const char* getDESID() const; 00065 00073 const char* getDESVER() const; 00074 00082 lt_uint32 getDataLen() const; 00083 00092 const lt_uint8* getData() const; 00093 00094 private: 00095 LT_STATUS readHeader(); 00096 LT_STATUS readData(); 00097 00098 char* m_DESID; // 25 00099 char* m_DESVER; // 2 00100 char* m_DESOFLW; // 6 00101 int m_DESITEM; 00102 int m_DESSHL; 00103 lt_uint8* m_DESSHF; 00104 00105 lt_uint32 m_bytesLen; 00106 lt_uint8* m_bytes; 00107 00108 // nope 00109 DataSegment(DataSegment&); 00110 DataSegment& operator=(const DataSegment&); 00111 }; 00112 00113 00114 } 00115 LT_END_LIZARDTECH_NAMESPACE 00116 00117 #endif // DataSegment_H