Modules | |
Smart Pointer | |
A smart pointer is a generic term for an object that helps with RAII style 'scope based' designs. The 'smart pointer' usually takes ownership of a 'bare' pointer and takes responsibility for destroying the 'bare' pointer when the 'smart pointer' goes out of scope. See here for more details. This section contains links to the code that implements this concept. | |
Classes | |
class | CDebugTrace::LogInstaller |
A class that takes an instance of ILogMessages and installs it as the message log used by the CDebugTrace class and then removes it and reinstalls the previous log in its destructor. It can, therefore, be used to support scope based log installation and removal. More... | |
class | CEventOwner |
A class that manages an instance of CEvent in a scope based style. 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 | ISingleWriterMultipleReaderLock::PotentialOwner |
A base class to support the PotentialReader and PotentialWriter classes. More... | |
class | ISingleWriterMultipleReaderLock::PotentialReader |
A class that may lock an instance of ISingleWriterMultipleReaderLock for read access. If you call EnterToRead() or TryEnterToRead() on this class it will keep track of the fact that the lock has been entered and will call Leave() in the destructor. This can therefore be used to support scope based locking and unlocking of instances of ISingleWriterMultipleReaderLock. More... | |
class | ISingleWriterMultipleReaderLock::PotentialWriter |
A class that may lock an instance of ISingleWriterMultipleReaderLock for write access. If you call EnterToWrite() or TryEnterToWrite() on this class it will keep track of the fact that the lock has been entered and will call Leave() in the destructor. This can therefore be used to support scope based locking and unlocking of instances of ISingleWriterMultipleReaderLock. More... | |
class | TLockableObjectOwner |
A class that takes ownership of a lockable object. That is it calls Lock() in the constructor and Unlock() in the destructor and can therefore be used to support scope based locking and unlocking of instances of the object. More... | |
class | TLockableObjectConditionalOwner |
A class that may take ownership of a lockable object. That is it calls Lock() in the constructor and Unlock() 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 the object. More... | |
class | TLockableObjectPotentialOwner |
A class that could take ownership of an instance of a lockable object. If you call Lock() or TryLock() on this class it will keep track of the fact that the lockable object has been locked and will call Unlock() in the destructor. This can therefore be used to support scope based locking and unlocking of instances of the object. 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... | |
class | CFileDeleter |
class | ILimitConnections::Creator |
A class that takes ownership of an attempt at connection creation. That is if you call CanCreateConnection() through it and then do not call ConnectionCreated() then the destructor will assume something went awry and call ReleaseConnection(). This class can therefore be used to support scope based connection creation. More... | |
class | CUsesMSWinSockExtensions |
This class acts as a dynamic function loader for the MS Winsock extension functions via a WSAIoctl() call with SIO_GET_EXTENSION_FUNCTION_POINTER. The assumption is made that all sockets passed to this class will be from the same underlying provider (or, at the very least, all sockets passed to a particular extension function will be from the same provider). More... | |
class | CSocket |
A slightly confused class that acts as both a scope based wrapper around a SOCKET and that also provides static member functions that enable you to call wrapped socket functions on a bare SOCKET. More... | |
class | CUsesMSWinSockExtensions |
This class acts as a dynamic function loader for the MS Winsock extension functions via a WSAIoctl() call with SIO_GET_EXTENSION_FUNCTION_POINTER. The assumption is made that all sockets passed to this class will be from the same underlying provider (or, at the very least, all sockets passed to a particular extension function will be from the same provider). More... | |
class | CUsesWinsock |
A simple object to support scope based Winsock initialisation and uninitialisation. Create an instance of this at the scope where you want Winsock to be available and it will be automatically uninitialised when the scope ends. More... | |
class | CMultipleFileDeleter |
class | CTempDirectory |
A class which wraps the operating system GetTempPath() API and which creates and removes temporary directories in a scope based style. Directories are created in the form: TEMP_PATH\prefix + "-" + time(0). More... | |
class | CUsesCOM |
A simple object to support scope based COM initialisation and uninitialisation. Create an instance of this at the scope where you want COM to be available and it will be automatically uninitialised when the scope ends. More... |