Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

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

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 Fri Dec 31 14:59:02 2004 for ACE by  doxygen 1.3.9.1