Jpp 19.3.0-rc.1
the software that should make you happy
Loading...
Searching...
No Matches
JSUPPORT::JTreeSampler< T, JSampler_t > Struct Template Reference

Auxiliary class to sample from a list of files. More...

#include <JTreeSampler.hh>

Inheritance diagram for JSUPPORT::JTreeSampler< T, JSampler_t >:
JLANG::JTemplate< JType_t > JLANG::JObjectSampler< T, JSampler_t > JLANG::JObjectIterator< T >

Public Types

typedef JSampler_t< T > sampler_type
 
typedef JTemplate< JType_t > template_type
 
typedef JObjectIterator< T >::pointer_type pointer_type
 

Public Member Functions

 JTreeSampler (const sampler_type &sampler=sampler_type())
 Constructor.
 
 operator const JType_t & () const
 Type conversion.
 
 operator JType_t & ()
 Type conversion.
 
const JType_t * operator-> () const
 Smart pointer operator.
 
JType_t * operator-> ()
 Smart pointer operator.
 
template<class T , bool use_polymorphism = false>
const T & get () const
 Get reference to object.
 
template<class T , bool use_polymorphism = false>
T & get ()
 Get reference to object.
 
template_typeset (const JType_t &value)
 Set value.
 
template<bool use_polymorphism, class T >
template_typeset (const T &value)
 Set value.
 
virtual bool hasNext () override
 Check availability of next element.
 
virtual const pointer_typenext () override
 Get next element.
 
const JSampler_t< T > & getSampler () const
 Get sampler.
 
JSampler_t< T > & getSampler ()
 Get sampler.
 
virtual skip_type skip (const skip_type ns)
 Skip items.
 

Protected Member Functions

const JType_t & c_get (JBool< true > option) const
 Get reference to object.
 
JType_t & c_get (JBool< true > option)
 Get reference to object.
 
template<class T >
template_typec_set (const T &value, JBool< true > option)
 Set value.
 

Protected Attributes

JType_t object
 object
 
JRewindableObjectIterator< T > & in
 
JSampler_t< T > sampler
 
JPointer< T > ps
 
bool has_next
 

Detailed Description

template<class T, template< class > class JSampler_t = JSampler>
struct JSUPPORT::JTreeSampler< T, JSampler_t >

Auxiliary class to sample from a list of files.

Definition at line 28 of file JTreeSampler.hh.

Member Typedef Documentation

◆ sampler_type

template<class T , template< class > class JSampler_t = JSampler>
JSampler_t<T> JSUPPORT::JTreeSampler< T, JSampler_t >::sampler_type

Definition at line 33 of file JTreeSampler.hh.

◆ template_type

template<class JType_t >
JTemplate<JType_t> JLANG::JTemplate< JType_t >::template_type
inherited

Definition at line 42 of file JTemplate.hh.

◆ pointer_type

template<class T , template< class > class JSampler_t = JSampler>
JObjectIterator<T>::pointer_type JLANG::JObjectSampler< T, JSampler_t >::pointer_type
inherited

Definition at line 45 of file JObjectSampler.hh.

Constructor & Destructor Documentation

◆ JTreeSampler()

template<class T , template< class > class JSampler_t = JSampler>
JSUPPORT::JTreeSampler< T, JSampler_t >::JTreeSampler ( const sampler_type & sampler = sampler_type())
inline

Constructor.

Parameters
samplersampler

Definition at line 41 of file JTreeSampler.hh.

41 :
44 {}
Auxiliary class to sample objects from a JRewindableObjectIterator.
JSampler_t< T > sampler
Interface for object iteration with rewinding.
Auxiliary class for managing multiple objects.
Definition JTemplate.hh:40
const T & get() const
Get reference to object.
Definition JTemplate.hh:113

Member Function Documentation

◆ operator const JType_t &()

template<class JType_t >
JLANG::JTemplate< JType_t >::operator const JType_t & ( ) const
inlineinherited

Type conversion.

Returns
reference to object

Definition at line 68 of file JTemplate.hh.

69 {
70 return object;
71 }
JType_t object
object
Definition JTemplate.hh:222

◆ operator JType_t &()

template<class JType_t >
JLANG::JTemplate< JType_t >::operator JType_t & ( )
inlineinherited

Type conversion.

Returns
reference to object

Definition at line 79 of file JTemplate.hh.

80 {
81 return object;
82 }

◆ operator->() [1/2]

template<class JType_t >
const JType_t * JLANG::JTemplate< JType_t >::operator-> ( ) const
inlineinherited

Smart pointer operator.

Returns
pointer to object

Definition at line 90 of file JTemplate.hh.

91 {
92 return &object;
93 }

◆ operator->() [2/2]

template<class JType_t >
JType_t * JLANG::JTemplate< JType_t >::operator-> ( )
inlineinherited

Smart pointer operator.

Returns
pointer to object

Definition at line 101 of file JTemplate.hh.

102 {
103 return &object;
104 }

◆ get() [1/2]

template<class JType_t >
template<class T , bool use_polymorphism = false>
const T & JLANG::JTemplate< JType_t >::get ( ) const
inlineinherited

Get reference to object.

Returns
reference to object

Definition at line 113 of file JTemplate.hh.

114 {
115 return this->c_get(JBool<use_polymorphism>().template c_switch<JConversion<JType_t, T>::is_derived, JConversion<JType_t, T>::is_same>());
116 }
static const bool is_same
true, if JDerived_t is equal to JBase_t
static const bool is_derived
true, if JDerived_t derives from JBase_t
const JType_t & c_get(JBool< true > option) const
Get reference to object.
Definition JTemplate.hh:188

◆ get() [2/2]

