Jpp
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Attributes | List of all members
JDATABASE::JDBReader< T > Struct Template Reference

Auxiliary class to read ROOT object from database. More...

#include <JDBReader.hh>

Public Member Functions

 JDBReader ()
 Default constructor. More...
 
void reset ()
 Reset. More...
 
const Toperator() (ResultSet &rs)
 Read ROOT object from result set. More...
 

Private Attributes

T object
 
JROOT::JRootReader reader
 
std::vector
< JROOT::JRootReadableClass
buffer
 

Detailed Description

template<class T>
struct JDATABASE::JDBReader< T >

Auxiliary class to read ROOT object from database.

Note that the list of columns associated to the template parameter is considered to be permanent.
If not, the method JDBReader::reset should be called before the next operation.

Definition at line 43 of file JDBReader.hh.

Constructor & Destructor Documentation

template<class T>
JDATABASE::JDBReader< T >::JDBReader ( )
inline

Default constructor.

Definition at line 47 of file JDBReader.hh.

47  :
48  object(),
50  {}
JROOT::JRootReader reader
Definition: JDBReader.hh:108
Simple data structure to support I/O of equations (see class JLANG::JEquation).
T & getInstance(const T &object)
Get static instance from temporary object.
Definition: JObject.hh:75
static JNullStream null
Null I/O stream.
Definition: JNullStream.hh:51

Member Function Documentation

template<class T>
void JDATABASE::JDBReader< T >::reset ( )
inline

Reset.

Definition at line 56 of file JDBReader.hh.

57  {
58  buffer.clear();
59  }
std::vector< JROOT::JRootReadableClass > buffer
Definition: JDBReader.hh:110
template<class T>
const T& JDATABASE::JDBReader< T >::operator() ( ResultSet &  rs)
inline

Read ROOT object from result set.

Parameters
rsresult set
Returns
object

Definition at line 68 of file JDBReader.hh.

69  {
70  using namespace std;
71  using namespace JPP;
72 
73  object = T();
74 
75  if (buffer.empty()) {
76 
77  JRootReadableClass cls(object);
78 
79  for (size_t i = 0; i != rs.FieldCount(); ++i) {
80 
81  string parameter = rs.FieldName(i);
82 
83  for (string::const_iterator i = SPECIAL_CHARACTERS.begin(); i != SPECIAL_CHARACTERS.end(); ++i) {
84  for (string::size_type pos; (pos = parameter.find(*i)) != string::npos; ) {
85  parameter.erase(pos);
86  }
87  }
88 
89  buffer.push_back(cls.find(parameter.c_str()));
90  }
91  }
92 
93  for (unsigned int i = 0; i != rs.FieldCount(); ++i) {
94 
95  if (buffer[i].is_valid()) {
96 
97  JRedirectString redirect(reader, rs.GetString(i));
98 
100  }
101  }
102 
103  return object;
104  }
JROOT::JRootReader reader
Definition: JDBReader.hh:108
static JRootReader & getObject(JRootReader &reader, T &object)
Read object.
do set_variable OUTPUT_DIRECTORY $WORKDIR T
bool is_valid(const json &js)
Check validity of JSon data.
std::vector< JROOT::JRootReadableClass > buffer
Definition: JDBReader.hh:110
static const std::string SPECIAL_CHARACTERS
Special characters.
Definition: JDBReader.hh:33

Member Data Documentation

template<class T>
T JDATABASE::JDBReader< T >::object
private

Definition at line 107 of file JDBReader.hh.

template<class T>
JROOT::JRootReader JDATABASE::JDBReader< T >::reader
private

Definition at line 108 of file JDBReader.hh.

template<class T>
std::vector<JROOT::JRootReadableClass> JDATABASE::JDBReader< T >::buffer
private

Definition at line 110 of file JDBReader.hh.


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