#include <WFMO_Reactor.h>
Collaboration diagram for ACE_WFMO_Reactor_Handler_Repository:
Public Methods | |
ACE_WFMO_Reactor_Handler_Repository (ACE_WFMO_Reactor &wfmo_reactor) | |
Constructor. | |
virtual | ~ACE_WFMO_Reactor_Handler_Repository (void) |
Destructor. | |
int | open (size_t size) |
Initialize the repository of the approriate <size>. | |
int | close (void) |
Close down the handler repository. | |
int | bind (ACE_HANDLE, ACE_Event_Handler *) |
int | bind_i (int io_entry, ACE_Event_Handler *event_handler, long network_events, ACE_HANDLE io_handle, ACE_HANDLE event_handle, int delete_event) |
int | unbind (ACE_HANDLE, ACE_Reactor_Mask mask) |
Remove the binding of <ACE_HANDLE> in accordance with the <mask>. | |
int | unbind_i (ACE_HANDLE, ACE_Reactor_Mask mask, int &changes_required) |
Non-lock-grabbing version of <unbind>. | |
void | unbind_all (void) |
Remove all bindings of <ACE_HANDLE, ACE_Event_Handler> tuples. | |
int | invalid_handle (ACE_HANDLE handle) const |
DWORD | max_handlep1 (void) const |
Maximum ACE_HANDLE value, plus 1. | |
ACE_HANDLE * | handles (void) const |
Current_Info * | current_info (void) const |
virtual int | changes_required (void) |
Check if changes to the handle set are required. | |
virtual int | make_changes (void) |
Make changes to the handle set. | |
int | scheduled_for_deletion (size_t slot) const |
Check to see if <slot> has been scheduled for deletion. | |
int | modify_network_events_i (ACE_HANDLE io_handle, ACE_Reactor_Mask new_masks, ACE_Reactor_Mask &old_masks, long &new_network_events, ACE_HANDLE &event_handle, int &delete_event, int operation) |
ACE_Reactor_Mask | bit_ops (long &existing_masks, ACE_Reactor_Mask to_be_removed_masks, int operation) |
int | suspend_handler_i (ACE_HANDLE handle, int &changes_required) |
Temporarily suspend entry. | |
int | resume_handler_i (ACE_HANDLE handle, int &changes_required) |
Resume suspended entry. | |
int | make_changes_in_current_infos (void) |
Deletions and suspensions in current_info_. | |
int | make_changes_in_suspension_infos (void) |
Deletions and resumptions in current_suspended_info_. | |
int | make_changes_in_to_be_added_infos (void) |
int | remove_handler_i (size_t slot, ACE_Reactor_Mask mask) |
Removes the <ACE_Event_Handler> at <slot> from the table. | |
int | remove_suspended_handler_i (size_t slot, ACE_Reactor_Mask mask) |
Removes the <ACE_Event_Handler> at <slot> from the table. | |
int | remove_to_be_added_handler_i (size_t slot, ACE_Reactor_Mask to_be_removed_masks) |
Removes the <ACE_Event_Handler> at <slot> from the table. | |
ACE_Event_Handler * | find_handler (ACE_HANDLE handle) |
int | handler (ACE_HANDLE handle, ACE_Reactor_Mask mask, ACE_Event_Handler **event_handler=0) |
ACE_Event_Handler * | handler (ACE_HANDLE handle, long &existing_masks) |
void | dump (void) const |
Dump the state of an object. | |
Protected Attributes | |
ACE_WFMO_Reactor & | wfmo_reactor_ |
Reference to our <WFMO_Reactor>. | |
size_t | max_size_ |
Maximum number of handles. | |
ACE_HANDLE * | current_handles_ |
Current_Info * | current_info_ |
Array of current entries in the table. | |
DWORD | max_handlep1_ |
A count of the number of active handles. | |
To_Be_Added_Info * | to_be_added_info_ |
Information for entries to be added. | |
size_t | handles_to_be_added_ |
Number of records to be added. | |
Suspended_Info * | current_suspended_info_ |
Currently suspended handles. | |
size_t | suspended_handles_ |
Number of currently suspended handles. | |
size_t | handles_to_be_suspended_ |
Number of records to be suspended. | |
size_t | handles_to_be_resumed_ |
Number of records to be resumed. | |
size_t | handles_to_be_deleted_ |
Number of records to be deleted. | |
Friends | |
class | ACE_WFMO_Reactor |
class | ACE_WFMO_Reactor_Test |
|
Constructor.
|
|
Destructor.
|
|
Bind the <ACE_Event_Handler *> to the <ACE_HANDLE>. This is for the simple event entry. |
|
Insert I/O <Event_Handler> entry into the system. This method assumes that the lock are head *before* this method is invoked. |
|
This method is used to change the network mask left (if any) after a remove request to <WFMO_Reactor> |
|
Check if changes to the handle set are required.
|
|
Close down the handler repository.
|
|
Pointer to the beginning of the current array of <ACE_Event_Handler> *'s. |
|
Dump the state of an object.
|
|
Return the Event_Handler associated with <handle>. Return 0 if <handle> is not registered. |
|
Check to see if <handle> is associated with a valid Event_Handler. Return Event_Handler and associated masks. |
|
Check to see if <handle> is associated with a valid Event_Handler bound to <mask>. Return the <event_handler> associated with this <handler> if <event_handler> != 0. |
|
Pointer to the beginning of the current array of <ACE_HANDLE> 's. |
|
|
|
Make changes to the handle set.
|
|
Deletions and suspensions in current_info_.
|
|
Deletions and resumptions in current_suspended_info_.
|
|
Deletions in to_be_added_info_, or transfers to current_info_ or current_suspended_info_ from to_be_added_info_ |
|
Maximum ACE_HANDLE value, plus 1.
|
|
This method is used to calculate the network mask after a mask_op request to <WFMO_Reactor>. Note that because the <Event_Handler> may already be in the handler repository, we may have to find the old event and the old network events |
|
Initialize the repository of the approriate <size>.
|
|
Removes the <ACE_Event_Handler> at <slot> from the table.
|
|
Removes the <ACE_Event_Handler> at <slot> from the table.
|
|
Removes the <ACE_Event_Handler> at <slot> from the table.
|
|
Resume suspended entry.
|
|
Check to see if <slot> has been scheduled for deletion.
|
|
Temporarily suspend entry.
|
|
Remove the binding of <ACE_HANDLE> in accordance with the <mask>.
|
|
Remove all bindings of <ACE_HANDLE, ACE_Event_Handler> tuples.
|
|
Non-lock-grabbing version of <unbind>.
|
|
|
|
|
|
Array of <ACE_HANDLEs> passed to <WaitForMultipleObjects>. This is not part of the structure as the handle array needs to be passed directly to <WaitForMultipleObjects>. |
|
Array of current entries in the table.
|
|
Currently suspended handles.
|
|
Number of records to be added.
|
|
Number of records to be deleted.
|
|
Number of records to be resumed.
|
|
Number of records to be suspended.
|
|
A count of the number of active handles.
|
|
Maximum number of handles.
|
|
Number of currently suspended handles.
|
|
Information for entries to be added.
|
|
Reference to our <WFMO_Reactor>.
|