| 
    ACE
    6.2.1
    
   | 
 
Used to map ACE_HANDLEs onto the appropriate ACE_Event_Handler *. More...
#include <Select_Reactor_Base.h>

Public Types | |
| typedef ACE_HANDLE | key_type | 
| typedef ACE_Event_Handler * | value_type | 
| typedef  ACE_Hash_Map_Manager_Ex < key_type, value_type, ACE_Hash< key_type > , std::equal_to< key_type > , ACE_Null_Mutex >  | map_type | 
| typedef map_type::size_type | max_handlep1_type | 
| typedef map_type::size_type | size_type | 
Public Member Functions | |
| ACE_Select_Reactor_Handler_Repository (ACE_Select_Reactor_Impl &) | |
| Default "do-nothing" constructor.  More... | |
| int | open (size_type size) | 
| Initialize a repository of the appropriate size.  More... | |
| int | close (void) | 
| Close down the repository.  More... | |
| ACE_Event_Handler * | find (ACE_HANDLE handle) | 
| int | bind (ACE_HANDLE, ACE_Event_Handler *, ACE_Reactor_Mask) | 
| int | unbind (ACE_HANDLE, ACE_Reactor_Mask mask) | 
| Remove the binding of ACE_HANDLE in accordance with the mask.  More... | |
| int | unbind_all (void) | 
| Remove all the <ACE_HANDLE, ACE_Event_Handler> tuples.  More... | |
| bool | invalid_handle (ACE_HANDLE handle) | 
| bool | handle_in_range (ACE_HANDLE handle) | 
| size_type | size (void) const | 
| Returns the current table size.  More... | |
| max_handlep1_type | max_handlep1 (void) const | 
| Maximum ACE_HANDLE value, plus 1.  More... | |
| void | dump (void) const | 
| Dump the state of an object.  More... | |
Public Attributes | |
| ACE_ALLOC_HOOK_DECLARE | |
| Declare the dynamic allocation hooks.  More... | |
Private Member Functions | |
| int | unbind (ACE_HANDLE handle, map_type::iterator pos, ACE_Reactor_Mask mask) | 
| map_type::iterator | find_eh (ACE_HANDLE handle) | 
Private Attributes | |
| ACE_Select_Reactor_Impl & | select_reactor_ | 
Reference to our Select_Reactor.  More... | |
| map_type | event_handlers_ | 
| Underlying table of event handlers.  More... | |
Friends | |
| class | ACE_Select_Reactor_Handler_Repository_Iterator | 
Used to map ACE_HANDLEs onto the appropriate ACE_Event_Handler *.
This class is necessary to shield differences between UNIX and Win32. In UNIX, ACE_HANDLE is an int, whereas in Win32 it's a void *. This class hides all these details from the bulk of the ACE_Select_Reactor code. All of these methods are called with the main <Select_Reactor> token lock held.
| typedef ACE_HANDLE ACE_Select_Reactor_Handler_Repository::key_type | 
| typedef ACE_Hash_Map_Manager_Ex<key_type, value_type, ACE_Hash<key_type>, std::equal_to<key_type>, ACE_Null_Mutex> ACE_Select_Reactor_Handler_Repository::map_type | 
The NT version implements this via a hash map ACE_Event_Handler*. Since NT implements ACE_HANDLE as a void * we can't directly index into this array. Therefore, we must explicitly map ACE_HANDLE to ACE_Event_Handler. 
| ACE_Select_Reactor_Handler_Repository::ACE_Select_Reactor_Handler_Repository | ( | ACE_Select_Reactor_Impl & | select_reactor | ) | 
Default "do-nothing" constructor.
| int ACE_Select_Reactor_Handler_Repository::bind | ( | ACE_HANDLE | handle, | 
| ACE_Event_Handler * | event_handler, | ||
| ACE_Reactor_Mask | mask | ||
| ) | 
Bind the ACE_Event_Handler * to the ACE_HANDLE with the appropriate ACE_Reactor_Mask settings.
| int ACE_Select_Reactor_Handler_Repository::close | ( | void | ) | 
Close down the repository.
| void ACE_Select_Reactor_Handler_Repository::dump | ( | void | ) | const | 
Dump the state of an object.
      
  | 
  inline | 
Return the ACE_Event_Handler* associated with ACE_HANDLE. 
      
  | 
  private | 
iterator corresponding ACE_Event_Handler* associated with ACE_HANDLE. | bool ACE_Select_Reactor_Handler_Repository::handle_in_range | ( | ACE_HANDLE | handle | ) | 
| bool ACE_Select_Reactor_Handler_Repository::invalid_handle | ( | ACE_HANDLE | handle | ) | 
      
  | 
  inline | 
Maximum ACE_HANDLE value, plus 1.
| int ACE_Select_Reactor_Handler_Repository::open | ( | size_type | size | ) | 
Initialize a repository of the appropriate size.
On Unix platforms, the size parameter should be as large as the maximum number of file descriptors allowed for a given process. This is necessary since a file descriptor is used to directly index the array of event handlers maintained by the Reactor's handler repository. Direct indexing is used for efficiency reasons.
      
  | 
  inline | 
Returns the current table size.
      
  | 
  inline | 
Remove the binding of ACE_HANDLE in accordance with the mask.
      
  | 
  private | 
Remove the binding of handle corresponding to position pos in accordance with the mask.
| int ACE_Select_Reactor_Handler_Repository::unbind_all | ( | void | ) | 
Remove all the <ACE_HANDLE, ACE_Event_Handler> tuples.
      
  | 
  friend | 
| ACE_Select_Reactor_Handler_Repository::ACE_ALLOC_HOOK_DECLARE | 
Declare the dynamic allocation hooks.
      
  | 
  private | 
Underlying table of event handlers.
      
  | 
  private | 
Reference to our Select_Reactor. 
 1.8.3.1