15 std::vector<std::string> ret;
16 TList *members = tclass->GetListOfDataMembers();
17 TIterator *m_iterator = members->MakeIterator();
19 while ((obj = m_iterator->Next()) != NULL) {
20 TDataMember *member = (TDataMember *)obj;
21 TDataType *basic_type = member->GetDataType();
22 if (basic_type != NULL) {
24 assert(basic_type->GetType() == kFloat_t);
26 if (member->GetArrayDim() == 0) {
28 ret.push_back(prefix +
"." + std::string(obj->GetName()));
33 for (
unsigned i = 0; i < member->GetArrayDim(); i++) {
34 max_ind = max_ind * member->GetMaxIndex(i);
36 for (
unsigned i = 0; i < max_ind; i++) {
37 std::vector<unsigned> each_ind(member->GetArrayDim(), 0);
39 for (
int j = member->GetArrayDim()-1; j >= 0; j--) {
40 unsigned this_i = ind % member->GetMaxIndex(j);
42 ind = ind / member->GetMaxIndex(j);
44 std::string base = prefix +
"." + std::string(obj->GetName());
52 assert(!member->IsEnum());
54 assert(!member->IsaPointer());
56 assert(!member->IsSTLContainer());
58 if (!member->IsBasic()) {
59 DictFuncPtr_t next = gClassTable->GetDict(member->GetTypeName());
61 std::cout <<
"Missing dictionary for class type: " << member->GetTypeName() << std::endl;
64 std::vector<std::string> this_ret =
ProcessClass(next(), prefix +
"." + std::string(obj->GetName()));
65 ret.insert(ret.end(), this_ret.begin(), this_ret.end());
std::string to_string(WindowPattern const &pattern)
std::vector< std::string > ProcessClass(TClass *tclass, const std::string &prefix)
BEGIN_PROLOG could also be cout