ACE  6.4.2
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Private Member Functions | Static Private Attributes | Friends | List of all members
ACE_Base_Thread_Adapter Class Referenceabstract

Base class for all the Thread_Adapters. More...

#include <Base_Thread_Adapter.h>

Inheritance diagram for ACE_Base_Thread_Adapter:
Inheritance graph
[legend]
Collaboration diagram for ACE_Base_Thread_Adapter:
Collaboration graph
[legend]

Public Member Functions

virtual ~ACE_Base_Thread_Adapter (void)
 
virtual ACE_THR_FUNC_RETURN invoke (void)=0
 Virtual method invoked by the thread entry point. More...
 
ACE_THR_C_FUNC entry_point (void)
 

Static Public Member Functions

static void close_log_msg (void)
 Invoke the close_log_msg_hook, if it is present. More...
 
static void sync_log_msg (const ACE_TCHAR *prog_name)
 Invoke the sync_log_msg_hook, if it is present. More...
 
static ACE_OS_Thread_Descriptorthr_desc_log_msg (void)
 Invoke the thr_desc_log_msg_hook, if it is present. More...
 

Protected Member Functions

 ACE_Base_Thread_Adapter (ACE_THR_FUNC user_func, void *arg, ACE_THR_C_FUNC entry_point=(ACE_THR_C_FUNC) ACE_THREAD_ADAPTER_NAME, ACE_OS_Thread_Descriptor *td=0, long cancel_flags=0)
 Constructor. More...
 
void inherit_log_msg (void)
 

Protected Attributes

ACE_THR_FUNC user_func_
 Thread startup function passed in by the user (C++ linkage). More...
 
void * arg_
 Argument to thread startup function. More...
 
ACE_THR_C_FUNC entry_point_
 
ACE_OS_Thread_Descriptorthr_desc_
 
ACE_OS_Log_Msg_Attributes log_msg_attributes_
 The ACE_Log_Msg attributes. More...
 
ACE_Service_Gestalt *const ctx_
 That is useful for gprof, define itimerval. More...
 
long flags_
 

Static Private Member Functions

static void set_log_msg_hooks (ACE_INIT_LOG_MSG_HOOK init_hook, ACE_INHERIT_LOG_MSG_HOOK inherit_hook, ACE_CLOSE_LOG_MSG_HOOK close_hook, ACE_SYNC_LOG_MSG_HOOK sync_hook, ACE_THR_DESC_LOG_MSG_HOOK thr_desc)
 Set the Log_Msg hooks. More...
 

Static Private Attributes

static ACE_INIT_LOG_MSG_HOOK init_log_msg_hook_ = 0
 The hooks to inherit and cleanup the Log_Msg attributes. More...
 
static ACE_INHERIT_LOG_MSG_HOOK inherit_log_msg_hook_ = 0
 
static ACE_CLOSE_LOG_MSG_HOOK close_log_msg_hook_ = 0
 
static ACE_SYNC_LOG_MSG_HOOK sync_log_msg_hook_ = 0
 
static ACE_THR_DESC_LOG_MSG_HOOK thr_desc_log_msg_hook_ = 0
 

Friends

class ACE_Log_Msg
 Allow the ACE_Log_Msg class to set its hooks. More...
 

Detailed Description

Base class for all the Thread_Adapters.

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_Base_Thread_Adapter::~ACE_Base_Thread_Adapter ( void  )
virtual
ACE_Base_Thread_Adapter::ACE_Base_Thread_Adapter ( ACE_THR_FUNC  user_func,
void *  arg,
ACE_THR_C_FUNC  entry_point = (ACE_THR_C_FUNC) ACE_THREAD_ADAPTER_NAME,
ACE_OS_Thread_Descriptor td = 0,
long  cancel_flags = 0 
)
protected

Constructor.

Member Function Documentation

void ACE_Base_Thread_Adapter::close_log_msg ( void  )
static

Invoke the close_log_msg_hook, if it is present.

ACE_THR_C_FUNC ACE_Base_Thread_Adapter::entry_point ( void  )
inline

Accessor for the C entry point function to the OS thread creation routine.

void ACE_Base_Thread_Adapter::inherit_log_msg ( void  )
protected

Inherit the logging features if the parent thread has an ACE_Log_Msg.

virtual ACE_THR_FUNC_RETURN ACE_Base_Thread_Adapter::invoke ( void  )
pure virtual

Virtual method invoked by the thread entry point.

Implemented in ACE_Thread_Adapter, and ACE_OS_Thread_Adapter.

void ACE_Base_Thread_Adapter::set_log_msg_hooks ( ACE_INIT_LOG_MSG_HOOK  init_hook,
ACE_INHERIT_LOG_MSG_HOOK  inherit_hook,
ACE_CLOSE_LOG_MSG_HOOK  close_hook,
ACE_SYNC_LOG_MSG_HOOK  sync_hook,
ACE_THR_DESC_LOG_MSG_HOOK  thr_desc 
)
inlinestaticprivate

Set the Log_Msg hooks.

void ACE_Base_Thread_Adapter::sync_log_msg ( const ACE_TCHAR prog_name)
static

Invoke the sync_log_msg_hook, if it is present.

ACE_OS_Thread_Descriptor * ACE_Base_Thread_Adapter::thr_desc_log_msg ( void  )
static

Invoke the thr_desc_log_msg_hook, if it is present.

Friends And Related Function Documentation

friend class ACE_Log_Msg
friend

Allow the ACE_Log_Msg class to set its hooks.

Member Data Documentation

void* ACE_Base_Thread_Adapter::arg_
protected

Argument to thread startup function.

ACE_CLOSE_LOG_MSG_HOOK ACE_Base_Thread_Adapter::close_log_msg_hook_ = 0
staticprivate
ACE_Service_Gestalt* const ACE_Base_Thread_Adapter::ctx_
protected

That is useful for gprof, define itimerval.

Keep a reference to the configuration context that spawns the thread so the child can inherit it.

ACE_THR_C_FUNC ACE_Base_Thread_Adapter::entry_point_
protected

Entry point to the underlying OS thread creation call (C linkage).

long ACE_Base_Thread_Adapter::flags_
protected

Pass through the thread-creation flags that can only be acted on by the spawned thread. Currently this is only the cancellation-related flags.

ACE_INHERIT_LOG_MSG_HOOK ACE_Base_Thread_Adapter::inherit_log_msg_hook_ = 0
staticprivate
ACE_INIT_LOG_MSG_HOOK ACE_Base_Thread_Adapter::init_log_msg_hook_ = 0
staticprivate

The hooks to inherit and cleanup the Log_Msg attributes.

ACE_OS_Log_Msg_Attributes ACE_Base_Thread_Adapter::log_msg_attributes_
protected

The ACE_Log_Msg attributes.

ACE_SYNC_LOG_MSG_HOOK ACE_Base_Thread_Adapter::sync_log_msg_hook_ = 0
staticprivate
ACE_OS_Thread_Descriptor* ACE_Base_Thread_Adapter::thr_desc_
protected

Optional thread descriptor. Passing this pointer in will force the spawned thread to cache this location in Log_Msg and wait until Thread_Manager fills in all information in thread descriptor.

ACE_THR_DESC_LOG_MSG_HOOK ACE_Base_Thread_Adapter::thr_desc_log_msg_hook_ = 0
staticprivate
ACE_THR_FUNC ACE_Base_Thread_Adapter::user_func_
protected

Thread startup function passed in by the user (C++ linkage).


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