Gaudi Framework, version v20r4

Generated: 8 Jan 2009

ThreadGaudi Class Reference

#include <GaudiKernel/ThreadGaudi.h>

Collaboration diagram for ThreadGaudi:

Collaboration graph
[legend]

List of all members.


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.


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::string & getThreadID ()
 get Gaudi ID of current pthread

Static Public Member Functions

static ThreadGaudiinstance ()
 singleton access

Protected Member Functions

 ThreadGaudi ()
virtual ~ThreadGaudi ()

Protected Attributes

ThreadMapm_threadMap

Member Typedef Documentation

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

Definition at line 17 of file ThreadGaudi.h.


Constructor & Destructor Documentation

ThreadGaudi::ThreadGaudi (  )  [protected]

Definition at line 85 of file ThreadGaudi.cpp.

00085                          {
00086   m_threadMap = new ThreadMap();
00087   (*m_threadMap)[0] = "" ;
00088 }

ThreadGaudi::~ThreadGaudi (  )  [protected, virtual]

Definition at line 90 of file ThreadGaudi.cpp.

00090                           {
00091   delete m_threadMap;
00092 }


Member Function Documentation

ThreadGaudi * ThreadGaudi::instance (  )  [static]

singleton access

Definition at line 94 of file ThreadGaudi.cpp.

00094                                    {
00095   if ( 0 == ThreadGaudiInstance ) {
00096     ThreadGaudiInstance = new ThreadGaudi();
00097   }
00098   return ThreadGaudiInstance ;
00099 }

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

associate Gaudi ID to pthread

Definition at line 101 of file ThreadGaudi.cpp.

00101                                                        {
00102   ThreadMap* p_threadMap = getThreadMap() ;
00103   // get from name thread ID
00104   System::ThreadHandle s_pid = System::threadSelf() ;
00105   if (p_threadMap->count(s_pid) == 0 ) {
00106     (*p_threadMap)[s_pid] = threadID ;
00107 #ifdef THREAD_GAUDI__DEBUG
00108     std::cout << " *** ThreadGaudi setThreadID *** value set for *** " << threadID << " thread ID : " << s_pid << std::endl ;
00109 #endif    
00110   }
00111 }

ThreadGaudi::ThreadMap * ThreadGaudi::getThreadMap (  ) 

access the whole map

Definition at line 113 of file ThreadGaudi.cpp.

00113                                                 {
00114   return ThreadGaudi::instance()->m_threadMap;
00115 }   

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

get Gaudi ID of current pthread

Definition at line 117 of file ThreadGaudi.cpp.

00117                                           {
00118   ThreadMap* p_threadMap = getThreadMap() ;
00119   System::ThreadHandle s_pid = System::threadSelf() ;
00120   if ( p_threadMap->find(s_pid) != p_threadMap->end() ) {
00121     return (*p_threadMap->find(s_pid)).second ;
00122   } else {
00123     return (*p_threadMap->find(0)).second ; ;
00124   }
00125 }


Member Data Documentation

Definition at line 30 of file ThreadGaudi.h.


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

Generated at Thu Jan 8 17:52:34 2009 for Gaudi Framework, version v20r4 by Doxygen version 1.5.6 written by Dimitri van Heesch, © 1997-2004