Jpp  15.0.2
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Protected Attributes | Private Attributes | List of all members
JSUPPORT::JMultipleFileScanner< JTriggerParameters > Class Template Referenceabstract

Template specialisation of JMultipleFileScanner for trigger parameters. More...

#include <JTriggerParametersSupportkit.hh>

Inheritance diagram for JSUPPORT::JMultipleFileScanner< JTriggerParameters >:
JSUPPORT::JMultipleFileScanner<> JLANG::JRewindableAbstractObjectIterator< T > JLANG::JRewindableObjectIterator< T > JLANG::JRewindableObjectIterator< T > JLANG::JAbstractObjectIterator< T > JLANG::JObjectIterator< T > JLANG::JRewindable< T > JLANG::JObjectIterator< T > JLANG::JRewindable< T > JLANG::JObjectIterator< T >

Public Types

typedef
JMultipleFileScanner::input_type 
input_type
 
typedef
JRewindableObjectIterator
< JNullType >::pointer_type 
pointer_type
 
typedef JObjectIterator< T >
::pointer_type 
pointer_type
 

Public Member Functions

 JMultipleFileScanner ()
 Default constructor. More...
 
 JMultipleFileScanner (const JMultipleFileScanner_t &file_list)
 Copy constructor. More...
 
virtual void rewind () override
 Rewind. More...
 
virtual bool setObject (JTriggerParameters &object) override
 Set object. More...
 
const JTriggerParametersgetTriggerParameters ()
 Get trigger parameters. More...
 
const std::string & getFilename () const
 Get current file name. More...
 
counter_type getCounter () const
 Get counter. More...
 
virtual bool hasNext () override
 Check availability of next element. More...
 
virtual const pointer_typenext () override
 Get next element. More...
 
virtual skip_type skip (const skip_type ns) override
 Skip items. More...
 
virtual skip_type skip (const skip_type ns)
 Skip items. More...
 
virtual bool hasNext () override
 Check availability of next element. More...
 
virtual const pointer_typenext () override
 Get next element. More...
 
virtual bool setObject (T &object)=0
 Set object. More...
 

Protected Attributes

JFileScanner< JNullTypescanner
 
unsigned int index
 
counter_type counter
 
T object
 object More...
 
bool has_next
 status More...
 

Private Attributes

bool do_next
 

Detailed Description

template<>
class JSUPPORT::JMultipleFileScanner< JTriggerParameters >

Template specialisation of JMultipleFileScanner for trigger parameters.

This class re-implements the methods rewind and setObject of the JLANG::JRewindableAbstractObjectIterator interface so that all trigger parameter objects in the complete file list are read and checked for consistency.

Definition at line 32 of file JTriggerParametersSupportkit.hh.

Member Typedef Documentation

Definition at line 279 of file JMultipleFileScanner.hh.

Definition at line 280 of file JMultipleFileScanner.hh.

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

Definition at line 39 of file JAbstractObjectIterator.hh.

Constructor & Destructor Documentation

Copy constructor.

The file list is copied.

Parameters
file_listJMultipleFileScanner

Definition at line 53 of file JTriggerParametersSupportkit.hh.

53  :
56  do_next(true)
57  {
58  configure(file_list, JLimit());
59  }
Auxiliary class for defining the range of iterations of objects.
Definition: JLimit.hh:41
void configure(const T &value, const JAbstractCollection< JAbscissa_t > &bounds, JBool< false > option)
Configuration of value.

Member Function Documentation

virtual void JSUPPORT::JMultipleFileScanner< JTriggerParameters >::rewind ( )
inlineoverridevirtual

Rewind.

Reimplemented from JSUPPORT::JMultipleFileScanner<>.

Definition at line 65 of file JTriggerParametersSupportkit.hh.

virtual bool JSUPPORT::JMultipleFileScanner< JTriggerParameters >::setObject ( JTriggerParameters object)
inlineoverridevirtual

Set object.

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

Definition at line 77 of file JTriggerParametersSupportkit.hh.

78  {
79  if (do_next) {
80 
81  using namespace JLANG;
82 
83  object = JTriggerParameters();
84  do_next = false;
85 
86  unsigned int count = 0;
87 
89 
90  for (const_iterator i = this->begin(); i != this->end(); ++i) {
91 
92  scanner.open(i->c_str());
93 
94  if (scanner.hasNext()) {
95 
96  const JTriggerParameters* __p = scanner.next();
97 
98  if (count == 0)
99  object = *__p;
100  else if (!object.equals(*__p))
101  throw JException("JMultipleFileScanner<JTriggerParameters>::setObject(): inconsistent trigger parameters.");
102 
103  ++count;
104  }
105 
106  scanner.close();
107  }
108 
109  return count != 0;
110 
111  } else {
112 
113  return false;
114  }
115  }
General exception.
Definition: JException.hh:23
virtual void open(const char *file_name) override
Open file.
Definition: JFileScanner.hh:66
virtual const pointer_type & next()=0
Get next element.
virtual bool hasNext()=0
Check availability of next element.
virtual void close() override
Close device.
std::vector< int > count
Definition: JAlgorithm.hh:180
Object reading from file.
Definition: JFileScanner.hh:36
bool equals(const JFirst_t &first, const JSecond_t &second, const double precision=std::numeric_limits< double >::min())
Check equality.
Definition: JMathToolkit.hh:86
const JTriggerParameters& JSUPPORT::JMultipleFileScanner< JTriggerParameters >::getTriggerParameters ( )
inline

Get trigger parameters.

Returns
trigger parameters

