MrSID Decode SDK for Raster Reference Manual  9.5.4.4709
lti_metadataDatabase.h
Go to the documentation of this file.
00001 /* $Id$ */
00002 /* //////////////////////////////////////////////////////////////////////////
00003 //                                                                         //
00004 // This code is Copyright (c) 2004 LizardTech, Inc, 1008 Western Avenue,   //
00005 // Suite 200, Seattle, WA 98104.  Unauthorized use or distribution         //
00006 // prohibited.  Access to and use of this code is permitted only under     //
00007 // license from LizardTech, Inc.  Portions of the code are protected by    //
00008 // US and foreign patents and other filings. All Rights Reserved.          //
00009 //                                                                         //
00011 /* PUBLIC */
00012 
00013 #ifndef LTIMETADATADATABASE_H
00014 #define LTIMETADATADATABASE_H
00015 
00016 // lt_lib_base
00017 #include "lt_base.h"
00018 
00019 // lt_lib_mrsid_metadata
00020 #include "lti_metadataTypes.h"
00021 
00022 
00023 LT_BEGIN_NAMESPACE(LizardTech)
00024 
00025 #if defined(LT_COMPILER_MS)
00026    #pragma warning(push,4)
00027 #endif
00028 
00029 class LTIMetadataRecord;
00030 
00031 
00045 class LTIMetadataDatabase
00046 {
00047 public:
00053    LTIMetadataDatabase();
00054 
00058    LTIMetadataDatabase(const LTIMetadataDatabase&);
00059 
00063    virtual ~LTIMetadataDatabase();
00064 
00065 
00070 
00082    LT_STATUS add(const LTIMetadataRecord& record);
00083 
00097    LT_STATUS add(const LTIMetadataDatabase& database);
00098 
00106 
00120    LT_STATUS get(const char* tagName,
00121                  const LTIMetadataRecord*& record) const;
00122 
00136    LT_STATUS get(LTIMetadataTag tag,
00137                  const LTIMetadataRecord*& record) const;
00138 
00148    bool has(const char* tagName) const;
00149 
00159    bool has(LTIMetadataTag tag) const;
00160 
00179    LT_STATUS getDataByIndex(lt_uint32 index,
00180                             const LTIMetadataRecord*& record) const;
00181 
00189    lt_uint32 getIndexCount() const;
00190 
00198 
00211    LT_STATUS remove(const char* tagName);
00212 
00225    LT_STATUS remove(LTIMetadataTag tag);
00226 
00234    LT_STATUS removeAll();
00235 
00246    lt_int32 getApproximateSize() const;
00247 
00252    void sort(void);
00253 
00254 private:
00255    class RecordListX;
00256    RecordListX* m_recordList;
00257 
00258    // nope
00259    LTIMetadataDatabase& operator=(const LTIMetadataDatabase&);
00260 };
00261 
00262 
00263 LT_END_NAMESPACE(LizardTech)
00264 
00265 #if defined(LT_COMPILER_MS)
00266    #pragma warning(pop)
00267 #endif
00268 
00269 #endif // LTIMETADATADATABASE_H