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();
00028 char* getThreadId(char* buffer);
00029
00034 typedef int Mutex;
00035
00039 typedef int ScopedLock;
00040
00041 template<typename T> class ThreadLocalDataHolder {
00042 public:
00043 typedef T data_type;
00044
00045 inline ThreadLocalDataHolder() {};
00046 inline ~ThreadLocalDataHolder() {
00047 if (_data)
00048 delete _data;
00049 };
00050
00051 inline T* get() const {
00052 return _data;
00053 };
00054
00055 inline T* operator->() const { return get(); };
00056 inline T& operator*() const { return *get(); };
00057
00058 inline T* release() {
00059 T* result = _data;
00060 _data = NULL;
00061
00062 return result;
00063 };
00064
00065 inline void reset(T* p = NULL) {
00066 if (_data)
00067 delete _data;
00068 _data = p;
00069 };
00070
00071 private:
00072 T* _data;
00073 };
00074 }
00075 }
00076 #endif