Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound 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 Methods

 ACE_WFMO_Reactor_Handler_Repository (ACE_WFMO_Reactor &wfmo_reactor)
 Constructor. More...

virtual ~ACE_WFMO_Reactor_Handler_Repository (void)
 Destructor. More...

int open (size_t size)
 Initialize the repository of the approriate <size>. More...

int close (void)
 Close down the handler repository. More...

int bind (ACE_HANDLE, ACE_Event_Handler *)
 Bind the <ACE_Event_Handler *> to the <ACE_HANDLE>. This is for the simple event entry. More...

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)
 Insert I/O <Event_Handler> entry into the system. This method assumes that the lock are head *before* this method is invoked. More...

int unbind (ACE_HANDLE, ACE_Reactor_Mask mask)
 Remove the binding of <ACE_HANDLE> in accordance with the <mask>. More...

int unbind_i (ACE_HANDLE, ACE_Reactor_Mask mask, int &changes_required)
 Non-lock-grabbing version of <unbind>. More...

void unbind_all (void)
 Remove all bindings of <ACE_HANDLE, ACE_Event_Handler> tuples. More...

int invalid_handle (ACE_HANDLE handle) const
size_t max_handlep1 (void) const
 Maximum ACE_HANDLE value, plus 1. More...

ACE_HANDLE * handles (void) const
 Pointer to the beginning of the current array of <ACE_HANDLE> *'s. More...

Current_Infocurrent_info (void) const
 Pointer to the beginning of the current array of <ACE_Event_Handler> *'s. More...

virtual int changes_required (void)
 Check if changes to the handle set are required. More...

virtual int make_changes (void)
 Make changes to the handle set. More...

int scheduled_for_deletion (size_t slot) const
 Check to see if <slot> has been scheduled for deletion. More...

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)
 This method is used to calculate the network mask after a mask_op request to <WFMO_Reactor>. More...

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

int suspend_handler_i (ACE_HANDLE handle, int &changes_required)
 Temporarily suspend entry. More...

int resume_handler_i (ACE_HANDLE handle, int &changes_required)
 Resume suspended entry. More...

int make_changes_in_current_infos (void)
 Deletions and suspensions in current_info_. More...

int make_changes_in_suspension_infos (void)
 Deletions and resumptions in current_suspended_info_. More...

int 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_. More...

int remove_handler_i (size_t slot, ACE_Reactor_Mask mask)
 Removes the <ACE_Event_Handler> at <slot> from the table. More...

int remove_suspended_handler_i (size_t slot, ACE_Reactor_Mask mask)
 Removes the <ACE_Event_Handler> at <slot> from the table. More...

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

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

void dump (void) const
 Dump the state of an object. More...


Protected Attributes

ACE_WFMO_Reactorwfmo_reactor_
 Reference to our <WFMO_Reactor>. More...

size_t max_size_
 Maximum number of handles. More...

ACE_HANDLE * current_handles_
 Array of <ACE_HANDLEs> passed to <WaitForMultipleObjects>. More...

Current_Infocurrent_info_
 Array of current entries in the table. More...

size_t max_handlep1_
 A count of the number of active handles. More...

To_Be_Added_Infoto_be_added_info_
 Information for entries to be added. More...

size_t handles_to_be_added_
 Number of records to be added. More...

Suspended_Infocurrent_suspended_info_
 Currently suspended handles. More...

size_t suspended_handles_
 Number of currently suspended handles. More...

size_t handles_to_be_suspended_
 Number of records to be suspended. More...

size_t handles_to_be_resumed_
 Number of records to be resumed. More...

size_t handles_to_be_deleted_
 Number of records to be deleted. More...


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

int ACE_WFMO_Reactor_Handler_Repository::handler ACE_HANDLE    handle,
ACE_Reactor_Mask    user_masks,
ACE_Event_Handler **    user_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 size_t 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    to_be_removed_masks
 

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    to_be_removed_masks
 

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

size_t 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 Thu May 23 00:24:26 2002 for ACE by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001