ACE_Thread_Adapter Class Reference

Converts a C++ function into a function that can be called from a thread creation routine (e.g., pthread_create() or _beginthreadex()) that expects an extern "C" entry point. This class also makes it possible to transparently provide hooks to register a thread with an ACE_Thread_Manager. More...

#include <Thread_Adapter.h>

Inheritance diagram for ACE_Thread_Adapter:

Inheritance graph
[legend]
Collaboration diagram for ACE_Thread_Adapter:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ACE_Thread_Adapter (ACE_THR_FUNC user_func, void *arg, ACE_THR_C_FUNC entry_point=(ACE_THR_C_FUNC) ace_thread_adapter, ACE_Thread_Manager *thr_mgr=0, ACE_Thread_Descriptor *td=0)
 Constructor.
virtual ACE_THR_FUNC_RETURN invoke (void)
ACE_Thread_Managerthr_mgr (void)
 Accessor for the optional <Thread_Manager>.

Private Member Functions

 ~ACE_Thread_Adapter (void)
 Ensure that this object must be allocated on the heap.
virtual ACE_THR_FUNC_RETURN invoke_i (void)

Private Attributes

ACE_Thread_Managerthr_mgr_
 Optional thread manager.

Friends

class ACE_Thread_Adapter_Has_Private_Destructor

Detailed Description

Converts a C++ function into a function that can be called from a thread creation routine (e.g., pthread_create() or _beginthreadex()) that expects an extern "C" entry point. This class also makes it possible to transparently provide hooks to register a thread with an ACE_Thread_Manager.

This class is used in ACE_OS::thr_create(). In general, the thread that creates an object of this class is different from the thread that calls invoke() on this object. Therefore, the invoke() method is responsible for deleting itself.


Constructor & Destructor Documentation

ACE_Thread_Adapter::ACE_Thread_Adapter ACE_THR_FUNC  user_func,
void *  arg,
ACE_THR_C_FUNC  entry_point = (ACE_THR_C_FUNC) ace_thread_adapter,
ACE_Thread_Manager thr_mgr = 0,
ACE_Thread_Descriptor td = 0
 

Constructor.

ACE_Thread_Adapter::~ACE_Thread_Adapter void   )  [private]
 

Ensure that this object must be allocated on the heap.


Member Function Documentation

ACE_THR_FUNC_RETURN ACE_Thread_Adapter::invoke void   )  [virtual]
 

Execute the <user_func_> with the <arg>. This function deletes <this>, thereby rendering the object useless after the call returns.

Implements ACE_Base_Thread_Adapter.

ACE_THR_FUNC_RETURN ACE_Thread_Adapter::invoke_i void   )  [private, virtual]
 

Called by invoke, mainly here to separate the SEH stuff because SEH on Win32 doesn't compile with local vars with destructors.

ACE_INLINE ACE_Thread_Manager * ACE_Thread_Adapter::thr_mgr void   ) 
 

Accessor for the optional <Thread_Manager>.


Friends And Related Function Documentation

friend class ACE_Thread_Adapter_Has_Private_Destructor [friend]
 

Friend declaration to avoid compiler warning: only defines a private destructor and has no friends.

Reimplemented from ACE_Base_Thread_Adapter.


Member Data Documentation

ACE_Thread_Manager* ACE_Thread_Adapter::thr_mgr_ [private]
 

Optional thread manager.


The documentation for this class was generated from the following files:
Generated on Wed Nov 23 15:50:51 2005 for ACE by  doxygen 1.4.5