log4shib 2.0.0

BoostThreads.hh
Go to the documentation of this file.
1/*
2 * BoostThreads.hh
3 *
4 * Copyright 2002, LifeLine Networks BV (www.lifeline.nl). All rights reserved.
5 * Copyright 2002, Bastiaan Bakker. All rights reserved.
6 *
7 * See the COPYING file for the terms of usage and distribution.
8 */
9
10#ifndef _LOG4SHIB_THREADING_BOOSTTHREADS_HH
11#define _LOG4SHIB_THREADING_BOOSTTHREADS_HH
12
13#include <log4shib/Portability.hh>
14#include <boost/thread/thread.hpp>
15#include <boost/thread/mutex.hpp>
16#include <boost/thread/tss.hpp>
17#include <cstdio>
18#include <string>
19
20 namespace log4shib {
21 namespace threading {
22 static std::string getThreadId() {
23 char buffer[14];
24 // Boost.Threads stores the thread ID but doesn't expose it
25 sprintf(buffer, "not available");
26 return std::string(buffer);
27 };
28
29 typedef boost::mutex Mutex;
30 typedef boost::mutex::scoped_lock ScopedLock;
31
32 template<typename T> class ThreadLocalDataHolder {
33 public:
34 inline T* get() const {
35 return _localData.get();
36 };
37
38 inline T* operator->() const { return _localData.get(); };
39 inline T& operator*() const { return *_localData.get(); };
40
41 inline T* release() {
42 return _localData.release();
43 };
44
45 inline void reset(T* p = NULL) {
46 _localData.reset(p);
47 };
48
49 private:
50 boost::thread_specific_ptr<T> _localData;
51 };
52
53 }
54}
55#endif
Portability.hh
log4shib::threading::ThreadLocalDataHolder
This class holds Thread local data of type T, i.e.
Definition: BoostThreads.hh:32
log4shib::threading::ThreadLocalDataHolder::operator->
T * operator->() const
Definition: BoostThreads.hh:38
log4shib::threading::ThreadLocalDataHolder::operator*
T & operator*() const
Definition: BoostThreads.hh:39
log4shib::threading::ThreadLocalDataHolder::reset
void reset(T *p=NULL)
Definition: BoostThreads.hh:45
log4shib::threading::ThreadLocalDataHolder::get
T * get() const
Definition: BoostThreads.hh:34
log4shib::threading::ThreadLocalDataHolder::release
T * release()
Definition: BoostThreads.hh:41
log4shib::threading::getThreadId
static std::string getThreadId()
Return an identifier for the current thread.
Definition: BoostThreads.hh:22
log4shib::threading::Mutex
boost::mutex Mutex
Dummy type 'int' for Mutex.
Definition: BoostThreads.hh:27
log4shib::threading::ScopedLock
boost::mutex::scoped_lock ScopedLock
Dummy type 'int' defintion of ScopedLock;.
Definition: BoostThreads.hh:30
log4shib
The top level namespace for all 'Log for C++' types and classes.
Definition: AbortAppender.hh:16