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