log4shib
1.0.8
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
include
log4shib
threading
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
Generated on Tue Jun 25 2013 23:15:34 for log4shib by
1.8.4