PcapPlusPlus
pcpp::PointerVector< T > Class Template Reference

#include <PointerVector.h>

Public Types

typedef std::vector< T * >::iterator VectorIterator
 
typedef std::vector< T * >::const_iterator ConstVectorIterator
 

Public Member Functions

 PointerVector ()
 
 ~PointerVector ()
 
 PointerVector (const PointerVector &other)
 
void clear ()
 
void pushBack (T *element)
 
VectorIterator begin ()
 
ConstVectorIterator begin () const
 
VectorIterator end ()
 
ConstVectorIterator end () const
 
size_t size () const
 
T * front ()
 
VectorIterator erase (VectorIterator position)
 
T * getAndRemoveFromVector (VectorIterator &position)
 
T * at (int index)
 

Detailed Description

template<typename T>
class pcpp::PointerVector< T >

A template class for representing a std::vector of pointers. Once (a pointer to) an element is added to this vector, the element responsibility moves to the vector, meaning the PointerVector will free the object once it's removed from the vector This class wraps std::vector and adds the capability of freeing objects once they're removed from it

Member Typedef Documentation

template<typename T>
typedef std::vector<T*>::const_iterator pcpp::PointerVector< T >::ConstVectorIterator

Const iterator object that is used for iterating all elements in a constant vector

template<typename T>
typedef std::vector<T*>::iterator pcpp::PointerVector< T >::VectorIterator

Iterator object that is used for iterating all elements in the vector

Constructor & Destructor Documentation

template<typename T>
pcpp::PointerVector< T >::PointerVector ( )
inline

A constructor that create an empty instance of this object

template<typename T>
pcpp::PointerVector< T >::~PointerVector ( )
inline

A destructor for this class. The destructor frees all elements that are binded to the vector

template<typename T>
pcpp::PointerVector< T >::PointerVector ( const PointerVector< T > &  other)
inline

Copy constructor. Once a vector is copied from another vector, all elements inside it are copied, meaning the new vector will contain pointers to copied elements, not pointers to the elements of the original vector

Member Function Documentation

template<typename T>
T* pcpp::PointerVector< T >::at ( int  index)
inline

Return a pointer to the element in a certain index

Parameters
[in]indexThe index to retrieve the element from
Returns
The element at the specified position in the vector
template<typename T>
VectorIterator pcpp::PointerVector< T >::begin ( )
inline

Get the first element of the vector

Returns
An iterator object pointing to the first element of the vector
template<typename T>
ConstVectorIterator pcpp::PointerVector< T >::begin ( ) const
inline

Get the first element of a constant vector

Returns
A const iterator object pointing to the first element of the vector
template<typename T>
void pcpp::PointerVector< T >::clear ( )
inline

Clears all elements of the vector while freeing them

template<typename T>
VectorIterator pcpp::PointerVector< T >::end ( )
inline

Get the last element of the vector

Returns
An iterator object pointing to the last element of the vector
template<typename T>
ConstVectorIterator pcpp::PointerVector< T >::end ( ) const
inline

Get the last element of a constant vector

Returns
A const iterator object pointing to the last element of the vector
template<typename T>
VectorIterator pcpp::PointerVector< T >::erase ( VectorIterator  position)
inline

Removes from the vector a single element (position). Once the element is erased, it's also freed

Parameters
[in]positionThe position of the element to erase
Returns
An iterator pointing to the new location of the element that followed the last element erased by the function call
template<typename T>
T* pcpp::PointerVector< T >::front ( )
inline

Returns a pointer of the first element in the vector

Returns
A pointer of the first element in the vector
template<typename T>
T* pcpp::PointerVector< T >::getAndRemoveFromVector ( VectorIterator position)
inline

Remove an element from the vector without freeing it param[in] position The position of the element to remove from the vector

Returns
A pointer to the element which is no longer managed by the vector. It's user responsibility to free it
template<typename T>
void pcpp::PointerVector< T >::pushBack ( T *  element)
inline

Add a new (pointer to an) element to the vector

template<typename T>
size_t pcpp::PointerVector< T >::size ( ) const
inline

Get number of elements in the vector

Returns
The number of elements in the vector