Used to map ACE_HANDLEs onto the appropriate
ACE_Event_Handler * and other information.
#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 index) 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 index, ACE_Reactor_Mask mask);
    int remove_suspended_handler_i (
        size_t index,
        ACE_Reactor_Mask mask
        );
    int remove_to_be_added_handler_i (
        size_t index,
        ACE_Reactor_Mask to_be_removed_masks
        );
    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_;
};
int bind (ACE_HANDLE, ACE_Event_Handler *);
ACE_Event_Handler * to the ACE_HANDLE. This is for
the simple event entry.
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
    );
Event_Handler entry into the system. This method
assumes that the lock are head *before* this method is invoked.
int unbind (ACE_HANDLE, ACE_Reactor_Mask mask);
ACE_HANDLE in accordance with the mask.
int unbind_i (
    ACE_HANDLE,
    ACE_Reactor_Mask mask,
    int &changes_required
    );
unbind
void unbind_all (void);
ACE_HANDLE, ACE_Event_Handler tuples.
handle to make sure it's a valid ACE_HANDLE
int invalid_handle (ACE_HANDLE handle) const;
size_t max_handlep1 (void) const;
ACE_HANDLE *handles (void) const;
ACE_HANDLE
*'s.
Current_Info *current_info (void) const;
ACE_Event_Handler *'s.
virtual int changes_required (void);
virtual int make_changes (void);
int scheduled_for_deletion (size_t index) const;
index 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
    );
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
ACE_Reactor_Mask bit_ops (
    long &existing_masks,
    ACE_Reactor_Mask to_be_removed_masks,
    int operation
    );
WFMO_Reactor
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 index, ACE_Reactor_Mask mask);
ACE_Event_Handler at index from the table.
int remove_suspended_handler_i (size_t index, ACE_Reactor_Mask mask);
ACE_Event_Handler at index from the table.
int remove_to_be_added_handler_i (
    size_t index,
    ACE_Reactor_Mask to_be_removed_masks
    );
ACE_Event_Handler at index from the table.
void dump (void) const;