NAME

ACE_WFMO_Reactor_Handler_Repository -

Used to map ACE_HANDLEs onto the appropriate ACE_Event_Handler * and other information.

SYNOPSIS

#include <ace/WFMO_Reactor.h>

class ACE_WFMO_Reactor_Handler_Repository { public: friend class ACE_WFMO_Reactor;

class Common_Info { public: int io_entry_; ACE_Event_Handler *event_handler_; ACE_HANDLE io_handle_; long network_events_; int delete_event_; int delete_entry_; ACE_Reactor_Mask close_masks_; Common_Info (void); void reset (void); void set ( int io_entry, ACE_Event_Handler *event_handler, ACE_HANDLE io_handle, long network_events, int delete_event, int delete_entry, ACE_Reactor_Mask close_masks ); void set (Common_Info &common_info); void dump (void) const; };

class Current_Info { public: int suspend_entry_; Current_Info (void); void reset (void); void set ( int io_entry, ACE_Event_Handler *event_handler, ACE_HANDLE io_handle, long network_events, int delete_event, int delete_entry = 0, ACE_Reactor_Mask close_masks = ACE_Event_Handler::NULL_MASK, int suspend_entry = 0 ); void set (Common_Info &common_info, int suspend_entry = 0); void dump (ACE_HANDLE event_handle) const; };

class To_Be_Added_Info { public: ACE_HANDLE event_handle_; int suspend_entry_; To_Be_Added_Info (void); void reset (void); void set ( ACE_HANDLE event_handle, int io_entry, ACE_Event_Handler *event_handler, ACE_HANDLE io_handle, long network_events, int delete_event, int delete_entry = 0, ACE_Reactor_Mask close_masks = ACE_Event_Handler::NULL_MASK, int suspend_entry = 0 ); void set ( ACE_HANDLE event_handle, Common_Info &common_info, int suspend_entry = 0 ); void dump (void) const; };

class Suspended_Info { public: ACE_HANDLE event_handle_; int resume_entry_; Suspended_Info (void); void reset (void); void set ( ACE_HANDLE event_handle, int io_entry, ACE_Event_Handler *event_handler, ACE_HANDLE io_handle, long network_events, int delete_event, int delete_entry = 0, ACE_Reactor_Mask close_masks = 0, int resume_entry = 0 ); void set ( ACE_HANDLE event_handle, Common_Info &common_info, int resume_entry = 0 ); void dump (void) const; }; ACE_WFMO_Reactor_Handler_Repository ( ACE_WFMO_Reactor &wfmo_reactor ); virtual ~ACE_WFMO_Reactor_Handler_Repository (void); int open (size_t size); int close (void); 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); int unbind_i ( ACE_HANDLE, ACE_Reactor_Mask mask, int &changes_required ); void unbind_all (void); int invalid_handle (ACE_HANDLE handle) const; size_t max_handlep1 (void) const; ACE_HANDLE *handles (void) const; Current_Info *current_info (void) const; virtual int changes_required (void); virtual int make_changes (void); int scheduled_for_deletion (size_t slot) const; 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); int resume_handler_i (ACE_HANDLE handle, int &changes_required); int make_changes_in_current_infos (void); int make_changes_in_suspension_infos (void); int make_changes_in_to_be_added_infos (void); int remove_handler_i (size_t slot, ACE_Reactor_Mask mask); int remove_suspended_handler_i ( size_t slot, ACE_Reactor_Mask mask ); int remove_to_be_added_handler_i ( size_t slot, ACE_Reactor_Mask to_be_removed_masks ); int handler ( ACE_HANDLE handle, ACE_Reactor_Mask mask, ACE_Event_Handler **event_handler = 0 ); void dump (void) const; protected: ACE_WFMO_Reactor &wfmo_reactor_; size_t max_size_; ACE_HANDLE *current_handles_; Current_Info *current_info_; size_t max_handlep1_; To_Be_Added_Info *to_be_added_info_; size_t handles_to_be_added_; Suspended_Info *current_suspended_info_; size_t suspended_handles_; size_t handles_to_be_suspended_; size_t handles_to_be_resumed_; size_t handles_to_be_deleted_; };

Search structure operations.

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);

int unbind_i (
    ACE_HANDLE,
    ACE_Reactor_Mask mask,
    int &changes_required
    );

void unbind_all (void);

Sanity checking.

Check the handle to make sure it's a valid ACE_HANDLE
int invalid_handle (ACE_HANDLE handle) const;

Accessors.

size_t max_handlep1 (void) const;

ACE_HANDLE *handles (void) const;

Current_Info *current_info (void) const;

virtual int changes_required (void);

virtual int make_changes (void);

int scheduled_for_deletion (size_t slot) const;

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);

int resume_handler_i (ACE_HANDLE handle, int &changes_required);

int make_changes_in_current_infos (void);

int make_changes_in_suspension_infos (void);

int make_changes_in_to_be_added_infos (void);

int remove_handler_i (size_t slot, ACE_Reactor_Mask mask);

int remove_suspended_handler_i (size_t slot, ACE_Reactor_Mask mask);

int remove_to_be_added_handler_i (
    size_t slot,
    ACE_Reactor_Mask to_be_removed_masks
    );

int handler (
    ACE_HANDLE handle,
    ACE_Reactor_Mask mask,
    ACE_Event_Handler **event_handler = 0
    );

void dump (void) const;

AUTHOR

Irfan Pyarali, Tim Harrison, and Doug Schmidt

LIBRARY

ace