|
Classes |
| class | CAutoResetEvent |
| | A class that wraps the operating system Event API and exposes just the interface for an auto reset event. More...
|
| class | CCriticalSection |
| | A class that wraps the operating system Critical Section API and that implements the ICriticalSection interface. The addition of the ICriticalSection interface has increased the size of this object and added a layer of indirection into the Enter() and Leave() calls. If this proves to be a performance problem then we can simply create a 'CSmallAndFastCriticalSection which doesn't inherit from the interface. More...
|
| class | CEvent |
| | A class that wraps the operating system Event API. See here for more details. More...
|
| class | CEventOwner |
| | A class that manages an instance of CEvent in a scope based style. More...
|
| class | ICriticalSection |
| | An interface onto the operating system Critical Section API. More...
|
| class | ICriticalSection::Owner |
| | A class that takes ownership of an instance of ICriticalSection. That is it calls Enter() in the constructor and Leave() in the destructor and can therefore be used to support scope based locking and unlocking of instances of ICriticalSection. More...
|
| class | ICriticalSection::ConditionalOwner |
| | A class that may take ownership of an instance of ICriticalSection. That is it calls Enter() in the constructor and Leave() in the destructor (but only if locked passed as true to the constructor) and can therefore be used to support scope based locking and unlocking of instances of ICriticalSection. More...
|
| class | ICriticalSectionFactory |
| | An interface to a factory that gives out instances of ISharedCriticalSection. All of the methods which provide an instance of an ISharedCriticalSection require a key of some kind to be given. This allows the factory to (optionally) have a fixed sized pool of instances that are provided to callers by hashing the key that the caller passes. This would allow the factory to share a finite set of objects between all callers in (hopefully) a fair manner. Alternatively, of course, an implementation might simply ignore the key that the caller provides and, instead, allocate a unique instance of ISharedCriticalSection per call. When the instance of ISharedCriticalSection is no longer needed you should call Release() on it which may, or may not, depending on the factory implementation, free up resources. Note that the methods which take a pool ID provide critical sections that are guaranteed not to be available in another pool. This allows a class to obtain two critical sections from different pools and be sure that even if the factory is working with a fixed sized pool the two critical sections cannot be the same. More importantly it means that no other user of the factory can ever get an instance of a critical section from 'the wrong' pool. This helps prevent deadlocks when using pooled critical sections by keeping 'sets' of locks distinct which makes it possible to reason about lock ordering as long as the locks are from distinct pools. More...
|
| class | IManageSharedCriticalSections |
| | An interface that is used by instances of ISharedCriticalSection to release themselves to the factory that created them. More...
|
| class | ISharedCriticalSection |
| | An interface onto the operating system Critical Section API and which is used for critical sections that are obtained from an instance of ICriticalSectionFactory. The object accessed via an instance of this interface MAY be shared and should be released back to the factory by calling Release() on it when you're done with it. More...
|
| class | ISingleWriterMultipleReaderLock::Reader |
| | A class that locks an instance of ISingleWriterMultipleReaderLock for read access. That is it calls EnterToRead() in the constructor and Leave() in the destructor and can therefore be used to support scope based locking and unlocking. More...
|
| class | ISingleWriterMultipleReaderLock::Writer |
| | A class that locks an instance of ISingleWriterMultipleReaderLock for write access. That is it calls EnterToWrite() in the constructor and Leave() in the destructor and can therefore be used to support scope based locking and unlocking. More...
|
| class | ISingleWriterMultipleReaderLock::ConditionalOwner |
| | A base class to support the ConditionalReader and ConditionalWriter classes. More...
|
| class | ISingleWriterMultipleReaderLock::ConditionalReader |
| | A class that may lock an instance of ISingleWriterMultipleReaderLock for read access. That is it calls EnterToRead() in the constructor and Leave() in the destructor if locked is true and can therefore be used to support scope based locking and unlocking. More...
|
| class | ISingleWriterMultipleReaderLock::ConditionalWriter |
| | A class that may lock an instance of ISingleWriterMultipleReaderLock for write access. That is it calls EnterToWrite() in the constructor and Leave() in the destructor if locked is true and can therefore be used to support scope based locking and unlocking. More...
|
| class | IWaitable |
| | An interface to code that can be waited for, either via the methods on the interface or by passing a handle to one of the Wait Functions. More...
|
| class | CManualResetEvent |
| | A class that wraps the operating system Event API and exposes just the interface for an manual reset event. More...
|
| class | CMultiCriticalSection |
| | A class that allows you to manipulate a collection of instances of ICriticalSection as if they were a single instance. The idea being that this could be used to enforce an ordering over a sequence of locks that must be acquired together. The locks are locked in the order that they were added to the collection and unlocked in the reverse order. More...
|
| class | COptex |
| | An "optimised" mutex class (based on original work by Jeffrey Richter). Note that this class creates shared memory and if you pass in a name that's in the Global namespace then the caller needs to have the SeCreateGlobalPrivilege on their account for the code to work without an access denied exception from the constructor. More...
|
| class | COverlapped |
| | A class that wraps an OVERLAPPED structure. More...
|
| class | COverlappedWithEvent |
| | A class that wraps an OVERLAPPED structure that uses an event. More...
|
| class | CSemaphore |
| | A class that wraps the operating system Semaphore API. More...
|
| class | CSharedCriticalSection |
| | A class that wraps the operating system Critical Section API and that implements the ISharedCriticalSection interface this is an interface for critical sections that are supplied by an instance of ICriticalSectionFactory and which may, depending on the implementation of the factory, be shared between users of the critical section. When you are done with an instance of CSharedCriticalSection you should call Release() to return it to the factory that allocated it. More...
|
| class | CSharedCriticalSectionFactory |
| | An instance of ICriticalSectionFactory that gives out instances of ICriticalSection from a fixed sized pool of instances that are provided to callers by hashing the key that the caller passes. This allows the factory to share a finite set of objects between all callers in (hopefully) a fair manner. More...
|
| class | CSingleWriterMultipleReaderLock |
| | A simple single writer, multiple reader lock. More...
|
| class | CSingleWriterMultipleReaderLockEx |
| | A simple single writer, multiple reader lock. More...
|
| class | CSmartSharedCriticalSection |
| | A smart pointer to an instance of ISharedCriticalSection. Takes ownership of the interface passed to it in its constructor and calls Release() on it in its destructor to aid in scope based designs. More...
|
| class | CUniqueCriticalSectionFactory |
| | An instance of ICriticalSectionFactory that gives out unique instances of ICriticalSection which are allocated when requested and destroyed when the factory goes out of scope. More...
|
| class | CWaitableCounter |
| | A counter that can be incremented and decremented and where you can wait on it either becoming zero or becoming non-zero. More...
|
| class | CWaitableCounter::Incrementer |
| | A class that provides support for scope based incrementing of a waitable counter. The count is incremented for the life of the Incrementer; that is, it is incremented in the constructor of the and decremented in the destrutor. More...
|
| class | CWaitableCounter::Decrementer |
| | A class that provides support for scope based decrementing of a waitable counter. The count is decreased for the life of the Decrementer; that is, it is decremented in the constructor of the and incremented in the destrutor. More...
|