![]() |
|
|
Generated: 18 Jul 2008 |
#include "GaudiKernel/System.h"
#include <string>
#include <map>
Include dependency graph for ThreadGaudi.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.
Classes | |
| class | ThreadGaudi |
| singleton mapping the pthread ID to the Gaudi thread ID More... | |
Functions | |
| std::string | getGaudiThreadIDfromID (int iCopy) |
| helper function to extract Gaudi Thread ID from thread copy number | |
| std::string | getGaudiThreadIDfromName (const std::string &name) |
| helper function to extract Gaudi Thread ID from thread copy name | |
| std::string | getGaudiThreadGenericName (const std::string &name) |
| helper function to extract Gaudi instance name from thread copy name | |
| bool | isGaudiThreaded (const std::string &name) |
| test if current Gaudi object is running /will run in a thread | |
| std::string getGaudiThreadGenericName | ( | const std::string & | name | ) |
helper function to extract Gaudi instance name from thread copy name
Definition at line 52 of file ThreadGaudi.cpp.
References std::basic_string< _CharT, _Traits, _Alloc >::find(), std::basic_string< _CharT, _Traits, _Alloc >::length(), name, std::basic_string< _CharT, _Traits, _Alloc >::substr(), and threadSeparator.
Referenced by Service::setProperties(), AlgTool::setProperties(), and Algorithm::setProperties().
00052 { 00053 std::string genericName = name ; 00054 00055 // find parent if name of an AlgTool 00056 std::string parent_name = name ; 00057 std::string tool_name = "" ; 00058 size_t pp = name.find(".") ; 00059 if ( (pp > 0) && (pp <= name.length()) ) { 00060 parent_name = name.substr(0,name.find(".")-1) ; 00061 tool_name = name.substr(name.find(".")); 00062 } 00063 00064 // construct gneric name 00065 pp = parent_name.find(threadSeparator) ; 00066 if ( (pp > 0) && (pp <= parent_name.length()) ) { 00067 genericName = parent_name.substr(0,parent_name.find(threadSeparator))+tool_name ; 00068 } 00069 return genericName ; 00070 }
| std::string getGaudiThreadIDfromID | ( | int | iCopy | ) |
helper function to extract Gaudi Thread ID from thread copy number
Definition at line 18 of file ThreadGaudi.cpp.
References std::ends(), std::basic_ostringstream< _CharT, _Traits, _Alloc >::str(), and threadSeparator.
Referenced by ApplicationMgr::addMultiSvc(), and ApplicationMgr::declareMultiSvcType().
00018 { 00019 std::ostringstream ost; 00020 ost << threadSeparator << iCopy << std::ends; 00021 return ost.str(); 00022 }
| std::string getGaudiThreadIDfromName | ( | const std::string & | name | ) |
helper function to extract Gaudi Thread ID from thread copy name
Definition at line 28 of file ThreadGaudi.cpp.
References std::basic_string< _CharT, _Traits, _Alloc >::find(), std::basic_string< _CharT, _Traits, _Alloc >::length(), name, std::basic_string< _CharT, _Traits, _Alloc >::substr(), and threadSeparator.
Referenced by AlgTool::AlgTool(), Algorithm::createSubAlgorithm(), MinimalEventLoopMgr::decodeTopAlgs(), isGaudiThreaded(), and ServiceLocatorHelper::threadName().
00028 { 00029 std::string threadAppendix = "" ; 00030 00031 // find parent if name of an AlgTool 00032 std::string parent_name = name ; 00033 std::string tool_name = "" ; 00034 size_t pp = name.find(".") ; 00035 if ( (pp > 0) && (pp <= name.length()) ) { 00036 parent_name = name.substr(0,name.find(".")-1) ; 00037 tool_name = name.substr(name.find(".")); 00038 } 00039 00040 // get from (parent_)name thread ID 00041 pp = parent_name.find(threadSeparator) ; 00042 if ( (pp > 0) && (pp <= parent_name.length()) ) { 00043 threadAppendix = parent_name.substr(parent_name.find(threadSeparator)) ; 00044 } 00045 return threadAppendix ; 00046 }
| bool isGaudiThreaded | ( | const std::string & | name | ) |
test if current Gaudi object is running /will run in a thread
Definition at line 75 of file ThreadGaudi.cpp.
References getGaudiThreadIDfromName(), and name.
Referenced by ServiceLocatorHelper::isInThread(), Service::setProperties(), AlgTool::setProperties(), and Algorithm::setProperties().
00075 { 00076 return (!(getGaudiThreadIDfromName(name).empty())); 00077 }