11 #include "TInterpreter.h"
12 #include "THashTable.h"
14 #include "boost/algorithm/string.hpp"
15 #include "boost/thread/tss.hpp"
38 TClass *
cl = TClass::GetClass(type.
typeInfo(),
true);
43 if(!cl->HasDictionary()) {
52 TClass *
cl = TClass::GetClass(type.
typeInfo(),
true);
58 cl->GetMissingDictionaries(result, recursive);
59 for(
auto const& item : result) {
60 TClass
const* cl =
static_cast<TClass
const*
>(item);
67 TClass *
cl = TClass::GetClass(type.
typeInfo(),
true);
70 <<
"No TClass for class: '" << type.
className() <<
"'" << std::endl;
72 if(!cl->HasDictionary()) {
81 TClass *
cl = TClass::GetClass(type.
typeInfo(),
true);
84 <<
"No TClass for class: '" << type.
className() <<
"'" << std::endl;
87 cl->GetMissingDictionaries(result, recursive);
88 for(
auto const& item : result) {
89 TClass
const* cl =
static_cast<TClass
const*
>(item);
97 std::ostringstream ostr;
99 ostr << item <<
"\n\n";
102 <<
"No data dictionary found for the following classes:\n\n"
104 <<
"Most likely each dictionary was never generated,\n"
105 <<
"but it may be that it was generated in the wrong package.\n"
106 <<
"Please add (or move) the specification\n"
107 <<
"<class name=\"whatever\"/>\n"
108 <<
"to the appropriate classes_def.xml file.\n"
109 <<
"If the class is a template instance, you may need\n"
110 <<
"to define a dummy variable of this type in classes.h.\n"
111 <<
"Also, if this class has any transient members,\n"
112 <<
"you need to specify them in classes_def.xml.";
120 for(
auto const& item : missing) {
122 TClass::GetClass(item.typeInfo(), kTRUE);
128 for(
auto const& item : missing) {
143 std::vector<TypeWithDict>& baseTypes) {
149 for (
auto const& basex : bases) {
155 if (!
bool(baseRflxType)) {
163 baseTypes.push_back(baseType);
bool checkTypeDictionary(TypeID const &type)
void checkTypeDictionaries(TypeID const &type, bool recursive=true)
void checkClassDictionaries(TypeID const &type, bool recursive=true)
static TypeSet missingTypes_
std::string const & dictionaryPlugInPrefix()
const std::type_info & typeInfo() const
void public_base_classes(TypeWithDict const &type, std::vector< TypeWithDict > &baseTypes)
std::set< TypeID > TypeSet
std::type_info const & typeInfo() const
TypeWithDict typeOf() const
void throwMissingDictionariesException()
bool search_all(ForwardSequence const &s, Datum const &d)
void loadMissingDictionaries()
std::string const & className() const
bool checkClassDictionary(TypeID const &type)