DCMTK  Version 3.6.1 20170228
OFFIS DICOM Toolkit
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | List of all members
OFSemaphore Class Reference

provides an operating system independent abstraction for semaphores. More...

Public Member Functions

 OFSemaphore (unsigned int numResources)
 constructor. More...
 
 ~OFSemaphore ()
 destructor
 
OFBool initialized () const
 checks whether creation of the object was successful. More...
 
int wait ()
 blocks the calling thread until the semaphore counter is greater than zero and then atomically decreases the counter. More...
 
int trywait ()
 atomically decreases the counter if it is larger than zero, otherwise returns OFSemaphore::busy. More...
 
int post ()
 atomically increases the counter. More...
 

Static Public Member Functions

static void errorstr (OFString &description, int code)
 converts any of the error codes returned by the methods of this class into a textual description, which is written into the string object. More...
 

Static Public Attributes

static const int busy
 this constant is returned by the trywait() method if the semaphore is already locked. More...
 

Private Member Functions

 OFSemaphore (const OFSemaphore &arg)
 unimplemented private copy constructor
 
OFSemaphoreoperator= (const OFSemaphore &arg)
 unimplemented private assignment operator
 

Private Attributes

void * theSemaphore
 semaphore resource
 

Detailed Description

provides an operating system independent abstraction for semaphores.

A semaphore is a non-negative integer counter that is used to coordinate access to resources. The initial and maximum value of the counter is defined by the constructor. Each call to wait() decreases the counter by one and each call to post() increases the count by one. If a thread calls wait() while the counter is zero, the thread is blocked until another thread has increased the counter using post().

Constructor & Destructor Documentation

OFSemaphore::OFSemaphore ( unsigned int  numResources)

constructor.

Parameters
numResourcesis the initial and maximum value for the semaphore.

Member Function Documentation

static void OFSemaphore::errorstr ( OFString description,
int  code 
)
static

converts any of the error codes returned by the methods of this class into a textual description, which is written into the string object.

Parameters
descriptionstring object into which the error description is written.
codeerror code
OFBool OFSemaphore::initialized ( ) const

checks whether creation of the object was successful.

Returns
OFTrue if the object was successfully created, OFFalse otherwise.
int OFSemaphore::post ( )

atomically increases the counter.

If threads are blocked on the semaphore, at least one of them is unblocked.

Returns
0 upon success, an error code otherwise.
int OFSemaphore::trywait ( )

atomically decreases the counter if it is larger than zero, otherwise returns OFSemaphore::busy.

Returns
0 upon success, OFSemaphore::busy if the semaphore is already locked, an error code otherwise.
int OFSemaphore::wait ( )

blocks the calling thread until the semaphore counter is greater than zero and then atomically decreases the counter.

Returns
0 upon success, an error code otherwise.

Member Data Documentation

const int OFSemaphore::busy
static

this constant is returned by the trywait() method if the semaphore is already locked.

Since this value is operating system dependent, comparisons should always compare the return value of trywait() with this constant.


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


Generated on Tue Feb 28 2017 for DCMTK Version 3.6.1 20170228 by Doxygen 1.8.8