libjmmcg  release_579_6_g8cffd
A C++ library containing an eclectic mix of useful, advanced components.
jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::NTUtils::semaphore Class Reference

#include <NTLocking.hpp>

Inheritance diagram for jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::NTUtils::semaphore:
[legend]
Collaboration diagram for jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::NTUtils::semaphore:
[legend]

Public Types

typedef lock::lockable< api_lock_traits< ppd::generic_traits::MS_Win32, heavyweight_threading > > base_t
 
typedef int count_type
 
typedef base_t::lock_traits lock_traits
 
typedef base_t::atomic_state_type atomic_state_type
 
typedef lock::in_process< semaphorelock_type
 
typedef lock_type read_lock_type
 
typedef lock_type write_lock_type
 
typedef atomic_state_type lock_result_type
 
- Public Types inherited from jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::lock::lockable< lock_traits >
using lock_traits = lock_traits
 
typedef lock_traits::atomic_state_type atomic_state_type
 
typedef lock_traits::timeout_type timeout_type
 

Public Member Functions

__stdcall semaphore (const long max_count, const long init_count, tchar const *name) noexcept(true)
 
__stdcall ~semaphore () noexcept(true)
 
__fastcall operator handle_type ()
 
atomic_state_type __fastcall lock (const timeout_type period) noexcept(true)
 
atomic_state_type __fastcall unlock (const long decrement=1, long *prev_count=NULL) noexcept(true)
 
- Public Member Functions inherited from jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::lock::lockable< lock_traits >
virtual atomic_state_type __fastcall lock () noexcept(false)=0
 
virtual atomic_state_type __fastcall try_lock () noexcept(true) FORCE_INLINE
 
virtual atomic_state_type __fastcall unlock () noexcept(true)=0
 

Additional Inherited Members

- Protected Member Functions inherited from jmmcg::LIBJMMCG_VER_NAMESPACE::non_copyable
 non_copyable ()=default
 
 ~non_copyable ()=default
 
 non_copyable (non_copyable const &)=delete
 
 non_copyable (non_copyable &&)=delete
 
void operator= (non_copyable const &)=delete
 
void operator= (non_copyable &&)=delete
 

Detailed Description

Definition at line 332 of file NTLocking.hpp.

Member Typedef Documentation

◆ atomic_state_type

◆ base_t

◆ count_type

◆ lock_result_type

◆ lock_traits

◆ lock_type

◆ read_lock_type

◆ write_lock_type

Constructor & Destructor Documentation

◆ semaphore()

__stdcall jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::NTUtils::semaphore::semaphore ( const long  max_count,
const long  init_count,
tchar const *  name 
)
inlinenoexcept

Definition at line 343 of file NTLocking.hpp.

◆ ~semaphore()

__stdcall jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::NTUtils::semaphore::~semaphore ( )
inlinenoexcept

Definition at line 345 of file NTLocking.hpp.

Member Function Documentation

◆ lock()

atomic_state_type __fastcall jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::NTUtils::semaphore::lock ( const timeout_type  period)
inlinevirtualnoexcept

◆ operator handle_type()

__fastcall jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::NTUtils::semaphore::operator handle_type ( )
inline

Definition at line 349 of file NTLocking.hpp.

◆ unlock()

atomic_state_type __fastcall jmmcg::LIBJMMCG_VER_NAMESPACE::ppd::NTUtils::semaphore::unlock ( const long  decrement = 1,
long *  prev_count = NULL 
)
inlinenoexcept

Definition at line 356 of file NTLocking.hpp.


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