NAME

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

SYNOPSIS

#include <ace/ReactorEx.h>

class ACE_ReactorEx_Handler_Repository { public: friend class ACE_ReactorEx;

struct Common_Info { public: int io_entry_; ACE_Event_Handler *event_handler_; ACE_HANDLE io_handle_; long network_events_; int delete_event_; 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 ); void set (Common_Info &common_info); };

struct Current_Info { public: int delete_entry_; ACE_Reactor_Mask close_masks_; 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 = 0, int suspend_entry = 0 ); void set ( Common_Info &common_info, int delete_entry = 0, ACE_Reactor_Mask close_masks = 0, int suspend_entry = 0 ); };

struct To_Be_Added_Info { public: ACE_HANDLE event_handle_; 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 ); void set (ACE_HANDLE event_handle, Common_Info &common_info); };

struct Suspended_Info { public: ACE_HANDLE event_handle_; int delete_entry_; ACE_Reactor_Mask close_masks_; 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 resume = 0, int delete_entry = 0, ACE_Reactor_Mask close_masks = 0 ); void set ( ACE_HANDLE event_handle, Common_Info &common_info, int resume = 0, int delete_entry = 0, ACE_Reactor_Mask close_masks = 0 ); }; ACE_ReactorEx_Handler_Repository (ACE_ReactorEx &reactorEx); virtual ~ACE_ReactorEx_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 index) const; int add_network_events_i ( ACE_Reactor_Mask mask, ACE_HANDLE io_handle, long &new_mask, ACE_HANDLE &event_handle, int &delete_event ); long remove_network_events_i ( long existing_masks, ACE_Reactor_Mask to_be_removed_masks ); int suspend_handler_i (ACE_HANDLE handle, int &changes_required); int resume_handler_i (ACE_HANDLE handle, int &changes_required); int handle_deletions (void); int handle_additions (void); int remove_handler_i (size_t index, ACE_Reactor_Mask mask = 0); int remove_suspended_handler_i ( size_t index, ACE_Reactor_Mask mask = 0 ); void dump (void) const; protected: ACE_ReactorEx &reactorEx_; size_t max_size_; size_t max_handlep1_; ACE_HANDLE *current_handles_; Current_Info *current_info_; To_Be_Added_Info *to_be_added_info_; 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_; size_t handles_to_be_added_; };

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

int add_network_events_i (
    ACE_Reactor_Mask mask,
    ACE_HANDLE io_handle,
    long &new_mask,
    ACE_HANDLE &event_handle,
    int &delete_event
    );

long remove_network_events_i (
    long existing_masks,
    ACE_Reactor_Mask to_be_removed_masks
    );

int suspend_handler_i (ACE_HANDLE handle, int &changes_required);

int resume_handler_i (ACE_HANDLE handle, int &changes_required);

int handle_deletions (void);

int handle_additions (void);

int remove_handler_i (size_t index, ACE_Reactor_Mask mask = 0);

int remove_suspended_handler_i (
    size_t index,
    ACE_Reactor_Mask mask = 0
    );

void dump (void) const;

AUTHOR

Irfan Pyarali, Tim Harrison, and Doug Schmidt

LIBRARY

ace