00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef _LOG4CPP_THREADING_DUMMYTHREADS_HH
00011 #define _LOG4CPP_THREADING_DUMMYTHREADS_HH
00012
00013 #include <log4cpp/Portability.hh>
00014 #include <stdio.h>
00015 #include <string>
00016
00017 namespace log4cpp {
00018 namespace threading {
00019 std::string getThreadId();
00020
00025 typedef int Mutex;
00026
00030 typedef int ScopedLock;
00031
00032 template<typename T> class ThreadLocalDataHolder {
00033 public:
00034 typedef T data_type;
00035
00036 inline ThreadLocalDataHolder() {};
00037 inline ~ThreadLocalDataHolder() {
00038 if (_data)
00039 delete _data;
00040 };
00041
00042 inline T* get() const {
00043 return _data;
00044 };
00045
00046 inline T* operator->() const { return get(); };
00047 inline T& operator*() const { return *get(); };
00048
00049 inline T* release() {
00050 T* result = _data;
00051 _data = NULL;
00052
00053 return result;
00054 };
00055
00056 inline void reset(T* p = NULL) {
00057 if (_data)
00058 delete _data;
00059 _data = p;
00060 };
00061
00062 private:
00063 T* _data;
00064 };
00065 }
00066 }
00067 #endif