The C++ framework for developing highly scalable, high performance servers on Windows platforms.

Asynchronous I/O
[I/O Tools Library]

Collaboration diagram for Asynchronous I/O:


Classes

class  CAsyncFileLog
 A class that implements JetByteTools::Core::ILogMessages to provide an asynchronous file log that uses overlapped I/O to perform writes to the log file. This class allows you to change the name of the log file after creation but this functionality should be externally synchronised with any use of the various LogMessage() calls and any calls on the IWaitable interface to ensure that SetLogName() is never called concurrently to one of the other calls. The reason that we require YOU to do this synchronisation work is that when used carefully (i.e. SetLogName() is never called when the class is being used by multiple threads) then there is no need to synchronise the calls to LogMessage(). More...
class  CAsyncFileReader
 A class that implements IHandler to provide an asynchronous file reader that uses overlapped I/O to perform reads from the file. Data read from the file is provided in a 'push fashion' via the CAsyncFileReader::Callback interface. More...
class  CAsyncFileReader::Callback
 An interface for users of the CAsyncFileReader to be notified of the results of the asynchronous read operations on the file. More...
class  CAsyncFileWriter
 A class that implements IHandler to provide an asynchronous file writer that uses overlapped I/O to perform writes to the file. Any errors that occur during the asynchronous file writes are reported via the CAsyncFileWriter::Callback interface. More...
class  CAsyncFileWriter::Callback
 An interface for users of the CAsyncFileWriter to be notified of any errors that occur during the asynchronous write operations on the file. More...
class  CAsyncFileWriterEx
 A class that implements IHandler to provide an asynchronous file writer that uses overlapped I/O to perform writes to the file. Any errors that occur during the asynchronous file writes are reported via the CAsyncFileWriter::Callback interface. More...
class  CBuffer
 An implementation of the IBuffer interface which includes its own custom new and delete functionality so that the memory for the buffer and the memory for the rest of the class are allocated as a single block of memory. Note that the 'user data' is also allocated as part of the main buffer memory and the class knows how to access the various memory areas correctly. Note that the buffers may be allocated using VirtualAlloc() to align the memory on page boundaries; in this case, it's best to create buffers with a size that is a multiple of the system's page size less the size of the buffer object, see CBufferAllocator for more details. More...
class  CBufferAllocator
 An implementation of IAllocateBuffers which pools buffer instances for later reuse. More...
class  CBufferChain
class  CBufferHandle
 An implementation of IBuffer that provides a separate WSABUF for another implementation of IBuffer. This is used to broadcast the contents of an IBuffer to multiple receivers without needing to copy the data in the buffer. Each receiver has a CBufferHandle allocated which is attached to the IBuffer that contains the data that needs to be broadcast. When the final send completes the references held by the CBufferHandle objects on the IBuffer will fall to 0 and the buffer will be released. More...
class  CBufferHandleAllocator
 An implementation of IAllocateBufferHandles which pools buffer handle instances for later reuse. More...
class  CBufferProcessor
class  CBufferRingBuffer
class  CFixedFileHeaderRotatingAsyncFileLog
 A class that implements JetByteTools::ILogMessages to provide an asynchronous file log that uses overlapped I/O to perform writes to the log file. The log can be set to automatically rotate (i.e. create a new log file) after a set period of time or when the file grows to a particular size. More...
class  IAddBuffersToPool
class  IAllocatableBuffer
class  IAssociateDeviceWithIOSubSystem
class  IAsyncIOStream
 An interface onto an asynchrnonous I/O stream. Calls to Write() are not guaranteed to have completed when the call returns and calls to Read() simply request that a Read() happens and do not, in any way, result in incoming data being placed in the provided buffer before the call returns. Objects that implement this interface must provide another way to provide the caller with the data that is read from the stream when the read actually completes. More...
class  IBufferBase
 An interface to a I/O buffer (with a partially refactored name!). Initially IBuffer and IBufferBase was one class, it was split to make it easier to mock and in an attempt to remove some of the socket stuff. Classes that implement this interface represent a byte buffer that can be used for overlapped I/O and that consist of a contiguous array of bytes and an insertion point which moves along the buffer as data is added to it. More work needs to be done. More...
class  IBufferChain
class  IDispatchToWorkerThread
class  IIOPool
 An interface to an I/O thread pool (usually based on an I/O completion port) that can have operations on buffers and handlers dispatched to it (either directly or as a result of an I/O completion packet being generated by some asynchronous I/O event) and that handles these events on one of the threads in the pool. More...
class  IIOSubSystem
class  IIterateableBufferChain
class  ILimitPendingWrites
 An interface to an object that manages the number of writes currently in progress and that can disallow any more write requests being made. Call CanWrite() when you wish to issue a new write request and when it returns you can issue your write and call WriteComplete() when the write is complete. More...
class  IMonitorAsyncFileReader
 An interface to allow a class to monitor an instance of an async file reader. More...
class  IMonitorAsyncFileWriter
 An interface to allow a class to monitor an instance of an async file writer. More...
class  CIOPool
 An I/O thread pool implementing IIOPool. More...
class  CIOPool::WorkerThread
 A worker thread class for the CIOPool. More...
class  CIOPoolBase
 An I/O thread pool implementing IIOPool. More...
class  CIOPoolBase::WorkerThread
 A worker thread class for the CIOPoolBase. More...
class  CIOPoolEx
 An I/O thread pool implementing IIOPool. More...
class  CIOPoolEx::WorkerThread
 A worker thread class for the CIOPoolEx. More...
class  IPoolBuffers
class  IProvideWorkItems
 A restricted interface onto a queue of work items (such as an I/O completion port, perhaps). More...
class  IUnsortedBufferChain
class  CJobEventManager
class  CLoggingAsyncFileWriterCallback
 A class that implements CAsyncFileWriter::Callback and logs errors and when the pending write limit is reached. More...
class  CNullAsyncFileReaderMonitor
 An object that implements IMonitorAsyncFileReader and does nothing. More...
class  CNullAsyncFileWriterMonitor
 An object that implements IMonitorAsyncFileWriter and does nothing. More...
class  CNullBufferPool
class  CRetryAndRenameFileCreationFailureHandler
class  CRotatingAsyncFileLog
 A class that implements JetByteTools::ILogMessages to provide an asynchronous file log that uses overlapped I/O to perform writes to the log file. The log can be set to automatically rotate (i.e. create a new log file) after a set period of time or when the file grows to a particular size. More...
class  CSequencedBufferCollection
 A class that manages a collection of IBuffer instances which have a unique and ascending sequence number in them. You are allowed to push buffers into the collection in any order and to retrieve them only in the correct sequence. If you try and retrieve a buffer when the required buffer is not present then the collection will return null. Typical usage is to ensure the correct ordering of multiple overlapped read completions. All buffers are pushed into the collection using GetNext() and a buffer is only returned to the caller for processing if it is the next in sequence. This class takes a reference on a buffer when it is added to the collection and requires that the user of a buffer that has been removed from the collection releases that reference when done. More...
class  CSortedBufferChain
class  CSortedBufferProcessor
class  TTimeChangeAwareRotatingAsyncFileLog
 A class that implements JetByteTools::ILogMessages to provide an asynchronous file log that uses overlapped I/O to perform writes to the log file. The log can be set to automatically rotate (i.e. create a new log file) after a set period of time or when the file grows to a particular size. Aware of time changes that occur on the system. More...


Generated on Sun Sep 12 19:06:52 2021 for The Server Framework - v7.4 by doxygen 1.5.3