#include <WFMO_Reactor.h>
Collaboration diagram for ACE_WFMO_Reactor_Handler_Repository:

Public Member Functions | |
| 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 |
Classes | |
| class | Common_Info |
| This struct contains the necessary information for every <Event_Handler> entry. The reason the event is not in this structure is because we need to pass an event array into WaitForMultipleObjects and therefore keeping the events seperate makes sense. More... | |
| class | Current_Info |
| This structure inherits from the common structure to add information for current entries. More... | |
| class | Suspended_Info |
| This structure inherits from the common structure to add information for suspended entries. More... | |
| class | To_Be_Added_Info |
| This structure inherits from the common structure to add information for <to_be_added> entries. More... | |
| ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_WFMO_Reactor_Handler_Repository::ACE_WFMO_Reactor_Handler_Repository | ( | ACE_WFMO_Reactor & | wfmo_reactor | ) |
Constructor.
| ACE_WFMO_Reactor_Handler_Repository::~ACE_WFMO_Reactor_Handler_Repository | ( | void | ) | [virtual] |
Destructor.
| int ACE_WFMO_Reactor_Handler_Repository::bind | ( | ACE_HANDLE | , | |
| ACE_Event_Handler * | ||||
| ) |
Bind the <ACE_Event_Handler *> to the ACE_HANDLE. This is for the simple event entry.
| int ACE_WFMO_Reactor_Handler_Repository::bind_i | ( | int | io_entry, | |
| ACE_Event_Handler * | event_handler, | |||
| long | network_events, | |||
| ACE_HANDLE | io_handle, | |||
| ACE_HANDLE | event_handle, | |||
| int | delete_event | |||
| ) |
Insert I/O <Event_Handler> entry into the system. This method assumes that the lock are head *before* this method is invoked.
| ACE_Reactor_Mask ACE_WFMO_Reactor_Handler_Repository::bit_ops | ( | long & | existing_masks, | |
| ACE_Reactor_Mask | to_be_removed_masks, | |||
| int | operation | |||
| ) |
This method is used to change the network mask left (if any) after a remove request to <WFMO_Reactor>
| ACE_INLINE int ACE_WFMO_Reactor_Handler_Repository::changes_required | ( | void | ) | [virtual] |
Check if changes to the handle set are required.
| ACE_INLINE int ACE_WFMO_Reactor_Handler_Repository::close | ( | void | ) |
Close down the handler repository.
| ACE_INLINE ACE_WFMO_Reactor_Handler_Repository::Current_Info * ACE_WFMO_Reactor_Handler_Repository::current_info | ( | void | ) | const |
Pointer to the beginning of the current array of ACE_Event_Handler *'s.
| void ACE_WFMO_Reactor_Handler_Repository::dump | ( | void | ) | const |
Dump the state of an object.
| ACE_Event_Handler * ACE_WFMO_Reactor_Handler_Repository::find_handler | ( | ACE_HANDLE | handle | ) |
Return the Event_Handler associated with <handle>. Return 0 if <handle> is not registered.
| ACE_Event_Handler * ACE_WFMO_Reactor_Handler_Repository::handler | ( | ACE_HANDLE | handle, | |
| long & | existing_masks | |||
| ) |
Check to see if <handle> is associated with a valid Event_Handler. Return Event_Handler and associated masks.
| int ACE_WFMO_Reactor_Handler_Repository::handler | ( | ACE_HANDLE | handle, | |
| ACE_Reactor_Mask | mask, | |||
| ACE_Event_Handler ** | event_handler = 0 | |||
| ) |
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.
| ACE_INLINE ACE_HANDLE * ACE_WFMO_Reactor_Handler_Repository::handles | ( | void | ) | const |
Pointer to the beginning of the current array of ACE_HANDLE 's.
| ACE_INLINE int ACE_WFMO_Reactor_Handler_Repository::invalid_handle | ( | ACE_HANDLE | handle | ) | const |
| ACE_INLINE int ACE_WFMO_Reactor_Handler_Repository::make_changes | ( | void | ) | [virtual] |
Make changes to the handle set.
| int ACE_WFMO_Reactor_Handler_Repository::make_changes_in_current_infos | ( | void | ) |
Deletions and suspensions in current_info_.
| int ACE_WFMO_Reactor_Handler_Repository::make_changes_in_suspension_infos | ( | void | ) |
Deletions and resumptions in current_suspended_info_.
| int ACE_WFMO_Reactor_Handler_Repository::make_changes_in_to_be_added_infos | ( | void | ) |
Deletions in to_be_added_info_, or transfers to current_info_ or current_suspended_info_ from to_be_added_info_
| ACE_INLINE DWORD ACE_WFMO_Reactor_Handler_Repository::max_handlep1 | ( | void | ) | const |
Maximum ACE_HANDLE value, plus 1.
| int ACE_WFMO_Reactor_Handler_Repository::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 | |||
| ) |
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
| int ACE_WFMO_Reactor_Handler_Repository::open | ( | size_t | size | ) |
Initialize the repository of the approriate <size>.
| int ACE_WFMO_Reactor_Handler_Repository::remove_handler_i | ( | size_t | slot, | |
| ACE_Reactor_Mask | mask | |||
| ) |
Removes the ACE_Event_Handler at <slot> from the table.
| int ACE_WFMO_Reactor_Handler_Repository::remove_suspended_handler_i | ( | size_t | slot, | |
| ACE_Reactor_Mask | mask | |||
| ) |
Removes the ACE_Event_Handler at <slot> from the table.
| int ACE_WFMO_Reactor_Handler_Repository::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.
| int ACE_WFMO_Reactor_Handler_Repository::resume_handler_i | ( | ACE_HANDLE | handle, | |
| int & | changes_required | |||
| ) |
Resume suspended entry.
| ACE_INLINE int ACE_WFMO_Reactor_Handler_Repository::scheduled_for_deletion | ( | size_t | slot | ) | const |
Check to see if <slot> has been scheduled for deletion.
| int ACE_WFMO_Reactor_Handler_Repository::suspend_handler_i | ( | ACE_HANDLE | handle, | |
| int & | changes_required | |||
| ) |
Temporarily suspend entry.
| ACE_INLINE int ACE_WFMO_Reactor_Handler_Repository::unbind | ( | ACE_HANDLE | , | |
| ACE_Reactor_Mask | mask | |||
| ) |
Remove the binding of ACE_HANDLE in accordance with the <mask>.
| void ACE_WFMO_Reactor_Handler_Repository::unbind_all | ( | void | ) |
Remove all bindings of <ACE_HANDLE, ACE_Event_Handler> tuples.
| int ACE_WFMO_Reactor_Handler_Repository::unbind_i | ( | ACE_HANDLE | , | |
| ACE_Reactor_Mask | mask, | |||
| int & | changes_required | |||
| ) |
Non-lock-grabbing version of <unbind>.
friend class ACE_WFMO_Reactor [friend] |
friend class ACE_WFMO_Reactor_Test [friend] |
ACE_HANDLE* ACE_WFMO_Reactor_Handler_Repository::current_handles_ [protected] |
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.
size_t ACE_WFMO_Reactor_Handler_Repository::handles_to_be_added_ [protected] |
Number of records to be added.
size_t ACE_WFMO_Reactor_Handler_Repository::handles_to_be_deleted_ [protected] |
Number of records to be deleted.
size_t ACE_WFMO_Reactor_Handler_Repository::handles_to_be_resumed_ [protected] |
Number of records to be resumed.
size_t ACE_WFMO_Reactor_Handler_Repository::handles_to_be_suspended_ [protected] |
Number of records to be suspended.
DWORD ACE_WFMO_Reactor_Handler_Repository::max_handlep1_ [protected] |
A count of the number of active handles.
size_t ACE_WFMO_Reactor_Handler_Repository::max_size_ [protected] |
Maximum number of handles.
size_t ACE_WFMO_Reactor_Handler_Repository::suspended_handles_ [protected] |
Number of currently suspended handles.
Information for entries to be added.
Reference to our <WFMO_Reactor>.
1.4.6-4