PVData C++ 8.0.7
Loading...
Searching...
No Matches
epics::pvData::detail::shared_vector_base< E > Class Template Reference
Inheritance diagram for epics::pvData::detail::shared_vector_base< E >:

Public Member Functions

 shared_vector_base ()
 Empty vector (not very interesting)
 
template<typename A >
 shared_vector_base (A *v, size_t o, size_t c)
 
 shared_vector_base (const std::tr1::shared_ptr< E > &d, size_t o, size_t c)
 
template<typename A , typename B >
 shared_vector_base (A d, B b, size_t o, size_t c)
 
 shared_vector_base (const shared_vector_base &O)
 
 shared_vector_base (shared_vector_base< _E_non_const > &O, _shared_vector_freeze_tag)
 
 shared_vector_base (shared_vector< const E > &O, _shared_vector_thaw_tag)
 
shared_vector_baseoperator= (const shared_vector_base &o)
 Copy an existing vector.
 
void swap (shared_vector_base &o)
 Swap the contents of this vector with another.
 
void clear ()
 Clear contents. size() becomes 0.
 
bool unique () const
 Data is not shared?
 
size_t size () const
 Number of elements visible through this vector.
 
bool empty () const
 shorthand for size()==0
 
void slice (size_t offset, size_t length=(size_t) -1)
 Reduce the view of this shared_vector.
 
const std::tr1::shared_ptr< E > & dataPtr () const
 
size_t dataOffset () const
 
size_t dataCount () const
 
size_t dataTotal () const
 

Protected Types

typedef meta::strip_const< E >::type _E_non_const
 

Protected Member Functions

void _null_input ()
 

Protected Attributes

std::tr1::shared_ptr< E > m_sdata
 
size_t m_offset
 Offset in the data array of first visible element.
 
size_t m_count
 Number of visible elements between m_offset and end of data.
 
size_t m_total
 Total number of elements between m_offset and the end of data.
 

Detailed Description

template<typename E>
class epics::pvData::detail::shared_vector_base< E >

Definition at line 53 of file sharedVector.h.

Member Typedef Documentation

◆ _E_non_const

template<typename E >
meta::strip_const<E>::type epics::pvData::detail::shared_vector_base< E >::_E_non_const
protected

Definition at line 132 of file sharedVector.h.

Constructor & Destructor Documentation

◆ shared_vector_base() [1/7]

template<typename E >
epics::pvData::detail::shared_vector_base< E >::shared_vector_base ( )
inline

Empty vector (not very interesting)

Definition at line 80 of file sharedVector.h.

◆ shared_vector_base() [2/7]

template<typename E >
template<typename A >
epics::pvData::detail::shared_vector_base< E >::shared_vector_base ( A * v,
size_t o,
size_t c )
inline

Definition at line 100 of file sharedVector.h.

◆ shared_vector_base() [3/7]

template<typename E >
epics::pvData::detail::shared_vector_base< E >::shared_vector_base ( const std::tr1::shared_ptr< E > & d,
size_t o,
size_t c )
inline

Definition at line 105 of file sharedVector.h.

◆ shared_vector_base() [4/7]

template<typename E >
template<typename A , typename B >
epics::pvData::detail::shared_vector_base< E >::shared_vector_base ( A d,
B b,
size_t o,
size_t c )
inline

Definition at line 111 of file sharedVector.h.

◆ shared_vector_base() [5/7]

template<typename E >
epics::pvData::detail::shared_vector_base< E >::shared_vector_base ( const shared_vector_base< E > & O)
inline

Definition at line 115 of file sharedVector.h.

◆ shared_vector_base() [6/7]

template<typename E >
epics::pvData::detail::shared_vector_base< E >::shared_vector_base ( shared_vector_base< _E_non_const > & O,
_shared_vector_freeze_tag  )
inline

Constructor used to implement freeze(). Should not be called directly.

Definition at line 136 of file sharedVector.h.

◆ shared_vector_base() [7/7]

template<typename E >
epics::pvData::detail::shared_vector_base< E >::shared_vector_base ( shared_vector< const E > & O,
_shared_vector_thaw_tag  )
inline

Constructor used to implement thaw(). Should not be called directly.

Definition at line 155 of file sharedVector.h.

Member Function Documentation

◆ _null_input()

template<typename E >
void epics::pvData::detail::shared_vector_base< E >::_null_input ( )
inlineprotected

Definition at line 88 of file sharedVector.h.

◆ clear()

template<typename E >
void epics::pvData::detail::shared_vector_base< E >::clear ( )
inline

Clear contents. size() becomes 0.

Definition at line 210 of file sharedVector.h.

◆ dataCount()

template<typename E >
size_t epics::pvData::detail::shared_vector_base< E >::dataCount ( ) const
inline

Definition at line 263 of file sharedVector.h.

◆ dataOffset()

template<typename E >
size_t epics::pvData::detail::shared_vector_base< E >::dataOffset ( ) const
inline

Definition at line 262 of file sharedVector.h.

◆ dataPtr()

template<typename E >
const std::tr1::shared_ptr< E > & epics::pvData::detail::shared_vector_base< E >::dataPtr ( ) const
inline

Definition at line 261 of file sharedVector.h.

◆ dataTotal()

template<typename E >
size_t epics::pvData::detail::shared_vector_base< E >::dataTotal ( ) const
inline

Definition at line 264 of file sharedVector.h.

◆ empty()

template<typename E >
bool epics::pvData::detail::shared_vector_base< E >::empty ( ) const
inline

shorthand for size()==0

Definition at line 222 of file sharedVector.h.

◆ operator=()

template<typename E >
shared_vector_base & epics::pvData::detail::shared_vector_base< E >::operator= ( const shared_vector_base< E > & o)
inline

Copy an existing vector.

Definition at line 172 of file sharedVector.h.

◆ size()

template<typename E >
size_t epics::pvData::detail::shared_vector_base< E >::size ( ) const
inline

Number of elements visible through this vector.

Definition at line 220 of file sharedVector.h.

◆ slice()

template<typename E >
void epics::pvData::detail::shared_vector_base< E >::slice ( size_t offset,
size_t length = (size_t)-1 )
inline

Reduce the view of this shared_vector.

Reduce the portion of the underlying buffer which is accessible through this shared_vector.

When the requested new offset and length are not possible then the following holds.

When offset is >= size() then after slice() size()==0. When length >= size()-offset then after slice() size() = old_size-offset.

Parameters
offsetThe request new offset relative to the current offset.
lengthThe requested new length.
Note
offset and length are in units of sizeof(E). or bytes (1) when E=void.

Definition at line 244 of file sharedVector.h.

◆ swap()

template<typename E >
void epics::pvData::detail::shared_vector_base< E >::swap ( shared_vector_base< E > & o)
inline

Swap the contents of this vector with another.

Definition at line 199 of file sharedVector.h.

◆ unique()

template<typename E >
bool epics::pvData::detail::shared_vector_base< E >::unique ( ) const
inline

Data is not shared?

Definition at line 216 of file sharedVector.h.

Friends And Related Symbol Documentation

◆ shared_vector_base

template<typename E >
template<typename E1 >
friend class shared_vector_base
friend

Definition at line 56 of file sharedVector.h.

Member Data Documentation

◆ m_count

template<typename E >
size_t epics::pvData::detail::shared_vector_base< E >::m_count
protected

Number of visible elements between m_offset and end of data.

Definition at line 63 of file sharedVector.h.

◆ m_offset

template<typename E >
size_t epics::pvData::detail::shared_vector_base< E >::m_offset
protected

Offset in the data array of first visible element.

Definition at line 61 of file sharedVector.h.

◆ m_sdata

template<typename E >
std::tr1::shared_ptr<E> epics::pvData::detail::shared_vector_base< E >::m_sdata
protected

Definition at line 59 of file sharedVector.h.

◆ m_total

template<typename E >
size_t epics::pvData::detail::shared_vector_base< E >::m_total
protected

Total number of elements between m_offset and the end of data.

Definition at line 65 of file sharedVector.h.


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