Definition at line 123 of file JTriggerParametersSupportkit.hh.

124  {
125  const JTriggerParameters* p = NULL;
126 
127  if (!this->hasNext() || (p = this->next()) == NULL) {
128  throw JNullPointerException("JMultipleFileScanner<JTriggerParameters>::getTriggerParameters(): Missing trigger parameters.");
129  }
130 
131  rewind();
132 
133  return *p;
134  }
Exception for null pointer operation.
Definition: JException.hh:216
virtual bool hasNext() override
Check availability of next element.
virtual const pointer_type & next() override
Get next element.
const std::string& JSUPPORT::JMultipleFileScanner< JNullType >::getFilename ( ) const
inlineinherited

Get current file name.

Note that this method should only be called when method hasNext() returns true.

Returns
file name

Definition at line 341 of file JMultipleFileScanner.hh.

342  {
343  return this->at(index);
344  }
counter_type JSUPPORT::JMultipleFileScanner< JNullType >::getCounter ( ) const
inlineinherited

Get counter.

Returns
counter

Definition at line 352 of file JMultipleFileScanner.hh.

353  {
354  return counter;
355  }
virtual bool JSUPPORT::JMultipleFileScanner< JNullType >::hasNext ( )
inlineoverridevirtualinherited

Check availability of next element.

Returns
true if the iteration has more elements; else false

Implements JLANG::JObjectIterator< T >.

Definition at line 379 of file JMultipleFileScanner.hh.

380  {
381  if (is_valid()) {
382 
383  if (counter < getUpperLimit() && index != this->size()) {
384 
385  // first time around
386 
387  if (!scanner.is_open()) {
388  scanner.open(getFilename().c_str());
389  }
390 
391  if (counter < getLowerLimit()) {
392  counter += scanner.skip(getLowerLimit() - counter);
393  }
394 
395  if (!scanner.hasNext()) {
396 
397  scanner.close();
398 
399  ++index;
400 
401  return hasNext();
402  }
403 
404  return true;
405 
406  } else {
407 
408  // last time around
409 
410  if (scanner.is_open()) {
411  scanner.close();
412  }
413 
414  scanner.reset();
415  }
416  }
417 
418  return false;
419  }
virtual skip_type skip(const skip_type ns)
Skip items.
virtual void open(const char *file_name) override
Open file.
Definition: JFileScanner.hh:66
virtual bool hasNext() override
Check availability of next element.
bool is_valid(const json &js)
Check validity of JSon data.
virtual bool hasNext()=0
Check availability of next element.
virtual bool is_open() const override
Check is device is open.
const std::string & getFilename() const
Get current file name.
virtual void close() override
Close device.
virtual void reset() override
Reset pointer.
virtual const pointer_type& JSUPPORT::JMultipleFileScanner< JNullType >::next ( )
inlineoverridevirtualinherited

Get next element.

Returns
pointer to element

Implements JLANG::JObjectIterator< T >.

Definition at line 427 of file JMultipleFileScanner.hh.

428  {
429  ++counter;
430 
431  return scanner.next();
432  }
virtual const pointer_type & next()=0
Get next element.
virtual skip_type JSUPPORT::JMultipleFileScanner< JNullType >::skip ( const skip_type  ns)
inlineoverridevirtualinherited

Skip items.

Parameters
nsnumber of items to skip
Returns
number of items skipped

Reimplemented in JSUPPORT::JMultipleFileScanner< JTypeList< JHead_t, JTail_t > >.

Definition at line 441 of file JMultipleFileScanner.hh.

442  {
443  skip_type i = 0;
444 
445  while (this->hasNext() && i != ns) {
446  i += scanner.skip(ns - i);
447  }
448 
449  counter += i;
450 
451  return i;
452  }
unsigned int skip_type
Type definition for number of objects to skip.
virtual skip_type skip(const skip_type ns)
Skip items.
virtual bool hasNext() override
Check availability of next element.
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::JPipe< T >, JLANG::JPipe< JTail_t >, JLANG::JPipe< JHead_t >, JLANG::JSTDObjectIterator< T >, JLANG::JAbstractObjectReader< T >, JLANG::JAbstractObjectReader< JNullType >, JLANG::JAbstractObjectReader< const T >, JLANG::JAbstractObjectReader< JTail_t >, JLANG::JAbstractObjectReader< JHead_t >, JLANG::JAbstractObjectReader< KM3NETDAQ::KM3NETDAQ::JDAQEvent >, JLANG::JAbstractObjectReader< JDAQSummaryslice >, and JLANG::JAbstractObjectReader< JTypeList< JDAQEvent, JTypelist_t > >.

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  }
unsigned int skip_type
Type definition for number of objects to skip.
virtual const pointer_type & next()=0
Get next element.
virtual bool hasNext()=0
Check availability of next element.
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.
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
template<class T>
virtual bool JLANG::JAbstractObjectIterator< T >::setObject ( T object)
pure virtualinherited

Member Data Documentation

Definition at line 138 of file JTriggerParametersSupportkit.hh.

Definition at line 456 of file JMultipleFileScanner.hh.

unsigned int JSUPPORT::JMultipleFileScanner< JNullType >::index
protectedinherited

Definition at line 457 of file JMultipleFileScanner.hh.

counter_type JSUPPORT::JMultipleFileScanner< JNullType >::counter
protectedinherited

Definition at line 458 of file JMultipleFileScanner.hh.

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

object

Definition at line 34 of file JAbstractObjectIterator.hh.

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

status

Definition at line 35 of file JAbstractObjectIterator.hh.


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