* In PVScalarArray Add methods assign, getAs/putFrom, and copyOut/copyIn to allow get/put with implicit convert. assign() copys on PVScalarArray to another converting as necessary. If the types do not match then an allocate and convert is done. getAs/putFrom work with shared_vector<T> and can avoid a allocate and convert operation if the types match. copyOut/copyIn use plain C arrays will do either a copy if the types match, and a convert otherwise. No allocation is performed. * In PVValueArray<T> All array operations re-implemented in terms of two virtual methods virtual const shared_vector<T>& viewUnsafe() const; virtual void swap(shared_vector<T>&); Some convienence methods are also included: shared_vector<const T> view() const shared_vector<T> take() shared_vector<T> reuse() Deprecate get(...), put(...), and shareData(...) Remove getVector() and getSharedVector() Adjust DefaultPVArray accordingly
20 KiB
20 KiB