Public Member Functions | Private Member Functions | Private Attributes

AcsBulkdata::ThreadSyncGuard Class Reference

#include <bulkDataNTThreadSyncGuard.h>

Collaboration diagram for AcsBulkdata::ThreadSyncGuard:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ThreadSyncGuard ()
 ThreadSyncGuard (const char *label, pthread_mutex_t *m)
 ThreadSyncGuard (const char *label, pthread_mutex_t *m, const ACS::TimeInterval &to)
 ~ThreadSyncGuard ()
void acquire (const ACS::TimeInterval &to)

Private Member Functions

 ThreadSyncGuard (const ThreadSyncGuard &)
ThreadSyncGuardoperator= (const ThreadSyncGuard &)

Private Attributes

std::string m_label
pthread_mutex_t * m_mutex_p
bool m_acquired

Detailed Description

An automatic unlocking guard that allows a timed wait.


Constructor & Destructor Documentation

AcsBulkdata::ThreadSyncGuard::ThreadSyncGuard (  ) 

An empty constructor to force a healthy and no-op construction of our ACS base.

AcsBulkdata::ThreadSyncGuard::ThreadSyncGuard ( const char *  label,
pthread_mutex_t *  m 
)

Instanciates but it does not try to lock.

AcsBulkdata::ThreadSyncGuard::ThreadSyncGuard ( const char *  label,
pthread_mutex_t *  m,
const ACS::TimeInterval &  to 
)

Instanciates and tries to lock.

AcsBulkdata::ThreadSyncGuard::~ThreadSyncGuard (  ) 

Destructor unlocks the mutex if needed.

AcsBulkdata::ThreadSyncGuard::ThreadSyncGuard ( const ThreadSyncGuard  )  [private]

Copying from a second guard is not part of the semantic, the mutex state is not be transfer from one object to a second.


Member Function Documentation

void AcsBulkdata::ThreadSyncGuard::acquire ( const ACS::TimeInterval &  to  ) 

Acquire with timeout.

ThreadSyncGuard& AcsBulkdata::ThreadSyncGuard::operator= ( const ThreadSyncGuard  )  [private]

Member Data Documentation

Whether the mutex is currently locked or not.

A short description to add meaningful content to error logs.

pthread_mutex_t* AcsBulkdata::ThreadSyncGuard::m_mutex_p [private]

Mutex provided by the user.


The documentation for this class was generated from the following file: