1 #ifndef __JROOT__JROOTDICTIONARY__
2 #define __JROOT__JROOTDICTIONARY__
8 #include "TDictionary.h"
25 namespace JPP {
using namespace JROOT; }
68 #define VALUE_TYPE(__TYPE__) value_type(#__TYPE__, new JObjectStreamer<__TYPE__>())
72 this->
add(
JType<JRemove<JPrimitiveTypes_t, long double>::typelist>());
104 const TDictionary* pDictionary = TDictionary::GetDictionary(
typeid(
T));
106 if (pDictionary != NULL)
107 return pDictionary->GetName();
146 template<
class JElement_t,
class JAllocator_t>
160 template<
class JHead_t,
class JTail_t>
182 #define gRootDictionary (JROOT::JRootDictionary::getInstance())
void addToRootDictionary()
Add ASCII I/O for (list of) class(es) to dictionary.
#define gRootDictionary
Global ROOT based dictionary for ASCII I/O.
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
void add()
Add ASCII I/O for given (list of) class(es) to dictionary.
Auxiliary class for a type holder.
JRootDictionary()
Default constructor.
void add(const JType< JTypeList< JHead_t, JTail_t > > &typelist)
Recursive addition of classes.
void add(const JType< JNullType > &type)
Template specialisation to terminate addition of classes.
then set_variable PMT_FILE set_variable DAQ_FILE set_variable OUTPUT_FILE set_variable DETECTOR else fatal Wrong number of arguments fi JPrintTree f $DAQ_FILE type
void add(const JType< std::vector< JElement_t, JAllocator_t > > &type)
Addition of std::vector.
ASCII I/O of objects with ROOT dictionary.
Auxiliary class for recursive type list generation.
do set_variable OUTPUT_DIRECTORY $WORKDIR T
Auxiliary class for no type definition.
#define VALUE_TYPE(__TYPE__)
Type list of primitive data types.
Type definition of ROOT based dictionary for ASCII I/O.
Default implementation of ROOT based dictionary for ASCII I/O.
void add(const JType< T > &type)
Addition of class.
static const char * getTypename()
Get typename for given template class.