X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2FKM_error.h;h=2d3513a6c62d0483006ea2020311d662ca688be4;hb=57ddb7894042229bbc5f14e9257068afcc6f8725;hp=612a92c7dc5452540574025a682701052123c8cd;hpb=bfedf725dac9d13f3a02fe69f45c302ab29d2b1e;p=asdcplib.git diff --git a/src/KM_error.h b/src/KM_error.h index 612a92c..2d3513a 100755 --- a/src/KM_error.h +++ b/src/KM_error.h @@ -48,16 +48,20 @@ namespace Kumu Result_t(); public: - Result_t(long v, const char* l) : value(v), label(l) {} + static const Result_t& Find(long); + + Result_t(long v, const char* l); + ~Result_t(); + inline bool operator==(const Result_t& rhs) const { return value == rhs.value; } inline bool operator!=(const Result_t& rhs) const { return value != rhs.value; } - inline bool Success() { return ( value >= 0 ); } - inline bool Failure() { return ( value < 0 ); } + inline bool Success() const { return ( value >= 0 ); } + inline bool Failure() const { return ( value < 0 ); } - inline long Value() { return value; } + inline long Value() const { return value; } inline operator long() const { return value; } - inline const char* Label() { return label; } + inline const char* Label() const { return label; } inline operator const char*() const { return label; } }; @@ -110,6 +114,35 @@ namespace Kumu return Kumu::RESULT_NULL_STR; \ } +namespace Kumu +{ + // simple tracing mechanism + class DTrace_t + { + DTrace_t(); + + protected: + const char* m_Label; + Result_t* m_Watch; + int m_Line; + const char* m_File; + int m_Sequence; + + public: + DTrace_t(const char* Label, Result_t* Watch, int Line, const char* File); + ~DTrace_t(); + }; +} + +#ifdef KM_TRACE +#define WDTRACE(l) DTrace_t __wl__Trace__((l), 0, __LINE__, __FILE__) +#define WDTRACER(l,r) DTrace_t __wl__Trace__((l), &(r), __LINE__, __FILE__) +#else +#define WDTRACE(l) +#define WDTRACER(l,r) +#endif + + #endif // _KM_ERROR_H_ //