Jpp test-rotations-old
the software that should make you happy
Loading...
Searching...
No Matches
JDATABASE::JDatabaseObjectIterator< T > Class Template Reference

Object iteration from database. More...

#include <JDatabaseObjectIterator.hh>

Inheritance diagram for JDATABASE::JDatabaseObjectIterator< T >:
JLANG::JAbstractObjectIterator< T > JLANG::JObjectIterator< T >

Public Types

typedef JObjectIterator< T >::pointer_type pointer_type
 

Public Member Functions

 JDatabaseObjectIterator (const JSelector &selection)
 Constructor.
 
 JDatabaseObjectIterator (const std::string &query, const JSelector &selection)
 Constructor.
 
 ~JDatabaseObjectIterator ()
 Destructor.
 
virtual bool setObject (T &object) override
 Set object.
 
virtual bool hasNext () override
 Check availability of next element.
 
virtual const pointer_typenext () override
 Get next element.
 
virtual skip_type skip (const skip_type ns)
 Skip items.
 

Protected Attributes

object
 object
 
bool has_next
 status
 

Private Attributes

ResultSet & rs
 
pointer_type ps
 

Detailed Description

template<class T>
class JDATABASE::JDatabaseObjectIterator< T >

Object iteration from database.

This class implements the JLANG::JObjectIterator interface.

Definition at line 52 of file JDatabaseObjectIterator.hh.

Member Typedef Documentation

◆ pointer_type

template<class T >
JObjectIterator<T>::pointer_type JLANG::JAbstractObjectIterator< T >::pointer_type
inherited

Definition at line 39 of file JAbstractObjectIterator.hh.

Constructor & Destructor Documentation

◆ JDatabaseObjectIterator() [1/2]

template<class T >
JDATABASE::JDatabaseObjectIterator< T >::JDatabaseObjectIterator ( const JSelector & selection)
inline

Constructor.

Parameters
selectionselection

Definition at line 61 of file JDatabaseObjectIterator.hh.

61 :
62 rs(getResultSet(getTable<T>(), selection))
63 {
64 JDBReader<T>::set(selection);
65 }
ResultSet & getResultSet(const std::string &query)
Get result set.
Definition JDB.hh:438
const char * getTable()
Get table name.
Definition JDB.hh:373
static void set(const std::vector< Selector > &selection)
Set default value corresponding to given selection.
Definition JDBReader.hh:122

◆ JDatabaseObjectIterator() [2/2]

template<class T >
JDATABASE::JDatabaseObjectIterator< T >::JDatabaseObjectIterator ( const std::string & query,
const JSelector & selection )
inline

Constructor.

This constructor is used to select a table by name.

Parameters
queryquery / table name
selectionselection

Definition at line 76 of file JDatabaseObjectIterator.hh.

76 :
77 rs(query == getTable<T>() ? getResultSet(query, selection) : JNullResultSet::getInstance())
78 {
79 JDBReader<T>::set(selection);
80 }
static data_type & getInstance()
Get unique instance of template class.
Definition JSingleton.hh:27

◆ ~JDatabaseObjectIterator()

template<class T >
JDATABASE::JDatabaseObjectIterator< T >::~JDatabaseObjectIterator ( )
inline

Destructor.

Definition at line 86 of file JDatabaseObjectIterator.hh.

87 {
88 //rs.Close();
89 }

Member Function Documentation

◆ setObject()

template<class T >
virtual bool JDATABASE::JDatabaseObjectIterator< T >::setObject ( T & object)
inlineoverridevirtual

Set object.

Parameters
objectreference to object to be set
Returns
true if set; else false

Implements JLANG::JAbstractObjectIterator< T >.

Definition at line 98 of file JDatabaseObjectIterator.hh.

99 {
100 return (rs >> object);
101 }

◆ hasNext()

template<class T >
virtual bool JLANG::JAbstractObjectIterator< T >::hasNext ( )
inlineoverridevirtualinherited

Check availability of next element.

Returns
true if the iteration has more elements; else false

