MrSID Decode SDK for Raster Reference Manual  9.0.0.3864
lt_utilStatusData.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 LT_UTILSTATUSDATA_H
14 #define LT_UTILSTATUSDATA_H
15 
16 // lt_lib_base
17 #include "lt_base.h"
18 
19 // system
20 #include <stdlib.h>
21 
22 
23 #if defined(LT_COMPILER_MS)
24  #pragma warning(push,4)
25 #endif
26 
27 
28 LT_BEGIN_NAMESPACE(LizardTech)
29 
30 class LTFileSpec;
31 
32 
97 {
98 public:
109  static LT_STATUS initialize();
110 
119  static LT_STATUS terminate();
120 
121  // returns true iff initialize() was called, e.g. system is being used
122  static bool isActive();
123 
124  // push data associated with an error onto the error frame stack
125  // do begin(), data..., end()
126  static void pushBegin(LT_STATUS status);
127  static void pushContext(LT_STATUS status, const char *context);
128  static void pushUint32(lt_uint32 value);
129  static void pushInt32(lt_int32 value);
130  static void pushString(const char *value);
131  static void pushDouble(double value);
132  static void pushFileSpec(const LTFileSpec &value);
133  static void pushEnd();
134 
135  // get the top data item off the error frame stack
136  // returns failure if the data itemis not of the specified type
137  static LT_STATUS popBegin(LT_STATUS &status);
138  static LT_STATUS popContext(const char *&context);
139  static LT_STATUS popString(char *&value); // caller takes ownership of string
140  static LT_STATUS popEnd();
141 
142  // remove the current error frame, if any (this is like doing the pop
143  // begin/end sequence, if there is an active frame)
144  static void clear();
145 };
146 
147 
148 LT_END_NAMESPACE(LizardTech)
149 
150 #if defined(LT_COMPILER_MS)
151  #pragma warning(pop)
152 #endif
153 
154 #endif // LT_UTILSTATUSDATA_H

LizardTech