diff --git a/Control/DataModelRoot/CMakeLists.txt b/Control/DataModelRoot/CMakeLists.txt index 150fe3e7fcff90d8d386e3d606190a0b67ad4f3d..ea460d21586e0b808acb6916a495007302ba1dc6 100644 --- a/Control/DataModelRoot/CMakeLists.txt +++ b/Control/DataModelRoot/CMakeLists.txt @@ -5,6 +5,10 @@ # Declare the package name: atlas_subdir( DataModelRoot ) +atlas_depends_on_subdirs ( + PUBLIC + Control/CxxUtils ) + # External dependencies: find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) diff --git a/Control/DataModelRoot/DataModelRoot/RootType.h b/Control/DataModelRoot/DataModelRoot/RootType.h index cac2b38e39d12d8d79340d553dd0348322ac778a..003d41bc303e683aaedf2cd8795eace965379217 100644 --- a/Control/DataModelRoot/DataModelRoot/RootType.h +++ b/Control/DataModelRoot/DataModelRoot/RootType.h @@ -14,6 +14,8 @@ class TMethod; class TFunction; class TMethodArg; +#include "CxxUtils/checker_macros.h" + #define ROOT_6 namespace Reflex { @@ -90,9 +92,9 @@ public: std::string FunctionParameterDefaultAt( size_t nth ) const; TReturnTypeAdapter ReturnType() const; - TScopeAdapter DeclaringScope() const; - TTypeAdapter DeclaringType() const; - TTypeAdapter TypeOf() const; + TScopeAdapter DeclaringScope ATLAS_NOT_THREAD_SAFE () const; + TTypeAdapter DeclaringType ATLAS_NOT_THREAD_SAFE () const; + TTypeAdapter TypeOf ATLAS_NOT_THREAD_SAFE () const; private: TDictionary* fMember; @@ -107,14 +109,14 @@ public: public: std::string Name() const; - TScopeAdapter ToType() const; + TScopeAdapter ToType ATLAS_NOT_THREAD_SAFE () const; private: TBaseClass* fBase; }; -class TScopeAdapter { +class ATLAS_NOT_THREAD_SAFE TScopeAdapter { public: TScopeAdapter(); TScopeAdapter( TClass* klass ); diff --git a/Control/DataModelRoot/src/RootType.cxx b/Control/DataModelRoot/src/RootType.cxx index 026b3653421bc88a4dbda94647791ed8fdd36334..58f03590ae1d84eb78daa83e4d3c13a60a08837a 100644 --- a/Control/DataModelRoot/src/RootType.cxx +++ b/Control/DataModelRoot/src/RootType.cxx @@ -142,7 +142,7 @@ TMemberAdapter::operator TMethodArg*() const } //____________________________________________________________________________ -TTypeAdapter TMemberAdapter::TypeOf() const +TTypeAdapter TMemberAdapter::TypeOf ATLAS_NOT_THREAD_SAFE () const { // get the type of the data member TDataMember* dataMember = (TDataMember*)*this; @@ -330,7 +330,7 @@ TScopeAdapter TMemberAdapter::DeclaringScope() const return std::string( "" ); } -TTypeAdapter TMemberAdapter::DeclaringType() const +TTypeAdapter TMemberAdapter::DeclaringType ATLAS_NOT_THREAD_SAFE () const { // no distinction between scope/type return DeclaringScope(); @@ -345,7 +345,7 @@ std::string TBaseAdapter::Name() const } //____________________________________________________________________________ -TScopeAdapter TBaseAdapter::ToType() const +TScopeAdapter TBaseAdapter::ToType ATLAS_NOT_THREAD_SAFE () const { // wrap the actual class representing this base return TScopeAdapter( fBase->GetClassPointer() ); @@ -626,7 +626,7 @@ std::string TScopeAdapter::Name( unsigned int mod ) const } //____________________________________________________________________________ -TScopeAdapter TScopeAdapter::DeclaringScope() const +TScopeAdapter TScopeAdapter::DeclaringScope ATLAS_NOT_THREAD_SAFE () const { std::string name = Name( Reflex::FINAL | Reflex::SCOPED ); std::string::size_type pos = name.rfind( "::" );