Jpp
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
JLANG::JObjectReader< T > Struct Template Referenceabstract

Auxiliary class for object reading. More...

#include <JObjectReader.hh>

Inheritance diagram for JLANG::JObjectReader< T >:
JLANG::JObjectIterator< T > JLANG::JAbstractObjectReader< T > JLANG::JSharedPointer< JObjectIterator< T > > JLANG::JObjectIterator< T > JLANG::JSharedCounter JLANG::JStorage< JObjectIterator< T >, JNew > JLANG::JPointer< JObjectIterator< T > > JLANG::JNew< JObjectIterator< T > > JLANG::JAbstractPointer< JObjectIterator< T > > JLANG::JEquals< JAbstractPointer< JObjectIterator< T > > >

Public Types

typedef JSharedPointer< JObjectIterator< T > > helper_type
 
typedef JObjectIterator< T >::pointer_type pointer_type
 
typedef JStorage< JObjectIterator< T >, JNewstorage_type
 
typedef JNew< JObjectIterator< T > > memory_type
 

Public Member Functions

 JObjectReader ()
 Default constructor. More...
 
virtual JObjectIterator< T > * getHelper () const
 Get helper. More...
 
virtual bool hasNext ()=0
 Check availability of next element. More...
 
virtual const pointer_typenext ()=0
 Get next element. More...
 
virtual skip_type skip (const skip_type ns)
 Skip items. More...
 
virtual bool hasNext ()
 Check availability of next element. More...
 
virtual const pointer_typenext ()
 Get next element. More...
 
virtual skip_type skip (const skip_type ns)
 Skip items. More...
 
const JSharedPointergetSharedPointer () const
 Get shared pointer. More...
 
JSharedPointergetSharedPointer ()
 Get shared pointer. More...
 
void setSharedPointer (const JSharedPointer &object)
 Set shared pointer. More...
 
virtual void reset ()
 Reset pointer. More...
 
virtual void reset ()
 Reset pointer. More...
 
void reset (const JPointer< T > &pointer)
 Reset pointer. More...
 
void reset (const JPointer< T > &pointer)
 Reset pointer. More...
 
void reset (JObjectIterator< T > *p)
 Reset pointer. More...
 
void set (const JPointer< T > &pointer)
 Set pointer. More...
 
void initialise ()
 Initialise counter. More...
 
void attach (const JSharedCounter &object)
 Attach this counter to given shared counter object. More...
 
bool detach ()
 Detach. More...
 
void recreate ()
 Recreate object in memory. More...
 
void create ()
 Create object in memory. More...
 
void create (const unsigned int size)
 Create array of objects in memory. More...
 
virtual JObjectIterator< T > * get () const
 Get pointer. More...
 
JObjectIterator< T > *const & getReference () const
 Get rereference to internal pointer. More...
 
JObjectIterator< T > *& getReference ()
 Get rereference to internal pointer. More...
 
virtual bool equals (const JAbstractPointer &object) const
 Equals. More...
 
bool is_valid () const
 Check validity of pointer. More...
 
JObjectIterator< T > * operator-> () const
 Smart pointer operator. More...
 
 operator JObjectIterator< T > * () const
 Type conversion operator. More...
 

Static Public Member Functions

static void release (JObjectIterator< T > *p)
 Release memory. More...
 

Protected Member Functions

void set (const JSharedPointer &object)
 Set pointer. More...
 
virtual void set (JObjectIterator< T > *p)
 Set pointer. More...
 
void release ()
 Release memory. More...
 

Protected Attributes

int * counter
 
JObjectIterator< T > * __p
 pointer to object More...
 

Private Attributes

pointer_type ps
 

Detailed Description

template<class T>
struct JLANG::JObjectReader< T >

Auxiliary class for object reading.

This class implements the JAbstractObjectReader interface.

Definition at line 23 of file JObjectReader.hh.

Member Typedef Documentation

◆ helper_type

template<class T >
typedef JSharedPointer< JObjectIterator<T> > JLANG::JObjectReader< T >::helper_type

Definition at line 29 of file JObjectReader.hh.

◆ pointer_type

template<class T >
typedef JObjectIterator<T>::pointer_type JLANG::JObjectReader< T >::pointer_type

Definition at line 30 of file JObjectReader.hh.

◆ storage_type

Definition at line 35 of file JSharedPointer.hh.

◆ memory_type

typedef JNew <JObjectIterator< T > > JLANG::JStorage< JObjectIterator< T > , JNew >::memory_type
inherited

Definition at line 33 of file JStorage.hh.

Constructor & Destructor Documentation

◆ JObjectReader()

template<class T >
JLANG::JObjectReader< T >::JObjectReader ( )
inline

Default constructor.

Definition at line 35 of file JObjectReader.hh.

36  {}

Member Function Documentation

◆ getHelper()

template<class T >
virtual JObjectIterator<T>* JLANG::JObjectReader< T >::getHelper ( ) const
inlinevirtual

Get helper.

Returns
helper

Implements JLANG::JAbstractObjectReader< T >.

Definition at line 44 of file JObjectReader.hh.

45  {
46  return this->get();
47  }

◆ hasNext() [1/2]

template<class T>
virtual bool JLANG::JObjectIterator< T >::hasNext ( )
pure virtualinherited

Check availability of next element.

Returns
true if the iteration has more elements; else false

Implemented in JSUPPORT::JMultipleFileScanner< T >, JSUPPORT::JMultipleFileScanner<>, JSUPPORT::JMultipleFileScanner< JTail_t >, JSUPPORT::JMultipleFileScanner< JHead_t >, JSUPPORT::JMultipleFileScanner< KM3NETDAQ::JDAQEvent >, JSUPPORT::JMultipleFileScanner< JDAQSummaryslice >, JSUPPORT::JMultipleFileScanner< JTypeList< JDAQEvent, JTypelist_t > >, JLANG::JNullIterator< T >, JSUPPORT::JSingleFileScanner< T >, JSUPPORT::JSingleFileScanner<>, JSUPPORT::JSingleFileScanner< JTail_t >, JSUPPORT::JSingleFileScanner< JHead_t >, JLANG::JObjectMultiplexer< JTypeList< JHead_t, JTail_t >, JBase_t >, JROOT::JRootFileReader< T, false >, JGIZMO::JMarkerAttributes, JGIZMO::JLineAttributes, JSUPPORT::JTriggeredFileScanner< JTypelist_t >, JLANG::JObjectSampler< T, JSampler_t >, JLANG::JSTDObjectIterator< T >, JLANG::JObjectSampler< JDAQSummaryslice, JRandomSampler >, JROOT::JTreeReaderObjectIterator< T >, JLANG::JPipe< T >, JLANG::JPipe< JTail_t >, JLANG::JPipe< JHead_t >, JLANG::JObjectMultiplexer< JDerived_t, JBase_t >, JLANG::JObjectMultiplexer< JHead_t, JBase_t >, JLANG::JObjectMultiplexer< JTail_t, JBase_t >, JLANG::JAbstractObjectIterator< T >, JLANG::JAbstractObjectIterator< Head >, JLANG::JAbstractObjectIterator< JTail_t >, JLANG::JAbstractObjectIterator< JHead_t >, JLANG::JAbstractObjectIterator< JTriggerParameters >, JLANG::JAbstractObjectIterator< JPhotonPath >, JLANG::JAbstractObjectReader< T >, JLANG::JConversionIterator< JInput_t, JOutput_t >, JLANG::JAbstractObjectReader< const T >, JLANG::JAbstractObjectReader< JTail_t >, JLANG::JAbstractObjectReader< JHead_t >, JLANG::JAbstractObjectReader< KM3NETDAQ::JDAQEvent >, JLANG::JAbstractObjectReader< JDAQSummaryslice >, and JLANG::JAbstractObjectReader< JTypeList< JDAQEvent, JTypelist_t > >.

◆ next() [1/2]

template<class T>
virtual const pointer_type& JLANG::JObjectIterator< T >::next ( )
pure virtualinherited

Get next element.

Returns
pointer to element

