Public Member Functions | Private Attributes

ACE_Thread_ID Class Reference

Defines a platform-independent thread ID class. Note that this class should be defined within the scope of a thread, rather than at global scope! More...

#include <OS_NS_Thread.h>

List of all members.

Public Member Functions

 ACE_Thread_ID (ACE_thread_t thr_id, ACE_hthread_t thr_handle)
 ACE_Thread_ID (void)
 Initialize the object using calls to ACE_OS::thr_self().
 ACE_Thread_ID (const ACE_Thread_ID &rhs)
 Copy constructor.
ACE_thread_t id (void) const
 Get the thread id.
void id (ACE_thread_t)
 Set the thread id.
ACE_hthread_t handle (void) const
 Get the thread handle.
void handle (ACE_hthread_t)
 Set the thread handle.
void to_string (char *thr_string) const
bool operator== (const ACE_Thread_ID &) const
 Equality operator.
bool operator!= (const ACE_Thread_ID &) const
 Inequality operator.

Private Attributes

ACE_thread_t thread_id_
 Identify the thread.
ACE_hthread_t thread_handle_
 Handle to the thread (typically used to "wait" on Win32).

Detailed Description

Defines a platform-independent thread ID class. Note that this class should be defined within the scope of a thread, rather than at global scope!

Definition at line 686 of file OS_NS_Thread.h.


Constructor & Destructor Documentation

ACE_Thread_ID::ACE_Thread_ID ( ACE_thread_t  thr_id,
ACE_hthread_t  thr_handle 
)

Initialize the object using the thread id and thread handle passed as parameters.

Definition at line 3588 of file OS_NS_Thread.inl.

  : thread_id_ (thread_id),
    thread_handle_ (thread_handle)
{
}

ACE_Thread_ID::ACE_Thread_ID ( void   ) 

Initialize the object using calls to ACE_OS::thr_self().

Definition at line 3603 of file OS_NS_Thread.inl.

ACE_Thread_ID::ACE_Thread_ID ( const ACE_Thread_ID rhs  ) 

Copy constructor.

Definition at line 3596 of file OS_NS_Thread.inl.


Member Function Documentation

ACE_hthread_t ACE_Thread_ID::handle ( void   )  const

Get the thread handle.

Definition at line 3623 of file OS_NS_Thread.inl.

{
  return this->thread_handle_;
}

void ACE_Thread_ID::handle ( ACE_hthread_t  thread_handle  ) 

Set the thread handle.

Definition at line 3629 of file OS_NS_Thread.inl.

{
  this->thread_handle_ = thread_handle;
}

void ACE_Thread_ID::id ( ACE_thread_t  thread_id  ) 

Set the thread id.

Definition at line 3617 of file OS_NS_Thread.inl.

{
  this->thread_id_ = thread_id;
}

ACE_thread_t ACE_Thread_ID::id ( void   )  const

Get the thread id.

Definition at line 3611 of file OS_NS_Thread.inl.

{
  return this->thread_id_;
}

bool ACE_Thread_ID::operator!= ( const ACE_Thread_ID rhs  )  const

Inequality operator.

Definition at line 3643 of file OS_NS_Thread.inl.

{
  return !(*this == rhs);
}

bool ACE_Thread_ID::operator== ( const ACE_Thread_ID rhs  )  const

Equality operator.

Definition at line 3635 of file OS_NS_Thread.inl.

void ACE_Thread_ID::to_string ( char *  thr_string  )  const

Definition at line 53 of file OS_NS_Thread.cpp.

{
  char format[128]; // Converted format string
  char *fp = 0;     // Current format pointer
  fp = format;
  *fp++ = '%';   // Copy in the %

#if defined (ACE_WIN32)
  ACE_OS::strcpy (fp, "u");
  ACE_OS::sprintf (thr_string,
                   format,
                   static_cast <unsigned> (thread_id_));
#elif defined (DIGITAL_UNIX)
                  ACE_OS::strcpy (fp, "u");
                  ACE_OS::sprintf (thr_string, format,
#  if defined (ACE_HAS_THREADS)
                                   thread_id_
#  else
                                   thread_id_
#  endif /* ACE_HAS_THREADS */
                                          );
#else

#  if defined (ACE_MVS) || defined (ACE_TANDEM_T1248_PTHREADS)
                  // MVS's pthread_t is a struct... yuck. So use the ACE 5.0
                  // code for it.
                  ACE_OS::strcpy (fp, "u");
                  ACE_OS::sprintf (thr_string, format, thread_handle_);
#  else
                  // Yes, this is an ugly C-style cast, but the
                  // correct C++ cast is different depending on
                  // whether the t_id is an integral type or a pointer
                  // type. FreeBSD uses a pointer type, but doesn't
                  // have a _np function to get an integral type, like
                  // the OSes above.
                  ACE_OS::strcpy (fp, "lu");
                  ACE_OS::sprintf (thr_string,
                                   format,
                                   (unsigned long) thread_handle_);
#  endif /* ACE_MVS || ACE_TANDEM_T1248_PTHREADS */

#endif /* ACE_WIN32 */
}


Member Data Documentation

Handle to the thread (typically used to "wait" on Win32).

Definition at line 726 of file OS_NS_Thread.h.

Identify the thread.

Definition at line 723 of file OS_NS_Thread.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines