MrSID Decode SDK for Raster Reference Manual  9.1.0.4045
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 
48 {
49 public:
64  const void* data);
65 
78  LTIMetadataRecord(const char* tagName,
80  const void* data);
81 
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 
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 
161 
166 
174  LTIMetadataTag getTag() const;
175 
183  const char* getTagName() const;
184 
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 
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