MrSID Decode SDK for Raster Reference Manual  9.0.0.3864
LabelSegment.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 LabelSegment_H
00013 #define LabelSegment_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 LabelSegment : public Segment
00035 {
00036 public:
00037    // not for public use -- to get a DataSegment, use NITFReaderManager::getLabelSegment
00038    LabelSegment(NITFReaderManager&, LTIOStreamInf&,
00039                 int segmentNumber,
00040                 lt_int64 headerOffset, lt_int64 headerLength,
00041                 lt_int64 dataOffset, lt_int64 dataLength);
00042    ~LabelSegment();
00043 
00044    // not for public use
00045    LT_STATUS initialize();
00046 
00050    lt_uint32 getLabelDataLength() const;
00051 
00055    lt_uint8* getLabelData() const;
00056 
00057    // not for public use
00058    LT_STATUS addMetadataLocal(LTIMetadataDatabase& db) const;
00059 
00060 private:
00061    LT_STATUS readHeader();
00062    LT_STATUS readData();
00063    
00064    char* m_LID;      // 10
00065    char* m_LFS;      // 1
00066    char* m_LCW;      // 2
00067    char* m_LCH;      // 2
00068    char* m_LDLVL;    // 3
00069    char* m_LALVL;    // 3
00070    char* m_LLOC;     // 3
00071    lt_uint8* m_LTC;      // 3
00072    lt_uint8* m_LBC;      // 3
00073 
00074    lt_uint8* m_labelData;
00075    lt_uint32 m_labelDataLen;
00076 
00077    // nope
00078    LabelSegment(LabelSegment&);
00079    LabelSegment& operator=(const LabelSegment&);
00080 };
00081 
00082 
00083 }
00084 LT_END_LIZARDTECH_NAMESPACE
00085 
00086 #endif // LabelSegment_H