Jpp  master_rocky-37-gf0c5bc59d
the software that should make you happy
Static Public Member Functions | List of all members
JROOT::JRootPrinter Struct Reference

Auxiliary class for printing objects in ASCII format using JRootWriter. More...

#include <JRootPrinter.hh>

Static Public Member Functions

static JEquationParametersgetEquationParameters ()
 Get equation parameters. More...
 
static void setEquationParameters (const JEquationParameters &equation)
 Set equation parameters. More...
 
static void print (JRootWriter &writer, const JRootWritableClass &cls)
 Write class contents to output. More...
 
template<class T >
static void print (std::ostream &out, const T &object, const std::string &key, const JEquationParameters &parameters, const JRootDictionary_t &dictionary=JRootDictionary::getInstance())
 Write part of object to output using ROOT dictionary. More...
 
template<class T >
static void print (std::ostream &out, const T &object, const JEquationParameters &parameters, const JRootDictionary_t &dictionary=JRootDictionary::getInstance())
 Write object to output using ROOT dictionary. More...
 
template<class T >
static void print (std::ostream &out, const T &object, const std::string &key, const JRootDictionary_t &dictionary=JRootDictionary::getInstance())
 Write part of object to output using ROOT dictionary. More...
 
template<class T >
static void print (std::ostream &out, const T &object, const JRootDictionary_t &dictionary=JRootDictionary::getInstance())
 Write object to output using ROOT dictionary. More...
 

Detailed Description

Auxiliary class for printing objects in ASCII format using JRootWriter.

Definition at line 31 of file JRootPrinter.hh.

Member Function Documentation

◆ getEquationParameters()

static JEquationParameters& JROOT::JRootPrinter::getEquationParameters ( )
inlinestatic

Get equation parameters.

Returns
equation parameters

Definition at line 37 of file JRootPrinter.hh.

38  {
39  static JEquationParameters equation("=", "\n", ".", "");
40 
41  return equation;
42  }
Simple data structure to support I/O of equations (see class JLANG::JEquation).

◆ setEquationParameters()

static void JROOT::JRootPrinter::setEquationParameters ( const JEquationParameters equation)
inlinestatic

Set equation parameters.

Parameters
equationequation parameters

Definition at line 50 of file JRootPrinter.hh.

51  {
52  getEquationParameters() = equation;
53  }
static JEquationParameters & getEquationParameters()
Get equation parameters.
Definition: JRootPrinter.hh:37

◆ print() [1/5]

static void JROOT::JRootPrinter::print ( JRootWriter writer,
const JRootWritableClass cls 
)
inlinestatic

Write class contents to output.

Parameters
writerROOT writer
clsROOT class

Definition at line 62 of file JRootPrinter.hh.

63  {
64  if (cls.is_valid()) {
65  if (writer.getDictionary().find(cls.getTypename()) != writer.getDictionary().end())
66  writer.putObject(cls);
67  else
68  writer.put(cls);
69  }
70  }
const JRootDictionary_t & getDictionary() const
Get dictictionary.
JRootWriter & put(const T &object)
Write object according equation format.
JRootWriter & putObject(const T &object)
Write object.
bool is_valid() const
Check validity of this addressable class.
Definition: JRootClass.hh:471
const char * getTypename() const
Get type name.
Definition: JRootClass.hh:205

◆ print() [2/5]

template<class T >
static void JROOT::JRootPrinter::print ( std::ostream &  out,
const T &  object,
const std::string &  key,
const JEquationParameters parameters,
const JRootDictionary_t dictionary = JRootDictionary::getInstance() 
)
inlinestatic

Write part of object to output using ROOT dictionary.

Parameters
outoutput stream
objectobject
keydata member name, optionally separated by division character
parametersequation parameters
dictionarydictionary

Definition at line 83 of file JRootPrinter.hh.

88  {
89  using namespace std;
90  using namespace JPP;
91 
92  JRootWritableClass cls(object);
93 
94  for (string::size_type il = 0, ir = 0; ir != string::npos && cls.is_valid(); il = ir + 1) {
95  ir = key.substr(il).find(parameters.getDefaultDivision());
96  cls = cls.find(trim(key.substr(il, ir - il)).c_str());
97  }
98 
99  if (cls.is_valid()) {
100 
101  JRootWriter writer(out, parameters, dictionary);
102 
103  print(writer, cls);
104 
105  } else {
106 
107  THROW(JParseError, "Invalid key " << key);
108  }
109  }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:712
const char getDefaultDivision() const
Get default division character.
Exception for parsing value.
Definition: JException.hh:198
Implementation for ASCII output of objects with ROOT dictionary.
std::string trim(const std::string &buffer)
Trim string.
Definition: JLangToolkit.hh:79
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Definition: JSTDTypes.hh:14
static void print(JRootWriter &writer, const JRootWritableClass &cls)
Write class contents to output.
Definition: JRootPrinter.hh:62
ROOT class for writing object.
Definition: JRootClass.hh:604

◆ print() [3/5]

template<class T >
static void JROOT::JRootPrinter::print ( std::ostream &  out,
const T &  object,
const JEquationParameters parameters,
const JRootDictionary_t dictionary = JRootDictionary::getInstance() 
)
inlinestatic

Write object to output using ROOT dictionary.

Parameters
outoutput stream
objectobject
parametersequation parameters
dictionarydictionary

Definition at line 121 of file JRootPrinter.hh.

125  {
126  JRootWriter writer(out, parameters, dictionary);
127  JRootWritableClass cls(object);
128 
129  print(writer, cls);
130  }

◆ print() [4/5]

template<class T >
static void JROOT::JRootPrinter::print ( std::ostream &  out,
const T &  object,
const std::string &  key,
const JRootDictionary_t dictionary = JRootDictionary::getInstance() 
)
inlinestatic

Write part of object to output using ROOT dictionary.

Parameters
outoutput stream
objectobject
keydata member name, optionally separated by division character '.'
dictionarydictionary

Definition at line 142 of file JRootPrinter.hh.

146  {
147  print(out, object, key, JRootPrinter::getEquationParameters(), dictionary);
148  }

◆ print() [5/5]

template<class T >
static void JROOT::JRootPrinter::print ( std::ostream &  out,
const T &  object,
const JRootDictionary_t dictionary = JRootDictionary::getInstance() 
)
inlinestatic

Write object to output using ROOT dictionary.

Parameters
outoutput stream
objectobject
dictionarydictionary

Definition at line 159 of file JRootPrinter.hh.

162  {
163  print(out, object, JRootPrinter::getEquationParameters(), dictionary);
164  }

The documentation for this struct was generated from the following file: