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

Monitoring
[Programming Concepts]

Collaboration diagram for Monitoring:

Detailed Description

Many classes support a monitoring interface. This allows us to see what's going on and, perhaps, hook these classes up to performance counters that can be viewed by perfmon, etc.

This section contains links to the code that implements this concept.


Classes

class  IMonitorCallbackTimerQueue
 An interface to allow a class to monitor the operation of an instance of CCallbackTimerQueue. More...
class  IMonitorThreadedCallbackTimerQueue
 An interface to allow a class to monitor the operation of an instance of CCallbackTimerQueue. More...
class  IMonitorThreadPool
 An interface to allow a class to monitor an instance of a thread pool. The interface assumes that threads in the pool go through the following life-cycle: created, begin processing, end processing, destroyed, and that they may optionally (hopefully not) generate errors. Obviously a thread is likely to begin and end processing several work items before it is destroyed. The methods on this interface can be called either from any thread and may not be called from the thread pool thread itself. Incrementing a counter when OnThreadCreated() is called and decrementing it when OnThreadDestroyed() is called will give you a count of the number of threads that are in existence at any one time. A corresponding counter that is incremented in OnThreadBeginProcessing() and decremented in OnThreadEndProcessing() is called will give a count of the threads that are currently in use. More...
class  CNullCallbackTimerQueueMonitor
 An object that implements IMonitorCallbackTimerQueue and does nothing. More...
class  CNullThreadedCallbackTimerQueueMonitor
 An object that implements IMonitorCallbackTimerQueue and does nothing. More...
class  CNullThreadPoolMonitor
 An object that implements IMonitorThreadPool and does nothing. 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  IMonitorBufferAllocation
 An interface to allow a class to monitor the operation of a class that allocates buffers. The interface assumes that buffers go through the following life-cycle: created, allocated, released, destroyed. Allocators that pool buffers can allow a buffer to be created once and then allocated and released several times before being deleted. Incrementing a counter when OnBufferCreated() is called and decrementing it when OnBufferDestroyed() is called will give you a count of the number of buffers that are in existence at any one time. A corresponding counter that is incremented in OnBufferAllocated() and decremented when OnBufferReleased() is called will give a count of the buffers that are currently in use. More...
class  CNullAsyncFileReaderMonitor
 An object that implements IMonitorAsyncFileReader and does nothing. More...
class  CNullAsyncFileWriterMonitor
 An object that implements IMonitorAsyncFileWriter and does nothing. More...
class  CNullBufferAllocationMonitor
 An object that implements IMonitorBufferAllocation and does nothing. More...
class  IMonitorDatagramSocketFlowControl
class  IMonitorSocketAllocation
 An interface to allow a class to monitor the operation of a class that allocates sockets. The design of the interface assumes that sockets go through the following life-cycle: created, allocated, released, destroyed. Allocators that pool sockets can allow a socket to be created once and then allocated and released several times before being deleted. Incrementing a counter when OnSocketCreated() is called and decrementing it when OnSocketDestroyed() is called will give you a count of the number of sockets that are in existence at any one time. A corresponding counter that is incremented in OnSocketAttached() and decremented in OnSocketReleased() is called will give a count of the sockets that are currently in use. More...
class  IMonitorStreamSocketFlowControl
 An interface to allow a class to monitor the operation of a class that implements flow control for stream socket connections. The design of the interface assumes that only buffers that are affected by flow control are noted by the monitor. The effects of flow control on a buffer that is being sent on a connection are as follows: delayed, sent or discarded. A buffer that is delayed is being held for a while until it can be sent. A buffer that has been sent is a buffer that was previously delayed and that has now been written to the connection. A buffer that is discarded can either be a new buffer that is being discarded rather than delayed or an existing delayed buffer that will now never be sent. Incrementing a counter when OnBufferDelayed() is called and decrementing it when OnBufferSent() is called, OR when 'wasDelayed' is true and OnBufferDiscarded() is called will give you a count of buffers that are currently delayed. Incrementing a counter when OnBufferDiscarded() is called will give you a count of all the buffers that were discarded. You can use the 'id' value as a way of maintaining these counts on a per-connection basis. The Id that you return from a call to OnConnectionEstablished() will be passed with every call to the other monitor functions. Note that if all you require is a unique id per connection then you can simply cast the address of the supplied socket to a ConnectionId in OnConnectionEstablished() and return that. More...
class  CNullDatagramSocketFlowControlMonitor
class  CNullSocketAllocationMonitor
 An object that implements IMonitorSocketAllocation and does nothing. More...
class  IMonitorJobs
 An interface to allow a class to monitor the events that are generated by instances of CJob. More...
class  CNullJobMonitor
 An object that implements IMonitorThreadPool and does nothing. More...


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