MrSID Decode SDK for Raster Reference Manual  9.5.1.4427
DataSegment.h
Go to the documentation of this file.
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