Implemented in JSUPPORT::JMultipleFileScanner< T >, JSUPPORT::JMultipleFileScanner<>, JSUPPORT::JMultipleFileScanner< JTail_t >, JSUPPORT::JMultipleFileScanner< JHead_t >, JSUPPORT::JMultipleFileScanner< KM3NETDAQ::JDAQEvent >, JSUPPORT::JMultipleFileScanner< JDAQSummaryslice >, JSUPPORT::JMultipleFileScanner< JTypeList< JDAQEvent, JTypelist_t > >, JLANG::JNullIterator< T >, JSUPPORT::JSingleFileScanner< T >, JSUPPORT::JSingleFileScanner<>, JSUPPORT::JSingleFileScanner< JTail_t >, JSUPPORT::JSingleFileScanner< JHead_t >, JLANG::JObjectMultiplexer< JTypeList< JHead_t, JTail_t >, JBase_t >, JROOT::JRootFileReader< T, false >, JGIZMO::JMarkerAttributes, JLANG::JObjectSampler< T, JSampler_t >, JLANG::JObjectSampler< JDAQSummaryslice, JRandomSampler >, JGIZMO::JLineAttributes, JLANG::JPipe< T >, JLANG::JPipe< JTail_t >, JLANG::JPipe< JHead_t >, JSUPPORT::JTriggeredFileScanner< JTypelist_t >, JROOT::JTreeReaderObjectIterator< T >, JLANG::JSTDObjectIterator< T >, JLANG::JObjectMultiplexer< JDerived_t, JBase_t >, JLANG::JObjectMultiplexer< JHead_t, JBase_t >, JLANG::JObjectMultiplexer< JTail_t, JBase_t >, JLANG::JAbstractObjectIterator< T >, JLANG::JAbstractObjectIterator< Head >, JLANG::JAbstractObjectIterator< JTail_t >, JLANG::JAbstractObjectIterator< JHead_t >, JLANG::JAbstractObjectIterator< JTriggerParameters >, JLANG::JAbstractObjectIterator< JPhotonPath >, JSUPPORT::JParallelFileScanner< JTypeList< JDAQEvent, JTypelist_t >, JMultipleFileScanner >, JLANG::JAbstractObjectReader< T >, JLANG::JConversionIterator< JInput_t, JOutput_t >, JLANG::JAbstractObjectReader< const T >, JLANG::JAbstractObjectReader< JTail_t >, JLANG::JAbstractObjectReader< JHead_t >, JLANG::JAbstractObjectReader< KM3NETDAQ::JDAQEvent >, JLANG::JAbstractObjectReader< JDAQSummaryslice >, and JLANG::JAbstractObjectReader< JTypeList< JDAQEvent, JTypelist_t > >.

◆ skip() [1/2]

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

◆ hasNext() [2/2]

template<class T>
virtual bool JLANG::JAbstractObjectReader< T >::hasNext ( )
inlinevirtualinherited

Check availability of next element.

Returns
true if the iteration has more elements; else false

Implements JLANG::JObjectIterator< T >.

Definition at line 43 of file JAbstractObjectReader.hh.

44  {
45  return (this->getHelper() != NULL && this->getHelper()->hasNext());
46  }

◆ next() [2/2]

template<class T>
virtual const pointer_type& JLANG::JAbstractObjectReader< T >::next ( )
inlinevirtualinherited

Get next element.

Returns
pointer to element

Implements JLANG::JObjectIterator< T >.

Definition at line 54 of file JAbstractObjectReader.hh.

55  {
56  if (this->getHelper() != NULL)
57  return this->getHelper()->next();
58  else
59  return ps;
60  }

◆ skip() [2/2]

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

Skip items.

Parameters
nsnumber of items to skip
Returns
number of items skipped

Reimplemented from JLANG::JObjectIterator< T >.

Definition at line 69 of file JAbstractObjectReader.hh.

70  {
71  if (this->getHelper() != NULL)
72  return this->getHelper()->skip(ns);
73  else
74  return 0;
75  }

◆ getSharedPointer() [1/2]

