ACE  6.1.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Attributes
ACE_Dev_Poll_Handler_Guard Class Reference

Class used to make event handler reference count manipulation exception-safe. More...

#include <Dev_Poll_Reactor.h>

Collaboration diagram for ACE_Dev_Poll_Handler_Guard:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ACE_Dev_Poll_Handler_Guard (ACE_Event_Handler *eh, bool do_incr=true)
 Constructor.
 ~ACE_Dev_Poll_Handler_Guard (void)
 Destructor.
void release (void)

Private Attributes

ACE_Event_Handlereh_
 The event handler being managed.
bool refcounted_
 true if eh_ is a reference-counted handler.

Detailed Description

Class used to make event handler reference count manipulation exception-safe.

This class makes the reference count manipulation that occurs during an upcall exception-safe. Prior to dispatching the event handler, the reference count is increased. Once the upcall for the given event handler is complete, its reference count will be decreased.


Constructor & Destructor Documentation

Constructor.

The constructor checks to see if eh is a reference-counted handler and remember that for later. If eh is reference counted, its reference count is incremented unless do_incr is false. do_incr should be false if the reference count was incremented independently of this guard, for example, on a notify handler since the reference count is incremented when the notify is queued.

Destructor.

The destructor decrements the reference count on the event handler corresponding to the given handle.


Member Function Documentation

void ACE_Dev_Poll_Handler_Guard::release ( void  )
inline

Release the event handler from this guard; when the destructor is called, the handler's reference count will not be decremented.


Member Data Documentation

The event handler being managed.

true if eh_ is a reference-counted handler.


The documentation for this class was generated from the following files: