CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
BaseWithDict.h
Go to the documentation of this file.
1 #ifndef FWCore_Utilities_BaseWithDict_h
2 #define FWCore_Utilities_BaseWithDict_h
3 
4 /*----------------------------------------------------------------------
5 
6 BaseWithDict: A holder for a base class
7 
8 ----------------------------------------------------------------------*/
9 
10 #include <string>
11 
12 class TBaseClass;
13 
14 namespace edm {
15 
16  class TypeWithDict;
17 
18  class BaseWithDict {
19  // NOTE: Any use of class BaseWithDict in ROOT 5 is not thread safe without use
20  // of a properly scoped CINT mutex as in this example:
21  // {
22  // R__LOCKGUARD(gCintMutex);
23  // TypeBases bases(myType);
24  // for (auto const& b : bases) {
25  // BaseWithDict base(b);
26  // ...
27  // }
28  // // other use of bases goes here
29  // }
30  // The situation in ROOT 6 is not yet determined.
31  public:
32  BaseWithDict();
33 
34  explicit BaseWithDict(TBaseClass* baseClass);
35 
36  std::string name() const;
37 
38  TypeWithDict typeOf() const;
39 
40  bool isPublic() const;
41 
42  private:
43 
44  TBaseClass* baseClass_;
45  };
46 
47 }
48 #endif
TypeWithDict typeOf() const
Definition: BaseWithDict.cc:15
std::string name() const
Definition: BaseWithDict.cc:20
bool isPublic() const
Definition: BaseWithDict.cc:25
TBaseClass * baseClass_
Definition: BaseWithDict.h:44