CARMA C++
ScopedFlockManager.h
1 #ifndef CARMA_UTIL_SCOPEDFLOCKMANAGER_H
2 #define CARMA_UTIL_SCOPEDFLOCKMANAGER_H
3 
4 namespace carma {
5 namespace util {
6 
7 class ScopedFlockManager {
8 public:
9  explicit ScopedFlockManager( bool logIfLeftLocked );
10 
11  /* virtual */ ~ScopedFlockManager( );
12 
13  void lockRead( int fd );
14 
15  void lockWrite( int fd );
16 
17  void unlock( int fd );
18 
19 private:
20  ScopedFlockManager( const ScopedFlockManager & rhs );
21  ScopedFlockManager & operator=( const ScopedFlockManager & rhs );
22 
23  const bool logIfLeftLocked_;
24  bool locked_;
25  int fd_;
26 };
27 
28 }} // namespace carma::util
29 #endif