1 #ifndef __JROOT__JROOTDICTIONARY__
2 #define __JROOT__JROOTDICTIONARY__
9 #include <TDictionary.h>
27 namespace JPP {
using namespace JROOT; }
69 #define VALUE_TYPE(__TYPE__) value_type(#__TYPE__, new JObjectStreamer<__TYPE__>())
73 this->
add(
JType<JRemove<JPrimitiveTypes_t, long double>::typelist>());
101 const TDictionary* pDictionary = TDictionary::GetDictionary(
typeid(T));
103 if (pDictionary != NULL)
104 return pDictionary->GetName();
106 throw JException(
"Error at getTypename(): data type not implemented.");
143 template<
class JElement_t,
class JAllocator_t>
157 template<
class JHead_t,
class JTail_t>
179 #define gRootDictionary (JROOT::JRootDictionary::getInstance())
void addToRootDictionary()
Add ASCII I/O for (list of) class(es) to dictionary.
#define gRootDictionary
Global ROOT streamer for ASCII I/O.
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.
void add(const JType< std::vector< JElement_t, JAllocator_t > > &type)
Addition of std::vector.
ASCII I/O of objects with ROOT dictionary.
The template JSharedPointer class can be used to share a pointer to an object.
Auxiliary class for recursive type list generation.
Auxiliary class for no type definition.
#define VALUE_TYPE(__TYPE__)
This file contains the basic interface for ASCII I/O of ROOT objects.
void add(const JType< T > &type)
Addition of class.
static const char * getTypename()
Get typename for given template class.