MrSID Decode SDK for Raster Reference Manual
9.5.4.4709
|
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