version 1.86, 2005/01/27 20:34:46
|
version 1.87, 2005/01/27 22:24:22
|
|
|
| |
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// |
// | // |
// MonitorRep |
|
// |
|
//////////////////////////////////////////////////////////////////////////////// |
|
|
|
struct MonitorRep |
|
{ |
|
fd_set rd_fd_set; |
|
fd_set wr_fd_set; |
|
fd_set ex_fd_set; |
|
fd_set active_rd_fd_set; |
|
fd_set active_wr_fd_set; |
|
fd_set active_ex_fd_set; |
|
}; |
|
|
|
//////////////////////////////////////////////////////////////////////////////// |
|
// |
|
// Monitor | // Monitor |
// | // |
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// |
| |
#define MAX_NUMBER_OF_MONITOR_ENTRIES 32 | #define MAX_NUMBER_OF_MONITOR_ENTRIES 32 |
Monitor::Monitor() | Monitor::Monitor() |
: _module_handle(0), |
: _stopConnections(0), |
_controller(0), |
|
_async(false), |
|
_stopConnections(0), |
|
_stopConnectionsSem(0), |
|
_solicitSocketCount(0), |
|
_tickle_client_socket(-1), |
|
_tickle_server_socket(-1), |
|
_tickle_peer_socket(-1) |
|
{ |
|
int numberOfMonitorEntriesToAllocate = MAX_NUMBER_OF_MONITOR_ENTRIES; |
|
Socket::initializeInterface(); |
|
_rep = 0; |
|
_entries.reserveCapacity(numberOfMonitorEntriesToAllocate); |
|
|
|
// setup the tickler |
|
initializeTickler(); |
|
|
|
// Start the count at 1 because initilizeTickler() |
|
// has added an entry in the first position of the |
|
// _entries array |
|
for( int i = 1; i < numberOfMonitorEntriesToAllocate; i++ ) |
|
{ |
|
_MonitorEntry entry(0, 0, 0); |
|
_entries.append(entry); |
|
} |
|
} |
|
|
|
Monitor::Monitor(Boolean async) |
|
: _module_handle(0), |
|
_controller(0), |
|
_async(async), |
|
_stopConnections(0), |
|
_stopConnectionsSem(0), | _stopConnectionsSem(0), |
_solicitSocketCount(0), | _solicitSocketCount(0), |
_tickle_client_socket(-1), | _tickle_client_socket(-1), |
|
|
{ | { |
int numberOfMonitorEntriesToAllocate = MAX_NUMBER_OF_MONITOR_ENTRIES; | int numberOfMonitorEntriesToAllocate = MAX_NUMBER_OF_MONITOR_ENTRIES; |
Socket::initializeInterface(); | Socket::initializeInterface(); |
_rep = 0; |
|
_entries.reserveCapacity(numberOfMonitorEntriesToAllocate); | _entries.reserveCapacity(numberOfMonitorEntriesToAllocate); |
| |
// setup the tickler | // setup the tickler |
|
|
| |
Monitor::~Monitor() | Monitor::~Monitor() |
{ | { |
Tracer::trace(TRC_HTTP, Tracer::LEVEL4, |
|
"deregistering with module controller"); |
|
|
|
if(_module_handle.get() != NULL) |
|
{ |
|
_controller->deregister_module(PEGASUS_MODULENAME_MONITOR); |
|
_controller.reset(); |
|
_module_handle.reset(); |
|
} |
|
Tracer::trace(TRC_HTTP, Tracer::LEVEL4, "deleting rep"); |
|
|
|
Tracer::trace(TRC_HTTP, Tracer::LEVEL4, "uninitializing interface"); | Tracer::trace(TRC_HTTP, Tracer::LEVEL4, "uninitializing interface"); |
| |
try{ | try{ |