MrSID Decode SDK for Raster Reference Manual  9.5.4.4709
TextSegment.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 TextSegment_H
00013 #define TextSegment_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 class TextSegmentMetadata;
00027 
00028 
00036 class TextSegment : public Segment
00037 {
00038 public:
00039    // not for public use -- to get a DataSegment, use NITFReaderManager::getTextSegment
00040    TextSegment(NITFReaderManager&, LTIOStreamInf&,
00041                int segmentNumber,
00042                lt_int64 headerOffset, lt_int64 headerLength,
00043                lt_int64 dataOffset, lt_int64 dataLength);
00044 
00045    // not for public use
00046    ~TextSegment();
00047 
00048    // not for public use
00049    LT_STATUS initialize();
00050 
00058    lt_uint8* getTextData() const;
00059 
00067    lt_uint32 getTextDataLength() const;
00068 
00069    // not for public use
00070    LT_STATUS addMetadataLocal(LTIMetadataDatabase& db) const;
00071 
00072 private:
00073    LT_STATUS readHeader();
00074    LT_STATUS readData();
00075 
00076    TextSegmentMetadata* m_textMetadata;
00077 
00078    char* m_TXTALVL;  // 3
00079    char* m_TXTFMT;   // 3
00080 
00081    lt_uint8* m_textData;
00082    lt_uint32 m_textDataLen;
00083 
00084    // nope
00085    TextSegment(TextSegment&);
00086    TextSegment& operator=(const TextSegment&);
00087 };
00088 
00089 
00090 }
00091 LT_END_LIZARDTECH_NAMESPACE
00092 
00093 #endif // TextSegment_H