ucommon/access.h File Reference

Locking classes for member function automatic operations. More...

#include <ucommon/platform.h>

Include dependency graph for access.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.


Data Structures

class  ucc::Exclusive
 An exclusive locking protocol interface base. More...
class  ucc::Shared
 An exclusive locking protocol interface base. More...
class  ucc::exclusive_lock
 A kind of smart pointer object to support exclusive locking protocol. More...
class  ucc::shared_lock
 A kind of smart pointer object to support shared locking protocol. More...

Namespaces

namespace  ucc
 Common namespace for all ucommon objects.

Defines

#define exclusive_object()   exlock_t __autolock__ = this
#define protected_object()   shlock_t __autolock__ = this
#define exclusive_access(x)   exlock_t __autolock__ = &x
#define protected_access(x)   shlock_t __autolock__ = &x

Typedefs

typedef exclusive_lock ucc::exlock_t
 Convenience type to use for object referencing an exclusive object.
typedef shared_lock ucc::shlock_t
 Convenience type to use for object referencing a shared object.

Functions

void ucc::lock (Exclusive *object)
 Convenience function to exclusively lock an object through it's protocol.
void ucc::unlock (Exclusive *object)
 Convenience function to unlock an exclusive object through it's protocol.
void ucc::access (Shared *object)
 Convenience function to access (lock) shared object through it's protocol.
void ucc::release (Shared *object)
 Convenience function to unlock shared object through it's protocol.
void ucc::exclusive (Shared *object)
 Convenience function to exclusive lock shared object through it's protocol.
void ucc::share (Shared *object)
 Convenience function to restore shared locking for object through it's protocol.
void ucc::release (exlock_t &reference)
 Convenience function to release a reference to an exclusive lock.
void ucc::release (shlock_t &reference)
 Convenience function to release a reference to a shared lock.


Detailed Description

Locking classes for member function automatic operations.

This header covers ucommon access related classes. These are used to provide automatic management of locks and sychronization objects through common virtual base classes which can be used with automatic objects. These classes are intended to be used much like "protocols" in conjunction with smart pointer/referencing classes. This protocol interface supports member functions to aquire a lock when entered and automatically release the lock when the member function returns that are used in conjunction with special referencing smart pointers.

Author:
David Sugar <dyfet@gnutelephony.org>

Definition in file access.h.


Generated on Wed May 13 09:11:20 2009 for UCommon by  doxygen 1.5.8