template<class JType_t >
template<class T , bool use_polymorphism = false>
T & JLANG::JTemplate< JType_t >::get ( )
inlineinherited

Get reference to object.

Returns
reference to object

Definition at line 125 of file JTemplate.hh.

126 {
127 return this->c_get(JBool<use_polymorphism>().template c_switch<JConversion<JType_t, T>::is_derived, JConversion<JType_t, T>::is_same>());
128 }

◆ set() [1/2]

template<class JType_t >
template_type & JLANG::JTemplate< JType_t >::set ( const JType_t & value)
inlineinherited

Set value.

Parameters
valuevalue
Returns
this object

Definition at line 137 of file JTemplate.hh.

138 {
139 return c_set(value, JBool<true>());
140 }
template_type & c_set(const T &value, JBool< true > option)
Set value.
Definition JTemplate.hh:214

◆ set() [2/2]

template<class JType_t >
template<bool use_polymorphism, class T >
template_type & JLANG::JTemplate< JType_t >::set ( const T & value)
inlineinherited

Set value.

Parameters
valuevalue
Returns
this object

Definition at line 150 of file JTemplate.hh.

151 {
152 return this->c_set(value, JBool<use_polymorphism>::template c_switch<JConstructor<JType_t, T>::has_constructor, JConversion<JType_t, T>::is_same>());
153 }
static const bool has_constructor
true if JType_t can be constructed from JArgument_t; else false

◆ c_get() [1/2]

template<class JType_t >
const JType_t & JLANG::JTemplate< JType_t >::c_get ( JBool< true > option) const
inlineprotectedinherited

Get reference to object.

Parameters
optiontrue
Returns
reference to object

Definition at line 188 of file JTemplate.hh.

189 {
190 return object;
191 }

◆ c_get() [2/2]

template<class JType_t >
JType_t & JLANG::JTemplate< JType_t >::c_get ( JBool< true > option)
inlineprotectedinherited

Get reference to object.

Parameters
optiontrue
Returns
reference to object

Definition at line 200 of file JTemplate.hh.

201 {
202 return object;
203 }

◆ c_set()

template<class JType_t >
template<class T >
template_type & JLANG::JTemplate< JType_t >::c_set ( const T & value,
JBool< true > option )
inlineprotectedinherited

Set value.

Parameters
valuevalue
optiontrue
Returns
this object

Definition at line 214 of file JTemplate.hh.

215 {
216 object = value;
217
218 return *this;
219 }

◆ hasNext()

template<class T , template< class > class JSampler_t = JSampler>
virtual bool JLANG::JObjectSampler< T, JSampler_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 78 of file JObjectSampler.hh.

79 {
80 while (!has_next) {
81
82 if (!in.hasNext()) {
83 in.rewind();
84 }
85
86 if (in.hasNext()) {
87
88 ps.set(in.next());
89
90 skip_type ns = sampler(*ps);
91
92 if (ns == 0) {
93
94 has_next = true;
95
96 } else {
97
98 while ((ns -= in.skip(ns)) != 0) {
99 in.rewind();
100 }
101 }
102
103 } else {
104
105 // nothing to sample
106
107 break;
108 }
109 }
110
111 return has_next;
112 }
JRewindableObjectIterator< T > & in
virtual void set(JClass_t *p) override
Set pointer.
Definition JPointer.hh:75
unsigned int skip_type
Type definition for number of objects to skip.

◆ next()

template<class T , template< class > class JSampler_t = JSampler>
virtual const pointer_type & JLANG::JObjectSampler< T, JSampler_t >::next ( )
inlineoverridevirtualinherited

Get next element.

Returns
pointer to element

Implements JLANG::JObjectIterator< T >.

Definition at line 120 of file JObjectSampler.hh.

121 {
122 if (!has_next) {
123 ps.reset(NULL);
124 }
125
126 has_next = false;
127
128 return ps;
129 }
virtual void reset() override
Reset pointer.
Definition JPointer.hh:84

◆ getSampler() [1/2]

template<class T , template< class > class JSampler_t = JSampler>
const JSampler_t< T > & JLANG::JObjectSampler< T, JSampler_t >::getSampler ( ) const
inlineinherited

Get sampler.

Returns
sampler

Definition at line 137 of file JObjectSampler.hh.

138 {
139 return sampler;
140 }

◆ getSampler() [2/2]

template<class T , template< class > class JSampler_t = JSampler>
JSampler_t< T > & JLANG::JObjectSampler< T, JSampler_t >::getSampler ( )
inlineinherited

Get sampler.

Returns
sampler

Definition at line 148 of file JObjectSampler.hh.

149 {
150 return sampler;
151 }

◆ 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.

Member Data Documentation

◆ object

template<class JType_t >
JType_t JLANG::JTemplate< JType_t >::object
protectedinherited

object

Definition at line 222 of file JTemplate.hh.

◆ in

template<class T , template< class > class JSampler_t = JSampler>
JRewindableObjectIterator<T>& JLANG::JObjectSampler< T, JSampler_t >::in
protectedinherited

Definition at line 154 of file JObjectSampler.hh.

◆ sampler

template<class T , template< class > class JSampler_t = JSampler>
JSampler_t<T> JLANG::JObjectSampler< T, JSampler_t >::sampler
protectedinherited

Definition at line 155 of file JObjectSampler.hh.

◆ ps

template<class T , template< class > class JSampler_t = JSampler>
JPointer<T> JLANG::JObjectSampler< T, JSampler_t >::ps
protectedinherited

Definition at line 156 of file JObjectSampler.hh.

◆ has_next

template<class T , template< class > class JSampler_t = JSampler>
bool JLANG::JObjectSampler< T, JSampler_t >::has_next
protectedinherited

Definition at line 157 of file JObjectSampler.hh.


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