const JSharedPointer& JLANG::JSharedPointer< JObjectIterator< T > , JNew >::getSharedPointer ( ) const
inlineinherited

Get shared pointer.

Returns
this shared pointer

Definition at line 95 of file JSharedPointer.hh.

96  {
97  return static_cast<const JSharedPointer&>(*this);
98  }

◆ getSharedPointer() [2/2]

JSharedPointer& JLANG::JSharedPointer< JObjectIterator< T > , JNew >::getSharedPointer ( )
inlineinherited

Get shared pointer.

Returns
this shared pointer

Definition at line 106 of file JSharedPointer.hh.

107  {
108  return static_cast<JSharedPointer&>(*this);
109  }

◆ setSharedPointer()

void JLANG::JSharedPointer< JObjectIterator< T > , JNew >::setSharedPointer ( const JSharedPointer< JObjectIterator< T > > &  object)
inlineinherited

Set shared pointer.

Parameters
objectshared pointer

Definition at line 117 of file JSharedPointer.hh.

118  {
119  if (this->get() != object.get()) {
120 
121  this->reset();
122 
123  if (object.is_valid()) {
124  this->set(object);
125  }
126  }
127  }

◆ reset() [1/5]

virtual void JLANG::JSharedPointer< JObjectIterator< T > , JNew >::reset ( )
inlinevirtualinherited

Reset pointer.

The reference counter is decremented by one and the object pointed to previously is deleted when its reference counter is zero.

Reimplemented from JLANG::JStorage< JObjectIterator< T >, JNew >.

Definition at line 171 of file JSharedPointer.hh.

172  {
173  if (this->detach()) {
175  }
176 
178  }

◆ reset() [2/5]

virtual void JLANG::JPointer< JObjectIterator< T > >::reset
inlineinherited

Reset pointer.

Definition at line 84 of file JPointer.hh.

85  {
86  this->__p = NULL;
87  }

◆ reset() [3/5]

void JLANG::JPointer< JObjectIterator< T > >::reset ( class T  )
inlineinherited

Reset pointer.

Parameters
pointerpointer to object

Definition at line 108 of file JPointer.hh.

109  {
110  this->reset(pointer.get());
111  }

◆ reset() [4/5]

void JLANG::JPointer< JObjectIterator< T > >::reset ( const JPointer< T > &  pointer)
inlineinherited

Reset pointer.

Parameters
pointerpointer to object

Definition at line 108 of file JPointer.hh.

109  {
110  this->reset(pointer.get());
111  }

◆ reset() [5/5]

void JLANG::JAbstractPointer< JObjectIterator< T > >::reset ( JObjectIterator< T > *  p)
inlineinherited

Reset pointer.

Parameters
ppointer to object

Definition at line 94 of file JAbstractPointer.hh.

95  {
96  if (this->get() != p) {
97 
98  this->reset();
99 
100  if (p != NULL) {
101  this->set(p);
102  }
103  }
104  }

◆ set() [1/3]

void JLANG::JSharedPointer< JObjectIterator< T > , JNew >::set ( const JSharedPointer< JObjectIterator< T > > &  object)
inlineprotectedinherited

Set pointer.

The reference counter of the shared object pointed to is incremented by one.

Parameters
objectshared pointer

Definition at line 188 of file JSharedPointer.hh.

189  {
190  pointer_type::set(object.get());
191 
192  this->attach(object);
193  }

◆ set() [2/3]

virtual void JLANG::JSharedPointer< JObjectIterator< T > , JNew >::set ( JObjectIterator< T > *  p)
inlineprotectedvirtualinherited

Set pointer.

The reference counter of the shared object pointed to is initialised to one.

Parameters
ppointer to derived class object

Reimplemented from JLANG::JPointer< JObjectIterator< T > >.

Definition at line 202 of file JSharedPointer.hh.

203  {
204  pointer_type::set(p);
205 
206  this->initialise();
207  }

◆ set() [3/3]

void JLANG::JPointer< JObjectIterator< T > >::set ( const JPointer< T > &  pointer)
inlineinherited

Set pointer.

Parameters
pointerpointer to object

Definition at line 96 of file JPointer.hh.

97  {
98  this->set(pointer.get());
99  }

◆ initialise()

void JLANG::JSharedCounter::initialise ( )
inlineinherited

Initialise counter.

Definition at line 33 of file JSharedCounter.hh.

34  {
35  detach();
36 
37  counter = new int(1);
38  }

◆ attach()

void JLANG::JSharedCounter::attach ( const JSharedCounter object)
inlineinherited

Attach this counter to given shared counter object.

Parameters
objectshared counter

Definition at line 46 of file JSharedCounter.hh.

47  {
48  detach();
49 
50  counter = object.counter;
51 
52  if (counter != NULL) {
53  ++(*counter);
54  }
55  }

◆ detach()

bool JLANG::JSharedCounter::detach ( )
inlineinherited

Detach.

Returns
true if counter at zero; else false

Definition at line 63 of file JSharedCounter.hh.

64  {
65  if (counter != NULL) {
66 
67  if (--(*counter) == 0) {
68 
69  delete counter;
70 
71  counter = NULL;
72 
73  return true;
74  }
75 
76  counter = NULL;
77  }
78 
79  return false;
80  }

◆ recreate()

void JLANG::JStorage< JObjectIterator< T > , JNew >::recreate ( )
inlineinherited

Recreate object in memory.

A new object is created if no memory is allocated yet, else the previously created object is maintained.

Definition at line 57 of file JStorage.hh.

58  {
59  if (!this->is_valid()) {
60  this->set(memory_type::create());
61  }
62  }

◆ create() [1/2]

void JLANG::JStorage< JObjectIterator< T > , JNew >::create ( )
inlineinherited

Create object in memory.

The memory allocated by a previously created object will be released.

Definition at line 69 of file JStorage.hh.

70  {
71  this->reset(memory_type::create());
72  }

◆ create() [2/2]

void JLANG::JStorage< JObjectIterator< T > , JNew >::create ( const unsigned int  size)
inlineinherited

Create array of objects in memory.

The memory allocated by previously created objects will be released.

Parameters
sizenumber of elements

Definition at line 81 of file JStorage.hh.

82  {
83  this->reset(memory_type::create(size));
84  }

◆ release() [1/2]

void JLANG::JStorage< JObjectIterator< T > , JNew >::release ( )
inlineprotectedinherited

Release memory.

Definition at line 91 of file JStorage.hh.

92  {
93  memory_type::release(this->get());
94  }

◆ release() [2/2]

static void JLANG::JNew< JObjectIterator< T > >::release ( JObjectIterator< T > *  p)
inlinestaticinherited

Release memory.

Parameters
ppointer to data

Definition at line 41 of file JMemory.hh.

42  {
43  delete p;
44  }

◆ get()

virtual JObjectIterator< T > * JLANG::JPointer< JObjectIterator< T > >::get ( ) const
inlinevirtualinherited

Get pointer.

Returns
pointer to object

Implements JLANG::JAbstractPointer< JObjectIterator< T > >.

Definition at line 64 of file JPointer.hh.

65  {
66  return this->__p;
67  }

◆ getReference() [1/2]

JObjectIterator< T > * const& JLANG::JPointer< JObjectIterator< T > >::getReference ( ) const
inlineinherited

Get rereference to internal pointer.

Returns
reference to internal pointer

Definition at line 119 of file JPointer.hh.

120  {
121  return __p;
122  }

◆ getReference() [2/2]

JObjectIterator< T > * & JLANG::JPointer< JObjectIterator< T > >::getReference ( )
inlineinherited

Get rereference to internal pointer.

Returns
reference to internal pointer

Definition at line 130 of file JPointer.hh.

131  {
132  return __p;
133  }

◆ equals()

virtual bool JLANG::JAbstractPointer< JObjectIterator< T > >::equals ( const JAbstractPointer< JObjectIterator< T > > &  object) const
inlinevirtualinherited

Equals.

The equality is evaluated by comparison of the internal pointers.

Parameters
objectabstract pointer
Returns
true if equals; else false

Definition at line 50 of file JAbstractPointer.hh.

