Gaudi Framework, version v22r2

Home   Generated: Tue May 10 2011
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes

ThreadGaudi Class Reference

singleton mapping the pthread ID to the Gaudi thread ID More...

#include <GaudiKernel/ThreadGaudi.h>

Collaboration diagram for ThreadGaudi:
Collaboration graph
[legend]

List of all members.

Public Types

typedef std::map
< System::ThreadHandle,
std::string
ThreadMap

Public Member Functions

void setThreadID (const std::string &threadID)
 associate Gaudi ID to pthread
ThreadMapgetThreadMap ()
 access the whole map
const std::stringgetThreadID ()
 get Gaudi ID of current pthread

Static Public Member Functions

static ThreadGaudiinstance ()
 singleton access

Protected Member Functions

 ThreadGaudi ()
virtual ~ThreadGaudi ()

Protected Attributes

ThreadMapm_threadMap

Detailed Description

singleton mapping the pthread ID to the Gaudi thread ID

Author:
Werner Wiedenmann
Id:
ThreadGaudi.h,v 1.3 2003/06/25 15:45:10 mato Exp

Definition at line 15 of file ThreadGaudi.h.


Member Typedef Documentation

Definition at line 17 of file ThreadGaudi.h.


Constructor & Destructor Documentation

ThreadGaudi::ThreadGaudi (  ) [protected]

Definition at line 85 of file ThreadGaudi.cpp.

                         {
  m_threadMap = new ThreadMap();
  (*m_threadMap)[0] = "" ;
}
ThreadGaudi::~ThreadGaudi (  ) [protected, virtual]

Definition at line 90 of file ThreadGaudi.cpp.

                          {
  delete m_threadMap;
}

Member Function Documentation

const std::string & ThreadGaudi::getThreadID (  )

get Gaudi ID of current pthread

Definition at line 117 of file ThreadGaudi.cpp.

                                          {
  ThreadMap* p_threadMap = getThreadMap() ;
  System::ThreadHandle s_pid = System::threadSelf() ;
  if ( p_threadMap->find(s_pid) != p_threadMap->end() ) {
    return (*p_threadMap->find(s_pid)).second ;
  } else {
    return (*p_threadMap->find(0)).second ; ;
  }
}
ThreadGaudi::ThreadMap * ThreadGaudi::getThreadMap (  )

access the whole map

Definition at line 113 of file ThreadGaudi.cpp.

ThreadGaudi * ThreadGaudi::instance (  ) [static]

singleton access

Definition at line 94 of file ThreadGaudi.cpp.

void ThreadGaudi::setThreadID ( const std::string threadID )

associate Gaudi ID to pthread

Definition at line 101 of file ThreadGaudi.cpp.

                                                       {
  ThreadMap* p_threadMap = getThreadMap() ;
  // get from name thread ID
  System::ThreadHandle s_pid = System::threadSelf() ;
  if (p_threadMap->count(s_pid) == 0 ) {
    (*p_threadMap)[s_pid] = threadID ;
#ifdef THREAD_GAUDI__DEBUG
    std::cout << " *** ThreadGaudi setThreadID *** value set for *** " << threadID << " thread ID : " << s_pid << std::endl ;
#endif    
  }
}

Member Data Documentation

Definition at line 30 of file ThreadGaudi.h.


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

Generated at Tue May 10 2011 18:55:12 for Gaudi Framework, version v22r2 by Doxygen version 1.7.2 written by Dimitri van Heesch, © 1997-2004