MrSID Decode SDK for Raster Reference Manual 9.5.4.4709

- Main Page
- Namespaces
- Classes
- Files
- Examples

- File List
- File Members

lti_metadataRecord.h
Go to the documentation of this file.
1 /* $Id$ */
2 /* //////////////////////////////////////////////////////////////////////////
3 // //
4 // This code is Copyright (c) 2004 LizardTech, Inc, 1008 Western Avenue, //
5 // Suite 200, Seattle, WA 98104. Unauthorized use or distribution //
6 // prohibited. Access to and use of this code is permitted only under //
7 // license from LizardTech, Inc. Portions of the code are protected by //
8 // US and foreign patents and other filings. All Rights Reserved. //
9 // //
11 /* PUBLIC */
12
13 #ifndef LTIMETADATARECORD_H
14 #define LTIMETADATARECORD_H
15
16 // lt_lib_base
17 #include "lt_base.h"
18
19 // lt_lib_mrsid_metadata
20 #include "lti_metadataTypes.h"
21
22 LT_BEGIN_NAMESPACE(LizardTech)
23
24 #if defined(LT_COMPILER_MS)
25 #pragma warning(push,4)
26 #endif
27
28
47 class LTIMetadataRecord
48 {
49 public:
62 LTIMetadataRecord(LTIMetadataTag tag,
63 LTIMetadataDataType type,
64 const void* data);
65
78 LTIMetadataRecord(const char* tagName,
79 LTIMetadataDataType type,
80 const void* data);
81
95 LTIMetadataRecord(LTIMetadataTag tag,
96 LTIMetadataDataType type,
97 const void* data,
98 lt_uint32 vecLen);
112 LTIMetadataRecord(const char* tagName,
113 LTIMetadataDataType type,
114 const void* data,
115 lt_uint32 vecLen);
116
131 LTIMetadataRecord(LTIMetadataTag tag,
132 LTIMetadataDataType type,
133 const void* data,
134 lt_uint32 numDims,
135 const lt_uint32* dims);
136
151 LTIMetadataRecord(const char* tagName,
152 LTIMetadataDataType type,
153 const void* data,
154 lt_uint32 numDims,
155 const lt_uint32* dims);
156
160 LTIMetadataRecord(const LTIMetadataRecord&);
161
165 ~LTIMetadataRecord();
166
174 LTIMetadataTag getTag() const;
175
183 const char* getTagName() const;
184
192 LTIMetadataDataType getDataType() const;
193
204 lt_uint32 getNumDims() const;
205
219 const lt_uint32* getDims() const;
220 lt_uint32 getNumValues(void) const;
221
230 bool isScalar() const;
231
239 bool isVector() const;
240
248 bool isArray() const;
249
262 const void* getScalarData() const;
263
277 const void* getVectorData(lt_uint32& vecLen) const;
278
294 const void* getArrayData(lt_uint32& numDims, const lt_uint32*& dims) const;
295
304 lt_int32 getApproximateSize() const;
305
306 private:
307 void initialize(LTIMetadataTag tag,
308 const void* data, const lt_uint32* dims);
309 void initialize(const char* tagName,
310 const void* data, const lt_uint32* dims);
311
312 lt_uint32 computeLen() const;
313
314 char* m_tagName;
315 LTIMetadataDataType m_type;
316 lt_uint32 m_numDims;
317 lt_uint32* m_dims;
318 lt_uint8* m_data;
319
320 // nope
321 LTIMetadataRecord& operator=(const LTIMetadataRecord&);
322 };
323
324
325 LT_END_NAMESPACE(LizardTech)
326
327 #if defined(LT_COMPILER_MS)
328 #pragma warning(pop)
329 #endif
330
331 #endif // LTIMETADATARECORD_H

LizardTech