Template Class PVVectorStorage

Inheritance Relationships

Base Type

  • public Base

Class Documentation

template<typename T, class Base>
class PVVectorStorage : public Base

Common code for PV*Array.

Public Types

typedef T value_type
typedef T *pointer
typedef const T *const_pointer
typedef ::epics::pvData::shared_vector<T> svector
typedef ::epics::pvData::shared_vector<const T> const_svector

Public Functions

inline virtual ~PVVectorStorage()
virtual const_svector view() const = 0

Fetch a read-only view of the current array data.

virtual void swap(const_svector &other) = 0

Exchange our contents for the provided.

Callers must ensure that postPut() is called after the last swap() operation.

Before you call this directly, consider using the reuse(), or replace() methods.

Throws

std::logic_error – for Immutable arrays.

virtual void replace(const const_svector &next) = 0

Discard current contents and replaced with the provided. Fails for Immutable arrays calls postPut()

inline svector reuse()

Remove and return the current array data or an unique copy if shared.

Does not (and should not) call postPut()

The returned shared_vector<T> will have unique()==true.

Protected Functions

template<typename A>
inline explicit PVVectorStorage(A a)