te::common::ClassLevelLockable< Host, MutexPolicy, LockReadingPolicy, LockWritingPolicy > Class Template Reference

This policy assures a class-level locking scheme for a derived class. More...

#include <ThreadingPolicies.h>

Classes

class  ClassLevelLockingPolicy
 This class acquires a lock over the object class. More...
 

Public Types

typedef ClassLevelLockingPolicy< LockReadingPolicy > LockRead
 
typedef ClassLevelLockingPolicy< LockWritingPolicy > LockWrite
 
typedef volatile Host VolatileType
 

Static Private Attributes

static MutexPolicy sm_mtx
 The mutex used to control the class lock. More...
 

Friends

class ClassLevelLockingPolicy< LockReadingPolicy >
 
class ClassLevelLockingPolicy< LockWritingPolicy >
 

Detailed Description

template<class Host, class MutexPolicy = TE_DEFAULT_MUTEX_POLICY, class LockReadingPolicy = TE_DEFAULT_LOCK_READING_POLICY, class LockWritingPolicy = TE_DEFAULT_LOCK_WRITING_POLICY>
class te::common::ClassLevelLockable< Host, MutexPolicy, LockReadingPolicy, LockWritingPolicy >

This policy assures a class-level locking scheme for a derived class.

Requirements on types:

  • Host: is the type of the derived class from this policy.
  • MutexPolicy: any type that have a lock and unlock method. When using boost it can be one of the follwoing: boost::mutex, bost::timed_mutex, bost::recursive_mutex, boost::recursive_timed_mutex or boost::shared_mutex.
  • The LockReadingPolicy and LockWritingPolicy may be: boost::lock_guard, boost::unique_lock, boost::shared_lock, boost::upgrade_lock, boost::upgrade_to_unique_lock

Definition at line 250 of file ThreadingPolicies.h.

Member Typedef Documentation

template<class Host, class MutexPolicy = TE_DEFAULT_MUTEX_POLICY, class LockReadingPolicy = TE_DEFAULT_LOCK_READING_POLICY, class LockWritingPolicy = TE_DEFAULT_LOCK_WRITING_POLICY>
typedef ClassLevelLockingPolicy<LockReadingPolicy> te::common::ClassLevelLockable< Host, MutexPolicy, LockReadingPolicy, LockWritingPolicy >::LockRead

Definition at line 302 of file ThreadingPolicies.h.

template<class Host, class MutexPolicy = TE_DEFAULT_MUTEX_POLICY, class LockReadingPolicy = TE_DEFAULT_LOCK_READING_POLICY, class LockWritingPolicy = TE_DEFAULT_LOCK_WRITING_POLICY>
typedef ClassLevelLockingPolicy<LockWritingPolicy> te::common::ClassLevelLockable< Host, MutexPolicy, LockReadingPolicy, LockWritingPolicy >::LockWrite

Definition at line 303 of file ThreadingPolicies.h.

template<class Host, class MutexPolicy = TE_DEFAULT_MUTEX_POLICY, class LockReadingPolicy = TE_DEFAULT_LOCK_READING_POLICY, class LockWritingPolicy = TE_DEFAULT_LOCK_WRITING_POLICY>
typedef volatile Host te::common::ClassLevelLockable< Host, MutexPolicy, LockReadingPolicy, LockWritingPolicy >::VolatileType

Definition at line 301 of file ThreadingPolicies.h.

Friends And Related Function Documentation

template<class Host, class MutexPolicy = TE_DEFAULT_MUTEX_POLICY, class LockReadingPolicy = TE_DEFAULT_LOCK_READING_POLICY, class LockWritingPolicy = TE_DEFAULT_LOCK_WRITING_POLICY>
friend class ClassLevelLockingPolicy< LockReadingPolicy >
friend

Definition at line 305 of file ThreadingPolicies.h.

template<class Host, class MutexPolicy = TE_DEFAULT_MUTEX_POLICY, class LockReadingPolicy = TE_DEFAULT_LOCK_READING_POLICY, class LockWritingPolicy = TE_DEFAULT_LOCK_WRITING_POLICY>
friend class ClassLevelLockingPolicy< LockWritingPolicy >
friend

Definition at line 306 of file ThreadingPolicies.h.

Member Data Documentation

template<class Host, class MutexPolicy = TE_DEFAULT_MUTEX_POLICY, class LockReadingPolicy = TE_DEFAULT_LOCK_READING_POLICY, class LockWritingPolicy = TE_DEFAULT_LOCK_WRITING_POLICY>
MutexPolicy te::common::ClassLevelLockable< Host, MutexPolicy, LockReadingPolicy, LockWritingPolicy >::sm_mtx
staticprivate

The mutex used to control the class lock.

Definition at line 310 of file ThreadingPolicies.h.


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