Implements JLANG::JObjectIterator< T >.

Definition at line 56 of file JAbstractObjectIterator.hh.

57 {
58 if (!has_next) {
59 has_next = this->setObject(object);
60 }
61
62 return has_next;
63 }
virtual bool setObject(T &object)=0
Set object.

◆ next()

template<class T >
virtual const pointer_type & JLANG::JAbstractObjectIterator< T >::next ( )
inlineoverridevirtualinherited

Get next element.

Returns
pointer to element

Implements JLANG::JObjectIterator< T >.

Definition at line 71 of file JAbstractObjectIterator.hh.

72 {
73 if (has_next)
74 ps.reset(&this->object);
75 else
76 ps.reset(NULL);
77
78 has_next = false;
79
80 return ps;
81 }
virtual void reset() override
Reset pointer.
Definition JPointer.hh:84

◆ skip()

template<class T >
virtual skip_type JLANG::JObjectIterator< T >::skip ( const skip_type ns)
inlinevirtualinherited

Skip items.

Parameters
nsnumber of items to skip
Returns
number of items skipped

Reimplemented in JLANG::JAbstractObjectReader< T >, JLANG::JAbstractObjectReader< const event_type >, JLANG::JAbstractObjectReader< Evt >, JLANG::JAbstractObjectReader< JDAQSummaryslice >, JLANG::JAbstractObjectReader< JHead_t >, JLANG::JAbstractObjectReader< JTail_t >, JLANG::JAbstractObjectReader< JTypeList< JDAQEvent, JNullType > >, JLANG::JAbstractObjectReader< KM3NETDAQ::JDAQEvent >, JLANG::JPipe< T >, JLANG::JPipe< JHead_t >, JLANG::JPipe< JTail_t >, JLANG::JSTDObjectIterator< T >, JROOT::JRootFileReader< T, false >, JROOT::JTreeReaderObjectIterator< T >, JSUPPORT::JMultipleFileScanner< T >, JSUPPORT::JMultipleFileScanner< Evt >, JSUPPORT::JMultipleFileScanner< JDAQSummaryslice >, JSUPPORT::JMultipleFileScanner< JHead_t >, JSUPPORT::JMultipleFileScanner< JTail_t >, JSUPPORT::JMultipleFileScanner< JTypeList< JDAQEvent, JNullType > >, JSUPPORT::JMultipleFileScanner< JTypeList< JHead_t, JTail_t > >, JSUPPORT::JMultipleFileScanner< KM3NETDAQ::JDAQEvent >, JSUPPORT::JMultipleFileScanner<>, JSUPPORT::JSingleFileScanner< T >, JSUPPORT::JSingleFileScanner< JHead_t >, JSUPPORT::JSingleFileScanner< JTail_t >, JSUPPORT::JSingleFileScanner< JTypeList< JHead_t, JTail_t > >, and JSUPPORT::JSingleFileScanner<>.

Definition at line 90 of file JObjectIterator.hh.

91 {
92 skip_type i = 0;
93
94 for ( ; i != ns && hasNext(); ++i) {
95 next();
96 }
97
98 return i;
99 }
virtual bool hasNext()=0
Check availability of next element.
virtual const pointer_type & next()=0
Get next element.
unsigned int skip_type
Type definition for number of objects to skip.

Member Data Documentation

◆ rs

template<class T >
ResultSet& JDATABASE::JDatabaseObjectIterator< T >::rs
private

Definition at line 104 of file JDatabaseObjectIterator.hh.

◆ object

template<class T >
T JLANG::JAbstractObjectIterator< T >::object
protectedinherited

object

Definition at line 34 of file JAbstractObjectIterator.hh.

◆ has_next

template<class T >
bool JLANG::JAbstractObjectIterator< T >::has_next
protectedinherited

status

Definition at line 35 of file JAbstractObjectIterator.hh.

◆ ps

template<class T >
pointer_type JLANG::JAbstractObjectIterator< T >::ps
privateinherited

Definition at line 84 of file JAbstractObjectIterator.hh.


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