| The Gaudi Framework v27r1

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Types | Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
ObjectVector< TYPE > Class Template Reference

ObjectVector is one of the basic Gaudi container classes capable of being registered in Data Stores. More...

`#include <GaudiKernel/ObjectVector.h>`

Inheritance diagram for ObjectVector< TYPE >:
[legend]
Collaboration diagram for ObjectVector< TYPE >:
[legend]

## Public Types
typedef TYPE | contained_type
typedef std::vector< TYPE * >::value_type | value_type
typedef std::vector< TYPE * >::reference | reference
typedef std::vector< TYPE * >::const_reference | const_reference
typedef std::vector< TYPE * >::iterator | iterator
typedef std::vector< TYPE * >::const_iterator | const_iterator
typedef std::vector< TYPE * >::reverse_iterator | reverse_iterator
typedef std::vector< TYPE * >::const_reverse_iterator | const_reverse_iterator
typedef std::vector< TYPE * >::pointer | pointer
typedef std::vector< TYPE * >::const_pointer | const_pointer
Public Types inherited from ObjectContainerBase
typedef size_t | size_type
| size_type, to conform the STL container interface More...

## Public Member Functions
| ObjectVector ()
| Constructors. More...
| ObjectVector (const char *)
| ObjectVector (const ObjectVector< TYPE > &)=delete
ObjectVector & | operator= (const ObjectVector< TYPE > &)=delete
virtual | ~ObjectVector ()
| Destructor. More...
virtual const CLID & | clID () const
| Retrieve class ID. More...
ObjectVector< TYPE >::iterator | begin ()
| Return an iterator pointing to the beginning of the container. More...
ObjectVector< TYPE >::const_iterator | begin () const
| Return a const_iterator pointing to the beginning of the container. More...
ObjectVector< TYPE >::iterator | end ()
| Return an iterator pointing to the end of the container. More...
ObjectVector< TYPE >::const_iterator | end () const
| Return a const_iterator pointing to the end of the container. More...
ObjectVector< TYPE >::reverse_iterator | rbegin ()
| Return a reverse_iterator pointing to the beginning of the reversed container. More...
ObjectVector< TYPE >::const_reverse_iterator | rbegin () const
| Return a const_reverse_iterator pointing to the beginning of the reversed container. More...
ObjectVector< TYPE >::reverse_iterator | rend ()
| Return a reverse_iterator pointing to the end of the reversed container. More...
ObjectVector< TYPE >::const_reverse_iterator | rend () const
| Return a const_reverse_iterator pointing to the end of the reversed container. More...
ObjectVector< TYPE >::size_type | size () const
| Return the size of the container. More...
virtual ObjectVector< TYPE >::size_type | numberOfObjects () const
| The same as size(), return number of objects in the container. More...
ObjectVector< TYPE >::size_type | max_size () const
| Return the largest possible size of the container. More...
ObjectVector< TYPE >::size_type | capacity () const
| Return number of elements for which memory has been allocated It is always greater than or equal to size() More...
void | reserve (typename ObjectVector< TYPE >::size_type value)
| Reserve place for "value" objects in the container. More...
bool | empty () const
| Return true if the size of the container is 0. More...
ObjectVector< TYPE >::reference | front ()
| Return reference to the first element. More...
ObjectVector< TYPE >::const_reference | front () const
| Return const_reference to the first element. More...
ObjectVector< TYPE >::reference | back ()
| Return reference to the last element. More...
ObjectVector< TYPE >::const_reference | back () const
| Return const_reference to the last element. More...
void | push_back (typename ObjectVector< TYPE >::const_reference value)
| push_back = append = insert a new element at the end of the container More...
virtual long | add (ContainedObject *pObject)
| Add an object to the container. More...
void | pop_back ()
| pop_back = remove the last element from the container The removed object will be deleted (see the method release) More...
virtual long | remove (ContainedObject *value)
| Release object from the container (the poiter will be removed from the container, but the object itself will remain alive) (see the method pop_back) More...
ObjectVector< TYPE >::iterator | insert (typename ObjectVector< TYPE >::iterator position, typename ObjectVector< TYPE >::const_reference value)
| Insert "value" before "position". More...
void | erase (typename ObjectVector< TYPE >::iterator position)
| Erase the object at "position" from the container. The removed object will be deleted. More...
void | erase (typename ObjectVector< TYPE >::iterator first, typename ObjectVector< TYPE >::iterator last)
| Erase the range [first, last) from the container. The removed object will be deleted. More...
void | clear ()
| Clear the entire content of the container and delete all contained objects. More...
ObjectVector< TYPE >::reference | operator[] (typename ObjectVector< TYPE >::size_type n)
| Return the reference to the n'th object in the container. More...
ObjectVector< TYPE >::const_reference | operator[] (typename ObjectVector< TYPE >::size_type n) const
| Return the const_reference to the n'th object in the container. More...
virtual long | index (const ContainedObject *obj) const
| Return distance of a given object from the beginning of its container It correcponds to the "index" ( from 0 to size()-1 ) If "obj" not fount, return -1. More...
virtual ContainedObject * | containedObject (long dist) const
| Return const pointer to an object of a given distance (index) More...
virtual std::ostream & | fillStream (std::ostream &s) const
| Fill the output stream (ASCII) More...
Public Member Functions inherited from DataObject
| DataObject ()
| Standard Constructor. More...
| DataObject (const DataObject &rhs)
| Copy Constructor. More...
DataObject & | operator= (const DataObject &rhs)
| Assignment Operator. More...
| DataObject (DataObject &&rhs)
| Move Constructor. More...
DataObject & | operator= (DataObject &&rhs)
| Move Assignment Operator. More...
virtual | ~DataObject ()
| Standard Destructor. More...
virtual unsigned long | addRef ()
| Add reference to object. More...
virtual unsigned long | release ()
| release reference to object More...
const std::string & | name () const
| Retreive DataObject name. It is the name when registered in the store. More...
virtual StatusCode | update ()
| Provide empty placeholder for internal object reconfiguration callback. More...
void | setRegistry (IRegistry *pRegistry)
| Set pointer to Registry. More...
IRegistry * | registry () const
| Get pointer to Registry. More...
LinkManager * | linkMgr () const
| Retrieve Link manager. More...
unsigned char | version () const
| Retrieve version number of this object representation. More...
void | setVersion (unsigned char vsn)
| Set version number of this object representation. More...
unsigned long | refCount () const
| Return the refcount. More...

