ucc::auto_protect Class Reference

A mutex locked object smart pointer helper class. More...

#include <thread.h>

Inheritance diagram for ucc::auto_protect:

Inheritance graph
[legend]

Public Member Functions

 auto_protect (void *object)
 Construct a protected pointer referencing an existing object.
 ~auto_protect ()
 Delete protected pointer.
void release (void)
 Manually release the pointer.
bool operator! () const
 Test if the pointer is not set.
 operator bool () const
 Test if the pointer is referencing an object.
void operator= (void *object)
 Set our pointer to a specific object.

Protected Attributes

void * object

Detailed Description

A mutex locked object smart pointer helper class.

This is particularly useful in referencing objects which will be protected by the mutex protect function. When the pointer falls out of scope, the protecting mutex is also released. This is meant to be used by the typed mutex_pointer template.

Author:
David Sugar <dyfet@gnutelephony.org>

Definition at line 1257 of file thread.h.


Constructor & Destructor Documentation

ucc::auto_protect::auto_protect ( void *  object  ) 

Construct a protected pointer referencing an existing object.

Parameters:
object we point to.

ucc::auto_protect::~auto_protect (  ) 

Delete protected pointer.

When it falls out of scope the associated mutex is released.


Member Function Documentation

ucc::auto_protect::operator bool (  )  const [inline]

Test if the pointer is referencing an object.

Returns:
true if the pointer is currently referencing an object.

Definition at line 1297 of file thread.h.

bool ucc::auto_protect::operator! (  )  const [inline]

Test if the pointer is not set.

Returns:
true if the pointer is not referencing anything.

Definition at line 1290 of file thread.h.

void ucc::auto_protect::operator= ( void *  object  ) 

Set our pointer to a specific object.

If the pointer currently references another object, the associated mutex is released. The pointer references our new object and that new object is locked.

Parameters:
object to assign to.

void ucc::auto_protect::release ( void   ) 

Manually release the pointer.

This releases the mutex.


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

Generated on Wed May 13 08:43:27 2009 for UCommon by  doxygen 1.5.7.1