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

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 Wed Jan 14 22:49:52 2004 for ACE by doxygen1.2.18