ACE_Select_Reactor_Handler_Repository Class Reference
Used to map ACE_HANDLEs onto the appropriate
ACE_Event_Handler *.
More...
#include <Select_Reactor_Base.h>
List of all members.
|
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.
|
int | open (size_type size) |
| Initialize a repository of the appropriate size.
|
int | close (void) |
| Close down the repository.
|
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.
|
int | unbind_all (void) |
| Remove all the <ACE_HANDLE, ACE_Event_Handler> tuples.
|
bool | invalid_handle (ACE_HANDLE handle) |
bool | handle_in_range (ACE_HANDLE handle) |
size_type | size (void) const |
| Returns the current table size.
|
max_handlep1_type | max_handlep1 (void) const |
| Maximum ACE_HANDLE value, plus 1.
|
void | dump (void) const |
| Dump the state of an object.
|
Public Attributes |
| ACE_ALLOC_HOOK_DECLARE |
| Declare the dynamic allocation hooks.
|
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 .
|
map_type | event_handlers_ |
| Underlying table of event handlers.
|
Friends |
class | ACE_Select_Reactor_Handler_Repository_Iterator |
Detailed Description
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.
Member Typedef Documentation
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
.
Constructor & Destructor Documentation
Default "do-nothing" constructor.
Member Function Documentation
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.
int ACE_Select_Reactor_Handler_Repository::close |
( |
void |
|
) |
|
Close down the repository.
ACE_INLINE ACE_Event_Handler * ACE_Select_Reactor_Handler_Repository::find |
( |
ACE_HANDLE |
handle |
) |
|
Return the ACE_Event_Handler*
associated with ACE_HANDLE
.
Bind the ACE_Event_Handler * to the ACE_HANDLE with the appropriate ACE_Reactor_Mask settings.
ACE_INLINE int ACE_Select_Reactor_Handler_Repository::unbind |
( |
ACE_HANDLE |
handle, |
|
|
ACE_Reactor_Mask |
mask | |
|
) |
| | |
Remove the binding of ACE_HANDLE in accordance with the mask.
int ACE_Select_Reactor_Handler_Repository::unbind_all |
( |
void |
|
) |
|
bool ACE_Select_Reactor_Handler_Repository::invalid_handle |
( |
ACE_HANDLE |
handle |
) |
|
bool ACE_Select_Reactor_Handler_Repository::handle_in_range |
( |
ACE_HANDLE |
handle |
) |
|
Returns the current table size.
Maximum ACE_HANDLE value, plus 1.
void ACE_Select_Reactor_Handler_Repository::dump |
( |
void |
|
) |
const |
Dump the state of an object.
Remove the binding of handle corresponding to position pos in accordance with the mask.
- Returns:
iterator
corresponding ACE_Event_Handler*
associated with ACE_HANDLE
.
Friends And Related Function Documentation
Member Data Documentation
Declare the dynamic allocation hooks.
Reference to our Select_Reactor
.
Underlying table of event handlers.
The documentation for this class was generated from the following files: