ACE_WFMO_Reactor_Handler_Repository Class Reference

Used to map <ACE_HANDLE>s onto the appropriate <ACE_Event_Handler> * and other information. More...

#include <WFMO_Reactor.h>

Collaboration diagram for ACE_WFMO_Reactor_Handler_Repository:

Collaboration graph
[legend]
List of all members.

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_Infocurrent_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_Handlerfind_handler (ACE_HANDLE handle)
int handler (ACE_HANDLE handle, ACE_Reactor_Mask mask, ACE_Event_Handler **event_handler=0)
ACE_Event_Handlerhandler (ACE_HANDLE handle, long &existing_masks)
void dump (void) const
 Dump the state of an object.

Protected Attributes

ACE_WFMO_Reactorwfmo_reactor_
 Reference to our <WFMO_Reactor>.
size_t max_size_
 Maximum number of handles.
ACE_HANDLE * current_handles_
Current_Infocurrent_info_
 Array of current entries in the table.
DWORD max_handlep1_
 A count of the number of active handles.
To_Be_Added_Infoto_be_added_info_
 Information for entries to be added.
size_t handles_to_be_added_
 Number of records to be added.
Suspended_Infocurrent_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...

Detailed Description

Used to map <ACE_HANDLE>s onto the appropriate <ACE_Event_Handler> * and other information.


Constructor & Destructor Documentation

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.


Member Function Documentation

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>.


Friends And Related Function Documentation

friend class ACE_WFMO_Reactor [friend]
 

friend class ACE_WFMO_Reactor_Test [friend]
 


Member Data Documentation

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>.

Current_Info* ACE_WFMO_Reactor_Handler_Repository::current_info_ [protected]
 

Array of current entries in the table.

Suspended_Info* ACE_WFMO_Reactor_Handler_Repository::current_suspended_info_ [protected]
 

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.

To_Be_Added_Info* ACE_WFMO_Reactor_Handler_Repository::to_be_added_info_ [protected]
 

Information for entries to be added.

ACE_WFMO_Reactor& ACE_WFMO_Reactor_Handler_Repository::wfmo_reactor_ [protected]
 

Reference to our <WFMO_Reactor>.


The documentation for this class was generated from the following files:
Generated on Wed Nov 23 15:51:20 2005 for ACE by  doxygen 1.4.5