51  {
52  return this->get() == object.get();
53  }

◆ is_valid()

bool JLANG::JAbstractPointer< JObjectIterator< T > >::is_valid ( ) const
inlineinherited

Check validity of pointer.

Returns
true if pointer not null; else false

Definition at line 83 of file JAbstractPointer.hh.

84  {
85  return this->get() != NULL;
86  }

◆ operator->()

JObjectIterator< T > * JLANG::JAbstractPointer< JObjectIterator< T > >::operator-> ( ) const
inlineinherited

Smart pointer operator.

Returns
pointer to object

Definition at line 112 of file JAbstractPointer.hh.

113  {
114  if (!is_valid())
115  throw JNullPointerException("JAbstractPointer::operator->()");
116  else
117  return this->get();
118  }

◆ operator JObjectIterator< T > *()

JLANG::JAbstractPointer< JObjectIterator< T > >::operator JObjectIterator< T > * ( ) const
inlineinherited

Type conversion operator.

Returns
pointer to object

Definition at line 126 of file JAbstractPointer.hh.

127  {
128  return this->get();
129  }

Member Data Documentation

◆ ps

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

Definition at line 78 of file JAbstractObjectReader.hh.

◆ counter

int* JLANG::JSharedCounter::counter
protectedinherited

Definition at line 83 of file JSharedCounter.hh.

◆ __p

JObjectIterator< T > * JLANG::JPointer< JObjectIterator< T > >::__p
protectedinherited

pointer to object

Definition at line 136 of file JPointer.hh.


The documentation for this struct was generated from the following file:
JLANG::JSharedCounter::detach
bool detach()
Detach.
Definition: JSharedCounter.hh:63
JLANG::skip_type
unsigned int skip_type
Type definition for number of objects to skip.
Definition: JObjectIterator.hh:25
JLANG::JPointer< JObjectIterator< T > >::get
virtual JObjectIterator< T > * get() const
Get pointer.
Definition: JPointer.hh:64
JLANG::JPointer< JObjectIterator< T > >::__p
JObjectIterator< T > * __p
pointer to object
Definition: JPointer.hh:136
JLANG::JSharedCounter::counter
int * counter
Definition: JSharedCounter.hh:83
JLANG::JAbstractObjectReader::ps
pointer_type ps
Definition: JAbstractObjectReader.hh:78
JLANG::JNullPointerException
Exception for null pointer operation.
Definition: JException.hh:216
JLANG::JAbstractObjectReader::getHelper
virtual JObjectIterator< T > * getHelper() const =0
Get helper.
JLANG::JAbstractPointer< JObjectIterator< T > >::reset
virtual void reset()=0
Reset pointer.
JLANG::JObjectIterator::hasNext
virtual bool hasNext()=0
Check availability of next element.
JLANG::JAbstractObjectReader::hasNext
virtual bool hasNext()
Check availability of next element.
Definition: JAbstractObjectReader.hh:43
JLANG::JSharedCounter::attach
void attach(const JSharedCounter &object)
Attach this counter to given shared counter object.
Definition: JSharedCounter.hh:46
JLANG::JPointer< JObjectIterator< T > >::reset
virtual void reset()
Reset pointer.
Definition: JPointer.hh:84
JLANG::JSharedCounter::initialise
void initialise()
Initialise counter.
Definition: JSharedCounter.hh:33
JDETECTOR::reset
void reset(JCLBInput &data, size_t size)
Reset CLB buffers.
Definition: JCLBSimulator.hh:41
JLANG::JSharedPointer< JObjectIterator< T > >::reset
virtual void reset()
Reset pointer.
Definition: JSharedPointer.hh:171
JLANG::JStorage< JObjectIterator< T >, JNew >::reset
virtual void reset()
Reset pointer.
Definition: JStorage.hh:42
JLANG::JObjectIterator::next
virtual const pointer_type & next()=0
Get next element.
JLANG::JAbstractPointer< JObjectIterator< T > >::is_valid
bool is_valid() const
Check validity of pointer.
Definition: JAbstractPointer.hh:83