PVData C++
8.0.6
|
Specialization for storing untyped pointers. More...
#include <misc/pv/sharedVector.h>
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_vector & | operator= (const shared_vector &o) |
void | swap (shared_vector &o) |
size_t | max_size () const |
pointer | data () const |
shared_vector & | set_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_base & | operator= (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. More... | |
const std::tr1::shared_ptr< E > & | dataPtr () const |
size_t | dataOffset () const |
size_t | dataCount () const |
size_t | dataTotal () const |
Friends | |
template<typename E1 , class Enable1 > | |
class | shared_vector |
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. | |
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.