Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

ACE_Dev_Poll_Event_Tuple Class Reference

Class that associates specific event mask with a given event handler. More...

#include <Dev_Poll_Reactor.h>

Collaboration diagram for ACE_Dev_Poll_Event_Tuple:

Collaboration graph
[legend]
List of all members.

Public Methods

 ACE_Dev_Poll_Event_Tuple (void)
 Constructor. More...


Public Attributes

ACE_Event_Handlerevent_handler
 The event handler. More...

ACE_Reactor_Mask mask
 The event mask for the above event handler. More...

char suspended
 Flag that states whether or not the event handler is suspended. More...

unsigned long refcount
 The number of outstanding upcalls occurring on the above event handler. More...


Detailed Description

Class that associates specific event mask with a given event handler.

This class merely provides a means to associate an event mask with an event handler. Such an association is needed since it is not possible to retrieve the event mask from the "interest set" stored in the `/dev/poll' or `/dev/epoll' driver. Without this external association, it would not be possible keep track of the event mask for a given event handler when suspending it or resuming it.

Note:
An ACE_Handle_Set is not used since the number of handles may exceed its capacity (ACE_DEFAULT_SELECT_REACTOR_SIZE).

Definition at line 59 of file Dev_Poll_Reactor.h.


Constructor & Destructor Documentation

ACE_INLINE ACE_Dev_Poll_Event_Tuple::ACE_Dev_Poll_Event_Tuple void   
 

Constructor.

Definition at line 6 of file Dev_Poll_Reactor.inl.

00007   : event_handler (0),
00008     mask (ACE_Event_Handler::NULL_MASK),
00009     suspended (0),
00010     refcount (1)
00011 {
00012 }


Member Data Documentation

ACE_Event_Handler* ACE_Dev_Poll_Event_Tuple::event_handler
 

The event handler.

Definition at line 69 of file Dev_Poll_Reactor.h.

Referenced by ACE_Dev_Poll_Reactor_Handler_Repository::bind, ACE_Dev_Poll_Reactor_Handler_Repository::find, and ACE_Dev_Poll_Reactor_Handler_Repository::unbind.

ACE_Reactor_Mask ACE_Dev_Poll_Event_Tuple::mask
 

The event mask for the above event handler.

Definition at line 72 of file Dev_Poll_Reactor.h.

Referenced by ACE_Dev_Poll_Reactor_Handler_Repository::bind, ACE_Dev_Poll_Reactor_Handler_Repository::mask, and ACE_Dev_Poll_Reactor_Handler_Repository::unbind.

unsigned long ACE_Dev_Poll_Event_Tuple::refcount
 

The number of outstanding upcalls occurring on the above event handler.

Todo:
The reference count should really be maintained within the event handler. This approach was taken to allow for backward compatibility and quick implementation. One approach for maintaining backward compatibility while implementing reference counting within the event handler is to create an ACE_Ref_Counted_Event_Handler "mix-in" class that concrete ACE_Event_Handlers can inherit from (i.e. multiple inheritance). Thus, legacy non-reference counted event handlers need not pay for reference counting resources.

Definition at line 91 of file Dev_Poll_Reactor.h.

Referenced by ACE_Dev_Poll_Reactor_Handler_Repository::add_ref, and ACE_Dev_Poll_Reactor_Handler_Repository::remove_ref.

char ACE_Dev_Poll_Event_Tuple::suspended
 

Flag that states whether or not the event handler is suspended.

Definition at line 75 of file Dev_Poll_Reactor.h.

Referenced by ACE_Dev_Poll_Reactor_Handler_Repository::resume, ACE_Dev_Poll_Reactor_Handler_Repository::suspend, ACE_Dev_Poll_Reactor_Handler_Repository::suspended, and ACE_Dev_Poll_Reactor_Handler_Repository::unbind.


The documentation for this class was generated from the following files:
Generated on Mon Jun 16 12:47:05 2003 for ACE by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002