CARMA C++
PthreadAttr.h
1 #ifndef CARMA_UTIL_PTHREAD_ATTR_H
2 #define CARMA_UTIL_PTHREAD_ATTR_H
3 
4 #include <pthread.h>
5 
6 
7 namespace carma {
8 namespace util {
9 
10 
13 
14 class PthreadAttr {
15  public:
16 
20 
21  explicit PthreadAttr( );
22 
23 
27 
28  explicit PthreadAttr( int detachState );
29 
30 
36 
37  virtual ~PthreadAttr( );
38 
39 
40  int getDetachState( ) const;
41 
42  void setDetachState( int detachState );
43 
44 
45  ::size_t getStackSize( ) const;
46 
47  void setStackSize( ::size_t stackSize );
48 
49 
50  ::size_t getGuardSize( ) const;
51 
52  void setGuardSize( ::size_t guardSize );
53 
54 
64 
65  const ::pthread_attr_t & InternalPthreadAttr( ) const;
66 
67 
77 
78  ::pthread_attr_t & InternalPthreadAttr( );
79 
80 
81  private:
82  // no copying
83  PthreadAttr( const PthreadAttr & rhs );
84  PthreadAttr & operator=( const PthreadAttr & rhs );
85 
86  ::pthread_attr_t attr_;
87 };
88 
89 
90 } // namespace carma::util
91 } // namespace carma
92 
93 
94 inline const ::pthread_attr_t &
96 {
97  return attr_;
98 }
99 
100 
101 inline ::pthread_attr_t &
103 {
104  return attr_;
105 }
106 
107 
108 #endif
virtual ~PthreadAttr()
Destruct pthread attributes.
const ::pthread_attr_t & InternalPthreadAttr() const
Obtain a reference to the internal ::pthread_attr_t.
Definition: PthreadAttr.h:95
A simple wrapper class that makes use of ::pthread_attr_t easier in a C++ world.
Definition: PthreadAttr.h:14
PthreadAttr()
Construct pthread attributes with the CARMA defaults.