PVData C++ 8.0.7
Loading...
Searching...
No Matches
epics::pvData::shared_vector< E, typename meta::is_void< E >::type > Class Template Reference

Specialization for storing untyped pointers. More...

#include <misc/pv/sharedVector.h>

Inheritance diagram for epics::pvData::shared_vector< E, typename meta::is_void< E >::type >:
Collaboration diagram for epics::pvData::shared_vector< E, typename meta::is_void< E >::type >:

Public Types

typedef E value_type
 
typedef E * pointer
 
typedef ptrdiff_t difference_type
 
typedef size_t size_type
 
typedef std::tr1::shared_ptr< E > shared_pointer_type
 

Public Member Functions

 shared_vector (pointer v, size_t o, size_t c)
 
template<typename B >
 shared_vector (pointer d, B b, size_t o, size_t c)
 
template<typename E1 >
 shared_vector (const std::tr1::shared_ptr< E1 > &d, size_t o, size_t c)
 
 shared_vector (const shared_vector &o)
 
template<typename FROM >
 shared_vector (const shared_vector< FROM > &src, detail::_shared_vector_cast_tag)
 
 shared_vector (shared_vector< void > &O, detail::_shared_vector_freeze_tag t)
 
 shared_vector (shared_vector< const void > &O, detail::_shared_vector_thaw_tag t)
 
shared_vectoroperator= (const shared_vector &o)
 
void swap (shared_vector &o)
 
size_t max_size () const
 
pointer data () const
 
shared_vectorset_original_type (ScalarType t)
 
ScalarType original_type () const
 
- Public Member Functions inherited from epics::pvData::detail::shared_vector_base< E >
 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
 

Additional Inherited Members

- Protected Types inherited from epics::pvData::detail::shared_vector_base< E >
typedef meta::strip_const< E >::type _E_non_const
 
- Protected Member Functions inherited from epics::pvData::detail::shared_vector_base< E >
void _null_input ()
 
- Protected Attributes inherited from epics::pvData::detail::shared_vector_base< E >
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::shared_vector< E, typename meta::is_void< E >::type >

Specialization for storing untyped pointers.

Does not allow access or iteration of contents other than as void* or const void*

In order to support shared_vector_convert<>() information about the type of the underlying allocation is stored. This is implicitly set by static_shared_vector_cast<>() and may be explicitly checked/changed using original_type()/set_original_type().

A shared_vector<void> directly constructed from a smart pointer does not have an associated original_type(). Use epics::pvData::ScalarTypeFunc::allocArray() to convienently allocate an array with a known original_type().

Definition at line 654 of file sharedVector.h.

Member Typedef Documentation

◆ difference_type

template<typename E >
ptrdiff_t epics::pvData::shared_vector< E, typename meta::is_void< E >::type >::difference_type

Definition at line 665 of file sharedVector.h.

◆ pointer

template<typename E >
E* epics::pvData::shared_vector< E, typename meta::is_void< E >::type >::pointer

Definition at line 664 of file sharedVector.h.

◆ shared_pointer_type

template<typename E >
std::tr1::shared_ptr<E> epics::pvData::shared_vector< E, typename meta::is_void< E >::type >::shared_pointer_type

Definition at line 668 of file sharedVector.h.

◆ size_type

template<typename E >
size_t epics::pvData::shared_vector< E, typename meta::is_void< E >::type >::size_type

Definition at line 666 of file sharedVector.h.

◆ value_type

template<typename E >
E epics::pvData::shared_vector< E, typename meta::is_void< E >::type >::value_type

Definition at line 663 of file sharedVector.h.

Constructor & Destructor Documentation

◆ shared_vector() [1/8]

template<typename E >
epics::pvData::shared_vector< E, typename meta::is_void< E >::type >::shared_vector ( )
inline

Definition at line 673 of file sharedVector.h.

◆ shared_vector() [2/8]

template<typename E >
epics::pvData::shared_vector< E, typename meta::is_void< E >::type >::shared_vector ( pointer v,
size_t o,
size_t c )
inline

Definition at line 676 of file sharedVector.h.

◆ shared_vector() [3/8]

template<typename E >
template<typename B >
epics::pvData::shared_vector< E, typename meta::is_void< E >::type >::shared_vector ( pointer d,
B b,
size_t o,
size_t c )
inline

Definition at line 680 of file sharedVector.h.

◆ shared_vector() [4/8]

template<typename E >
template<typename E1 >
epics::pvData::shared_vector< E, typename meta::is_void< E >::type >::shared_vector ( const std::tr1::shared_ptr< E1 > & d,
size_t o,
size_t c )
inline

Definition at line 684 of file sharedVector.h.

◆ shared_vector() [5/8]

template<typename E >
epics::pvData::shared_vector< E, typename meta::is_void< E >::type >::shared_vector ( const shared_vector< E, typename meta::is_void< E >::type > & o)
inline

Definition at line 687 of file sharedVector.h.

◆ shared_vector() [6/8]

template<typename E >
template<typename FROM >
epics::pvData::shared_vector< E, typename meta::is_void< E >::type >::shared_vector ( const shared_vector< FROM > & src,
detail::_shared_vector_cast_tag  )
inline

Definition at line 698 of file sharedVector.h.

◆ shared_vector() [7/8]

template<typename E >
epics::pvData::shared_vector< E, typename meta::is_void< E >::type >::shared_vector ( shared_vector< void > & O,
detail::_shared_vector_freeze_tag t )
inline

Definition at line 706 of file sharedVector.h.

◆ shared_vector() [8/8]

template<typename E >
epics::pvData::shared_vector< E, typename meta::is_void< E >::type >::shared_vector ( shared_vector< const void > & O,
detail::_shared_vector_thaw_tag t )
inline

Definition at line 711 of file sharedVector.h.

Member Function Documentation

◆ data()

template<typename E >
pointer epics::pvData::shared_vector< E, typename meta::is_void< E >::type >::data ( ) const
inline

Definition at line 743 of file sharedVector.h.

◆ max_size()

template<typename E >
size_t epics::pvData::shared_vector< E, typename meta::is_void< E >::type >::max_size ( ) const
inline

Definition at line 741 of file sharedVector.h.

◆ operator=()

template<typename E >
shared_vector & epics::pvData::shared_vector< E, typename meta::is_void< E >::type >::operator= ( const shared_vector< E, typename meta::is_void< E >::type > & o)
inline

Definition at line 716 of file sharedVector.h.

◆ original_type()

template<typename E >
ScalarType epics::pvData::shared_vector< E, typename meta::is_void< E >::type >::original_type ( ) const
inline

Definition at line 748 of file sharedVector.h.

◆ set_original_type()

template<typename E >
shared_vector & epics::pvData::shared_vector< E, typename meta::is_void< E >::type >::set_original_type ( ScalarType t)
inline

Definition at line 747 of file sharedVector.h.

◆ swap()

template<typename E >
void epics::pvData::shared_vector< E, typename meta::is_void< E >::type >::swap ( shared_vector< E, typename meta::is_void< E >::type > & o)
inline

Definition at line 736 of file sharedVector.h.

Friends And Related Symbol Documentation

◆ shared_vector

template<typename E >
template<typename E1 , class Enable1 >
friend class shared_vector
friend

Definition at line 661 of file sharedVector.h.


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