Jpp
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 <JDB.hh>

Public Member Functions

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

Private Attributes

object
 
JROOT::JRootReader reader
 
std::vector< JROOT::JRootReadableClassbuffer
 

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 216 of file JDB.hh.

Constructor & Destructor Documentation

◆ JDBReader()

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

Default constructor.

Definition at line 220 of file JDB.hh.

Member Function Documentation

◆ reset()

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

Reset.

Definition at line 229 of file JDB.hh.

230  {
231  buffer.clear();
232  }

◆ operator()()

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 241 of file JDB.hh.

242  {
243  using namespace std;
244  using namespace JPP;
245 
246  object = T();
247 
248  if (buffer.empty()) {
249 
250  JRootReadableClass cls(object);
251 
252  for (size_t i = 0; i != rs.FieldCount(); ++i) {
253 
254  string parameter = rs.FieldName(i);
255 
256  for (string::const_iterator i = SPECIAL_CHARACTERS.begin(); i != SPECIAL_CHARACTERS.end(); ++i) {
257  for (string::size_type pos; (pos = parameter.find(*i)) != string::npos; ) {
258  parameter.erase(pos);
259  }
260  }
261 
262  buffer.push_back(cls.find(parameter.c_str()));
263  }
264  }
265 
266  for (unsigned int i = 0; i != rs.FieldCount(); ++i) {
267 
268  if (buffer[i].is_valid()) {
269 
270  JRedirectString redirect(reader, rs.GetString(i));
271 
272  reader.getObject(buffer[i]);
273  }
274  }
275 
276  return object;
277  }

Member Data Documentation

◆ object

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

Definition at line 280 of file JDB.hh.

◆ reader

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

Definition at line 281 of file JDB.hh.

◆ buffer

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

Definition at line 283 of file JDB.hh.


The documentation for this struct was generated from the following file:
JAANET::is_valid
bool is_valid(const T &value)
Check validity of given value.
Definition: JHead.hh:823
JLANG::JSingleton::getInstance
static data_type & getInstance()
Get unique instance of template class.
Definition: JSingleton.hh:27
JLANG::null
static JNullStream null
Null I/O stream.
Definition: JNullStream.hh:51
JDATABASE::JDBReader::reader
JROOT::JRootReader reader
Definition: JDB.hh:281
JPP
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Definition: JAAnetToolkit.hh:37
JROOT::JRootReader::getObject
static JRootReader & getObject(JRootReader &reader, T &object)
Read object.
Definition: JRootStreamer.hh:129
JLANG::JEquationParameters
Simple data structure to support I/O of equations (see class JLANG::JEquation).
Definition: JEquationParameters.hh:20
JDATABASE::JDBReader::object
T object
Definition: JDB.hh:280
std
Definition: jaanetDictionary.h:36
JDATABASE::JDBReader::buffer
std::vector< JROOT::JRootReadableClass > buffer
Definition: JDB.hh:283
JDATABASE::SPECIAL_CHARACTERS
static const std::string SPECIAL_CHARACTERS
Special characters.
Definition: JDB.hh:74