## Static Public Member Functions
static const CLID & | classID ()
| Retrieve class ID. More...
Static Public Member Functions inherited from DataObject
static const CLID & | classID ()
| Retrieve reference to class definition structure (static access) More...

## Private Attributes
std::vector< TYPE * > | m_vector
| The STL vector itself. More...

## Additional Inherited Members
Protected Member Functions inherited from ObjectContainerBase
| ObjectContainerBase ()=default
| Constructor. More...
| ~ObjectContainerBase () override=default
| Destructor. More...

## Detailed Description

### template<class TYPE>
class ObjectVector< TYPE >

ObjectVector is one of the basic Gaudi container classes capable of being registered in Data Stores.

It is based on Standard Library (STL) std::vector (see STL Programmer's Guide) ObjectVector has all functions of the std::vector interface, and in addition a number of Gaudi specific functions.

Each object is allowed to belong into a single container only. After inserting the object into the container, it takes over all responsibilities for the object. E.g. erasing the object from its container causes removing the object's pointer from the container and deleting the object itself.

Author
  Pavel Binko
  Pere Mato

Date
  19/10/1999, 30/11/2000

Definition at line 11 of file ContainedObject.h.

## Member Typedef Documentation

template<class TYPE>

typedef std::vector<TYPE*>::const_iterator ObjectVector< TYPE >::const_iterator

Definition at line 48 of file ObjectVector.h.

template<class TYPE>

typedef std::vector<TYPE*>::const_pointer ObjectVector< TYPE >::const_pointer

Definition at line 57 of file ObjectVector.h.

template<class TYPE>

typedef std::vector<TYPE*>::const_reference ObjectVector< TYPE >::const_reference

Definition at line 45 of file ObjectVector.h.

template<class TYPE>

typedef std::vector<TYPE*>::const_reverse_iterator ObjectVector< TYPE >::const_reverse_iterator

Definition at line 51 of file ObjectVector.h.

template<class TYPE>

typedef TYPE ObjectVector< TYPE >::contained_type

Definition at line 41 of file ObjectVector.h.

template<class TYPE>

typedef std::vector<TYPE*>::iterator ObjectVector< TYPE >::iterator

Definition at line 47 of file ObjectVector.h.

template<class TYPE>

typedef std::vector<TYPE*>::pointer ObjectVector< TYPE >::pointer

Definition at line 56 of file ObjectVector.h.

template<class TYPE>

typedef std::vector<TYPE*>::reference ObjectVector< TYPE >::reference

Definition at line 44 of file ObjectVector.h.

template<class TYPE>

typedef std::vector<TYPE*>::reverse_iterator ObjectVector< TYPE >::reverse_iterator

Definition at line 50 of file ObjectVector.h.

template<class TYPE>

typedef std::vector<TYPE*>::value_type ObjectVector< TYPE >::value_type

Definition at line 42 of file ObjectVector.h.

## Constructor & Destructor Documentation

template<class TYPE>

ObjectVector< TYPE >::ObjectVector | ( |  | ) |
| inline

Constructors.

Definition at line 62 of file ObjectVector.h.

63 : m_vector(0) { }
ObjectVector::m_vector
std::vector< TYPE * > m_vector
The STL vector itself.
Definition: ObjectVector.h:329
template<class TYPE>

ObjectVector< TYPE >::ObjectVector | ( | const char * |  | ) |
| inline

Definition at line 64 of file ObjectVector.h.

65 : m_vector(0) { }
ObjectVector::m_vector
std::vector< TYPE * > m_vector
The STL vector itself.
Definition: ObjectVector.h:329
template<class TYPE>

ObjectVector< TYPE >::ObjectVector | ( | const ObjectVector< TYPE > & |  | ) |
| delete

template<class TYPE>

virtual ObjectVector< TYPE >::~ObjectVector | ( |  | ) |
| inline virtual

Destructor.

Definition at line 71 of file ObjectVector.h.

71 {
72 for( auto& i : m_vector ) {
73 // Set the back pointer to 0 to avoid repetitional searching
74 // for the object in the container, and deleting the object
75 i->setParent (nullptr);
76 delete i;
77 }
78 }
ObjectVector::m_vector
std::vector< TYPE * > m_vector
The STL vector itself.
Definition: ObjectVector.h:329
ana.i
list i
Definition: ana.py:128

## Member Function Documentation

template<class TYPE>

virtual long ObjectVector< TYPE >::add | ( | ContainedObject * | pObject | ) |
| inline virtual

Add an object to the container.

Implements ObjectContainerBase.

Definition at line 202 of file ObjectVector.h.

202 {
203 try {
204 auto ptr = dynamic_cast<typename ObjectVector<TYPE>::value_type>(pObject);
205 if ( ptr ) {
206 push_back(ptr);
207 return m_vector.size()-1;
208 }
209 }
210 catch(...) {
211 }
212 return -1;
213 }
ObjectVector::m_vector
std::vector< TYPE * > m_vector
The STL vector itself.
Definition: ObjectVector.h:329
ObjectVector::push_back
void push_back(typename ObjectVector< TYPE >::const_reference value)
push_back = append = insert a new element at the end of the container
Definition: ObjectVector.h:193
std::vector::size
T size(T...args)
ObjectVector::value_type
std::vector< TYPE * >::value_type value_type
Definition: ObjectVector.h:42
template<class TYPE>

ObjectVector<TYPE>::reference ObjectVector< TYPE >::back | ( |  | ) |
| inline

Return reference to the last element.

Definition at line 183 of file ObjectVector.h.

183 {
184 return m_vector.back();
185 }
ObjectVector::m_vector
std::vector< TYPE * > m_vector
The STL vector itself.
Definition: ObjectVector.h:329
std::vector::back
T back(T...args)
template<class TYPE>

ObjectVector<TYPE>::const_reference ObjectVector< TYPE >::back | ( |  | ) | const
| inline

Return const_reference to the last element.

Definition at line 188 of file ObjectVector.h.

188 {
189 return m_vector.back();
190 }
ObjectVector::m_vector
std::vector< TYPE * > m_vector
The STL vector itself.
Definition: ObjectVector.h:329
std::vector::back
T back(T...args)
template<class TYPE>

ObjectVector<TYPE>::iterator ObjectVector< TYPE >::begin | ( |  | ) |
| inline

Return an iterator pointing to the beginning of the container.

Definition at line 92 of file ObjectVector.h.

92 {
93 return m_vector.begin();
94 }
ObjectVector::m_vector
std::vector< TYPE * > m_vector
The STL vector itself.
Definition: ObjectVector.h:329
std::vector::begin
T begin(T...args)
template<class TYPE>

ObjectVector<TYPE>::const_iterator ObjectVector< TYPE >::begin | ( |  | ) | const
| inline

Return a const_iterator pointing to the beginning of the container.

Definition at line 97 of file ObjectVector.h.

97 {
98 return m_vector.begin();
99 }
ObjectVector::m_vector
std::vector< TYPE * > m_vector
The STL vector itself.
Definition: ObjectVector.h:329
std::vector::begin
T begin(T...args)
template<class TYPE>

ObjectVector<TYPE>::size_type ObjectVector< TYPE >::capacity | ( |  | ) | const
| inline

Return number of elements for which memory has been allocated It is always greater than or equal to size()

Definition at line 152 of file ObjectVector.h.

152 {
153 return m_vector.capacity();
154 }
ObjectVector::m_vector
std::vector< TYPE * > m_vector
The STL vector itself.
Definition: ObjectVector.h:329
std::vector::capacity
T capacity(T...args)
template<class TYPE>

static const CLID& ObjectVector< TYPE >::classID | ( |  | ) |
| inline static

Retrieve class ID.

Definition at line 85 of file ObjectVector.h.

85 {
86 static const CLID clid = TYPE::classID() + CLID_ObjectVector;
87 return clid;
88 }
CLID
unsigned int CLID
Class ID definition.
Definition: ClassID.h:8
template<class TYPE>

void ObjectVector< TYPE >::clear | ( |  | ) |
| inline

Clear the entire content of the container and delete all contained objects.

Definition at line 277 of file ObjectVector.h.

277 {
278 erase(begin(), end());
279 }
ObjectVector::end
ObjectVector< TYPE >::iterator end()
Return an iterator pointing to the end of the container.
Definition: ObjectVector.h:102
ObjectVector::begin
ObjectVector< TYPE >::iterator begin()
Return an iterator pointing to the beginning of the container.
Definition: ObjectVector.h:92
ObjectVector::erase
void erase(typename ObjectVector< TYPE >::iterator position)
Erase the object at "position" from the container. The removed object will be deleted.
Definition: ObjectVector.h:252
template<class TYPE>

virtual const CLID& ObjectVector< TYPE >::clID | ( |  | ) | const
| inline virtual

Retrieve class ID.

Reimplemented from DataObject.

Definition at line 81 of file ObjectVector.h.

81 {
82 return ObjectVector<TYPE>::classID();
83 }
ObjectVector::classID
static const CLID & classID()
Retrieve class ID.
Definition: ObjectVector.h:85
template<class TYPE>

virtual ContainedObject* ObjectVector< TYPE >::containedObject | ( | long | dist | ) | const
| inline virtual

Return const pointer to an object of a given distance (index)

Implements ObjectContainerBase.

Definition at line 303 of file ObjectVector.h.

303 {
304 return m_vector[dist];
305 }
ObjectVector::m_vector
std::vector< TYPE * > m_vector
The STL vector itself.
Definition: ObjectVector.h:329
template<class TYPE>

bool ObjectVector< TYPE >::empty | ( |  | ) | const
| inline

Return true if the size of the container is 0.

Definition at line 168 of file ObjectVector.h.

168 {
169 return m_vector.empty();
170 }
std::vector::empty
T empty(T...args)
ObjectVector::m_vector
std::vector< TYPE * > m_vector
The STL vector itself.
Definition: ObjectVector.h:329
template<class TYPE>

ObjectVector<TYPE>::iterator ObjectVector< TYPE >::end | ( |  | ) |
| inline

Return an iterator pointing to the end of the container.

Definition at line 102 of file ObjectVector.h.

102 {
103 return m_vector.end();
104 }
ObjectVector::m_vector
std::vector< TYPE * > m_vector
The STL vector itself.
Definition: ObjectVector.h:329
std::vector::end
T end(T...args)
template<class TYPE>

ObjectVector<TYPE>::const_iterator ObjectVector< TYPE >::end | ( |  | ) | const
| inline

Return a const_iterator pointing to the end of the container.

Definition at line 107 of file ObjectVector.h.

107 {
108 return m_vector.end();
109 }
ObjectVector::m_vector
std::vector< TYPE * > m_vector
The STL vector itself.
Definition: ObjectVector.h:329
std::vector::end
T end(T...args)
template<class TYPE>

void ObjectVector< TYPE >::erase | ( | typename ObjectVector< TYPE >::iterator | position | ) |
| inline

Erase the object at "position" from the container. The removed object will be deleted.

Definition at line 252 of file ObjectVector.h.

252 {
253 if( (*position)->parent() ) {
254 // Set the back pointer to 0 to avoid repetitional searching
255 // for the object in the container, and deleting the object
256 (*position)->setParent (nullptr);
257 delete *position;
258 }
259 // Removing from the container itself
260 m_vector.erase(position);
261 }
ObjectVector::m_vector
std::vector< TYPE * > m_vector
The STL vector itself.
Definition: ObjectVector.h:329
std::vector::erase
T erase(T...args)
template<class TYPE>

void ObjectVector< TYPE >::erase | ( | typename ObjectVector< TYPE >::iterator | first,
|  | typename ObjectVector< TYPE >::iterator | last
| ) |  |
| inline

Erase the range [first, last) from the container. The removed object will be deleted.

Definition at line 264 of file ObjectVector.h.

265 {
266 for(auto i = first; i != last; i++ ) {
267 // Set the back pointer to 0 to avoid repetitional searching
268 // for the object in the container, and deleting the object
269 (*i)->setParent(nullptr);
270 delete *i;
271 }
272 // Removing from the container itself
273 m_vector.erase(first, last);
274 }
ObjectVector::m_vector
std::vector< TYPE * > m_vector
The STL vector itself.
Definition: ObjectVector.h:329
std::vector::erase
T erase(T...args)
ana.i
list i
Definition: ana.py:128
template<class TYPE>

virtual std::ostream& ObjectVector< TYPE >::fillStream | ( | std::ostream & | s | ) | const
| inline virtual

Fill the output stream (ASCII)

Reimplemented from DataObject.

Definition at line 308 of file ObjectVector.h.

308 {
309 s << "class ObjectVector : size = "
310 << std::setw(12)
311 << size() << "\n";
312 // Output the base class
313 //ObjectContainerBase::fillStream(s);
314 if ( !empty() ) {
315 s << "\nContents of the STL vector :";
316 long count = 0;
317 for(const auto& i : m_vector) {
318 s << "\nIndex "
319 << std::setw(12)
320 << count++
321 << " of object of type " << *i;
322 }
323 }
324 return s;
325 }
ObjectVector::m_vector
std::vector< TYPE * > m_vector
The STL vector itself.
Definition: ObjectVector.h:329
std::setw
T setw(T...args)
ObjectVector::empty
bool empty() const
Return true if the size of the container is 0.
Definition: ObjectVector.h:168
std::count
T count(T...args)
gaudirun.s
string s
Definition: gaudirun.py:245
ana.i
list i
Definition: ana.py:128
ObjectVector::size
ObjectVector< TYPE >::size_type size() const
Return the size of the container.
Definition: ObjectVector.h:136
template<class TYPE>

ObjectVector<TYPE>::reference ObjectVector< TYPE >::front | ( |  | ) |
| inline

Return reference to the first element.

Definition at line 173 of file ObjectVector.h.

173 {
174 return m_vector.front();
175 }
std::vector::front
T front(T...args)
ObjectVector::m_vector
std::vector< TYPE * > m_vector
The STL vector itself.
Definition: ObjectVector.h:329
template<class TYPE>

ObjectVector<TYPE>::const_reference ObjectVector< TYPE >::front | ( |  | ) | const
| inline

Return const_reference to the first element.

Definition at line 178 of file ObjectVector.h.

178 {
179 return m_vector.front();
180 }
std::vector::front
T front(T...args)
ObjectVector::m_vector
std::vector< TYPE * > m_vector
The STL vector itself.
Definition: ObjectVector.h:329
template<class TYPE>

virtual long ObjectVector< TYPE >::index | ( | const ContainedObject * | obj | ) | const
| inline virtual

Return distance of a given object from the beginning of its container It correcponds to the "index" ( from 0 to size()-1 ) If "obj" not fount, return -1.

Implements ObjectContainerBase.

Definition at line 296 of file ObjectVector.h.

296 {
297 auto i = std::find_if( begin(), end(), [&](const ContainedObject *o)
298 { return o == obj; } );
299 return i!=end() ? std::distance( begin(), i ) : -1 ;
300 }
ObjectVector::end
ObjectVector< TYPE >::iterator end()
Return an iterator pointing to the end of the container.
Definition: ObjectVector.h:102
std::distance
T distance(T...args)
ObjectVector::begin
ObjectVector< TYPE >::iterator begin()
Return an iterator pointing to the beginning of the container.
Definition: ObjectVector.h:92
ContainedObject
All classes that their objects may be contained in an LHCb ObjectContainer (e.g.
Definition: ContainedObject.h:29
std::find_if
T find_if(T...args)
ana.i
list i
Definition: ana.py:128
template<class TYPE>

ObjectVector<TYPE>::iterator ObjectVector< TYPE >::insert | ( | typename ObjectVector< TYPE >::iterator | position,
|  | typename ObjectVector< TYPE >::const_reference | value
| ) |  |
| inline

Insert "value" before "position".

Definition at line 245 of file ObjectVector.h.

246 {
247 value->setParent(this);
248 return m_vector.insert(position, value);
249 }
ObjectVector::m_vector
std::vector< TYPE * > m_vector
The STL vector itself.
Definition: ObjectVector.h:329
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
std::vector::insert
T insert(T...args)
template<class TYPE>

ObjectVector<TYPE>::size_type ObjectVector< TYPE >::max_size | ( |  | ) | const
| inline

Return the largest possible size of the container.

Definition at line 146 of file ObjectVector.h.

146 {
147 return m_vector.max_size();
148 }
ObjectVector::m_vector
std::vector< TYPE * > m_vector
The STL vector itself.
Definition: ObjectVector.h:329
std::vector::max_size
T max_size(T...args)
template<class TYPE>

virtual ObjectVector<TYPE>::size_type ObjectVector< TYPE >::numberOfObjects | ( |  | ) | const
| inline virtual

The same as size(), return number of objects in the container.

Implements ObjectContainerBase.

Definition at line 141 of file ObjectVector.h.

141 {
142 return m_vector.size();
143 }
ObjectVector::m_vector
std::vector< TYPE * > m_vector
The STL vector itself.
Definition: ObjectVector.h:329
std::vector::size
T size(T...args)
template<class TYPE>

ObjectVector& ObjectVector< TYPE >::operator= | ( | const ObjectVector< TYPE > & |  | ) |
| delete

template<class TYPE>

ObjectVector<TYPE>::reference ObjectVector< TYPE >::operator[] | ( | typename ObjectVector< TYPE >::size_type | n | ) |
| inline

Return the reference to the n'th object in the container.

Definition at line 283 of file ObjectVector.h.

283 {
284 return m_vector[n];
285 }
ObjectVector::m_vector
std::vector< TYPE * > m_vector
The STL vector itself.
Definition: ObjectVector.h:329
GaudiPluginService.cpluginsvc.n
list n
Definition: cpluginsvc.py:217
template<class TYPE>

ObjectVector<TYPE>::const_reference ObjectVector< TYPE >::operator[] | ( | typename ObjectVector< TYPE >::size_type | n | ) | const
| inline

Return the const_reference to the n'th object in the container.

Definition at line 289 of file ObjectVector.h.

289 {
290 return m_vector[n];
291 }
ObjectVector::m_vector
std::vector< TYPE * > m_vector
The STL vector itself.
Definition: ObjectVector.h:329
GaudiPluginService.cpluginsvc.n
list n
Definition: cpluginsvc.py:217
template<class TYPE>

void ObjectVector< TYPE >::pop_back | ( |  | ) |
| inline

pop_back = remove the last element from the container The removed object will be deleted (see the method release)

Definition at line 217 of file ObjectVector.h.

217 {
218 auto position = m_vector.back();
219 // Set the back pointer to 0 to avoid repetitional searching
220 // for the object in the container, and deleting the object
221 position->setParent(nullptr);
222 delete position;
223 // Removing from the container itself
224 m_vector.pop_back();
225 }
ObjectVector::m_vector
std::vector< TYPE * > m_vector
The STL vector itself.
Definition: ObjectVector.h:329
std::vector::pop_back
T pop_back(T...args)
std::vector::back
T back(T...args)
template<class TYPE>

void ObjectVector< TYPE >::push_back | ( | typename ObjectVector< TYPE >::const_reference | value | ) |
| inline

push_back = append = insert a new element at the end of the container

Definition at line 193 of file ObjectVector.h.

193 {
194 if( value->parent() ) {
195 const_cast<ObjectContainerBase*>(value->parent())->remove(value);
196 }
197 value->setParent(this);
198 m_vector.push_back(value);
199 }
ObjectVector::m_vector
std::vector< TYPE * > m_vector
The STL vector itself.
Definition: ObjectVector.h:329
std::vector::push_back
T push_back(T...args)
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
ObjectContainerBase
ObjectContainerBase is the base class for Gaudi container classes.
Definition: ObjectContainerBase.h:19
template<class TYPE>

ObjectVector<TYPE>::reverse_iterator ObjectVector< TYPE >::rbegin | ( |  | ) |
| inline

Return a reverse_iterator pointing to the beginning of the reversed container.

Definition at line 112 of file ObjectVector.h.

112 {
113 return m_vector.rbegin();
114 }
ObjectVector::m_vector
std::vector< TYPE * > m_vector
The STL vector itself.
Definition: ObjectVector.h:329
std::vector::rbegin
T rbegin(T...args)
template<class TYPE>

ObjectVector<TYPE>::const_reverse_iterator ObjectVector< TYPE >::rbegin | ( |  | ) | const
| inline

Return a const_reverse_iterator pointing to the beginning of the reversed container.

Definition at line 118 of file ObjectVector.h.

118 {
119 return m_vector.rbegin();
120 }
ObjectVector::m_vector
std::vector< TYPE * > m_vector
The STL vector itself.
Definition: ObjectVector.h:329
std::vector::rbegin
T rbegin(T...args)
template<class TYPE>

virtual long ObjectVector< TYPE >::remove | ( | ContainedObject * | value | ) |
| inline virtual

Release object from the container (the poiter will be removed from the container, but the object itself will remain alive) (see the method pop_back)

Implements ObjectContainerBase.

Definition at line 229 of file ObjectVector.h.

229 {
230 // Find the object of the value value
231 auto i = std::find_if( begin(), end(), [&](const ContainedObject* j) { return j==value; } );
232 if( i == end() ) {
233 // Object cannot be released from the conatiner,
234 // as it is not contained in it
235 return StatusCode::FAILURE;
236 }
237 // Set the back pointer to 0 to avoid repetitional searching
238 // for the object in the container and deleting the object
239 (*i)->setParent (nullptr);
240 erase(i);
241 return StatusCode::SUCCESS;
242 }
ObjectVector::end
ObjectVector< TYPE >::iterator end()
Return an iterator pointing to the end of the container.
Definition: ObjectVector.h:102
ObjectVector::begin
ObjectVector< TYPE >::iterator begin()
Return an iterator pointing to the beginning of the container.
Definition: ObjectVector.h:92
ObjectVector::erase
void erase(typename ObjectVector< TYPE >::iterator position)
Erase the object at "position" from the container. The removed object will be deleted.
Definition: ObjectVector.h:252
StatusCode::FAILURE
Definition: StatusCode.h:29
StatusCode::SUCCESS
Definition: StatusCode.h:30
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
ContainedObject
All classes that their objects may be contained in an LHCb ObjectContainer (e.g.
Definition: ContainedObject.h:29
std::find_if
T find_if(T...args)
ana.i
list i
Definition: ana.py:128
template<class TYPE>

ObjectVector<TYPE>::reverse_iterator ObjectVector< TYPE >::rend | ( |  | ) |
| inline

Return a reverse_iterator pointing to the end of the reversed container.

Definition at line 123 of file ObjectVector.h.

123 {
124 return m_vector.rend();
125 }
std::vector::rend
T rend(T...args)
ObjectVector::m_vector
std::vector< TYPE * > m_vector
The STL vector itself.
Definition: ObjectVector.h:329
template<class TYPE>

ObjectVector<TYPE>::const_reverse_iterator ObjectVector< TYPE >::rend | ( |  | ) | const
| inline

Return a const_reverse_iterator pointing to the end of the reversed container.

Definition at line 128 of file ObjectVector.h.

128 {
129 return m_vector.rend();
130 }
std::vector::rend
T rend(T...args)
ObjectVector::m_vector
std::vector< TYPE * > m_vector
The STL vector itself.
Definition: ObjectVector.h:329
template<class TYPE>

void ObjectVector< TYPE >::reserve | ( | typename ObjectVector< TYPE >::size_type | value | ) |
| inline

Reserve place for "value" objects in the container.

If "value" is less than or equal to capacity(), this call has no effect, otherwise, it is a request for allocation of additional memory. If the request is successful, then capacity() is >= n, otherwise, capacity() is unchanged. In either case, size() is unchanged

Definition at line 163 of file ObjectVector.h.

163 {
164 m_vector.reserve( value );
165 }
ObjectVector::m_vector
std::vector< TYPE * > m_vector
The STL vector itself.
Definition: ObjectVector.h:329
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
std::vector::reserve
T reserve(T...args)
template<class TYPE>

ObjectVector<TYPE>::size_type ObjectVector< TYPE >::size | ( |  | ) | const
| inline

Return the size of the container.

Size means the number of objects stored in the container, independently on the amount of information stored in each object

Definition at line 136 of file ObjectVector.h.

136 {
137 return m_vector.size();
138 }
ObjectVector::m_vector
std::vector< TYPE * > m_vector
The STL vector itself.
Definition: ObjectVector.h:329
std::vector::size
T size(T...args)

## Member Data Documentation

template<class TYPE>

std::vector<TYPE*> ObjectVector< TYPE >::m_vector
| private

The STL vector itself.

Definition at line 329 of file ObjectVector.h.

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

- GaudiKernel/GaudiKernel/ContainedObject.h
- GaudiKernel/GaudiKernel/ObjectVector.h