PandaTree
|
A vector of references to elements in a container. More...
#include <RefVector.h>
Classes | |
class | RefHolder |
"pointer" wrapper for Ref More... | |
class | RefVectorIterator |
const iterator More... | |
Public Types | |
typedef RefVector< E > | self_type |
typedef E | element_type |
typedef Ref< element_type > | ref_type |
typedef ConstRef< element_type > | const_ref_type |
typedef std::vector< Short_t > | Indices |
typedef RefVectorIterator< kTRUE > | const_iterator |
typedef RefVectorIterator< kFALSE > | iterator |
Public Member Functions | |
RefVector () | |
Default constructor. | |
RefVector (ContainerBase const *&c, Indices &indices) | |
Standard constructor. More... | |
RefVector (self_type const &orig) | |
Copy constructor. | |
void | setIndices (Indices &indices) |
Set the index. | |
void | setContainer (ContainerBase const *&c) |
Set the container (an Array or a Collection). More... | |
UShort_t | size () const |
Size of the vector. | |
ref_type | at (UShort_t) |
Element (ref) accessor. | |
const_ref_type | at (UShort_t) const |
Element (ref) accessor. | |
element_type const & | objAt (UShort_t) const |
Object accessor. | |
self_type & | operator= (self_type const &) |
Assignment operator. | |
void | addRef (element_type const *) |
Setter function. More... | |
void | push_back (ref_type const &) |
Setter function. More... | |
void | clear () |
Clear operation. | |
void | init () |
Initializer. More... | |
Bool_t | isValid () const |
Validity check. Both container and idx must be valid, and idx must not be 0xffffffff. | |
Indices *& | indices () |
Accessor to indices. More... | |
ContainerBase const * | container () const |
Accessor to container. More... | |
void | sort (ContainerBase::Comparison const &) |
Sort the ref vector. More... | |
const_iterator | begin () const |
iterator | begin () |
const_iterator | end () const |
iterator | end () |
A vector of references to elements in a container.
The vector version of Ref, where the container is shared between the elements (individual refs). A vector of index integers, instead of a single integer, is written to the tree.
|
inline |
Standard constructor.
The container must be a pointer to a derived class of Array<E> or Collection<E>. Proper assignment is only done at runtime and thus there no protection against assigning a wrong type of container.
void panda::RefVector< E >::addRef | ( | element_type const * | _obj | ) |
Setter function.
Pass a element_type object after the container is set. If the object is found in the collector, pushes the index value.
ContainerBase const * panda::RefVector< E >::container | ( | ) | const |
Accessor to container.
Throws a runtime_error if container is not valid.
std::vector< Short_t > *& panda::RefVector< E >::indices | ( | ) |
Accessor to indices.
Throws a runtime_error if indices is NULL.
|
inline |
Initializer.
Invalidates the index by setting it to 0xffffffff.
void panda::RefVector< E >::push_back | ( | ref_type const & | ) |
Setter function.
Pushes back a ref if the container is common.
|
inline |
Set the container (an Array or a Collection).
The container must be a derived class of Array<E> or Collection<E>. There is no protection against assigning a wrong type of container.
void panda::RefVector< E >::sort | ( | ContainerBase::Comparison const & | _c | ) |
Sort the ref vector.
The internal indices are re-ordered, but the underlying data is untouched