| # Gaudi Framework, version v23r1 |

Home |  | Generated: Wed Feb 29 2012

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:
[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
ThreadMap * | getThreadMap ()
| access the whole map
const std::string & | getThreadID ()
| get Gaudi ID of current pthread
## Static Public Member Functions
static ThreadGaudi * | instance ()
| singleton access
## Protected Member Functions
| ThreadGaudi ()
virtual | ~ThreadGaudi ()
## Protected Attributes
ThreadMap * | m_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

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.

                             {
      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.

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

ThreadGaudi * ThreadGaudi::instance | ( | ) | `[static]`

singleton access

Definition at line 94 of file ThreadGaudi.cpp.

                                       {
      if ( 0 == ThreadGaudiInstance ) {
        ThreadGaudiInstance = new ThreadGaudi();
      }
      return ThreadGaudiInstance ;
    }

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

ThreadMap* ThreadGaudi::m_threadMap`[protected]`

Definition at line 30 of file ThreadGaudi.h.

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

- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v23r1/GaudiKernel/GaudiKernel/ThreadGaudi.h
- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v23r1/GaudiKernel/src/Lib/ThreadGaudi.cpp

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines