MrSID Decode SDK for Raster Reference Manual  9.5.4.4709
lt_utilStatusData.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 LT_UTILSTATUSDATA_H
00014 #define LT_UTILSTATUSDATA_H
00015 
00016 // lt_lib_base
00017 #include "lt_base.h"
00018 
00019 LT_BEGIN_NAMESPACE(LizardTech)
00020 
00021 class LTFileSpec;
00022 
00023 
00086 class LTUtilStatusData
00087 {
00088 public:
00099    static LT_STATUS initialize();
00100 
00109    static LT_STATUS terminate();
00110 
00111    // returns true iff initialize() was called, e.g. system is being used
00112    static bool isActive();
00113 
00114    // push data associated with an error onto the error frame stack
00115    // do begin(), data..., end()
00116    static void pushBegin(LT_STATUS status);
00117    static void pushContext(LT_STATUS status, const char *context);
00118    static void pushUint32(lt_uint32 value);
00119    static void pushInt32(lt_int32 value);
00120    static void pushString(const char *value);
00121    static void pushDouble(double value);
00122    static void pushFileSpec(const LTFileSpec &value);
00123    static void pushEnd();
00124 
00125    // get the top data item off the error frame stack
00126    // returns failure if the data itemis not of the specified type
00127    static LT_STATUS popBegin(LT_STATUS &status);
00128    static LT_STATUS popContext(const char *&context);
00129    static LT_STATUS popString(char *&value);         // caller takes ownership of string
00130    static LT_STATUS popEnd();
00131 
00132    // remove the current error frame, if any (this is like doing the pop
00133    // begin/end sequence, if there is an active frame)
00134    static void clear();
00135 
00136    class ErrorState;
00137 };
00138 
00139 
00140 LT_END_NAMESPACE(LizardTech)
00141 
00142 #endif // LT_UTILSTATUSDATA_H