18 template<user_type UserType>
51 boost::shared_ptr<NDRegisterAccessor<UserType>>
getImpl();
68 template<user_type UserType>
70 _impl = newAccessor.
_impl;
74 template<user_type UserType>
76 _impl = boost::static_pointer_cast<TransferElement>(newImpl);
81 template<user_type UserType>
88 template<user_type UserType>
95 template<user_type UserType>
102 template<user_type UserType>
104 return boost::dynamic_pointer_cast<NDRegisterAccessor<UserType>>(_impl);
115 typename T::value_type;
116 requires std::is_base_of<NDRegisterAccessorAbstractor<typename T::value_type>, T>::value;
Base class for the register accessor abstractors (ScalarRegisterAccessor, OneDRegisterAccessor and Tw...
NDRegisterAccessorAbstractor(boost::shared_ptr< NDRegisterAccessor< UserType > > impl)
NDRegisterAccessor< UserType > * get()
boost::shared_ptr< NDRegisterAccessor< UserType > > getImpl()
NDRegisterAccessorAbstractor(const NDRegisterAccessorAbstractor &)=default
Declare that we want the default copy constructor although we delete the assigmnent operator.
void replace(boost::shared_ptr< NDRegisterAccessor< UserType > > newImpl)
Alternative signature of replace() with the same functionality, used when a pointer to the implementa...
const NDRegisterAccessorAbstractor & operator=(const NDRegisterAccessorAbstractor &rightHandSide) const =delete
Prevent copying by operator=, since it will be confusing (operator= may also be overloaded to access ...
const NDRegisterAccessor< UserType > * get() const
NDRegisterAccessorAbstractor()=default
Create an uninitialised abstractor - just for late initialisation.
void replace(const NDRegisterAccessorAbstractor< UserType > &newAccessor)
Assign a new accessor to this NDRegisterAccessorAbstractor.
N-dimensional register accessor.
Base class for register accessors abstractors independent of the UserType.
boost::shared_ptr< TransferElement > _impl
Untyped pointer to implementation.
Concept requiring a type to be an NDRegisterAccessorAbstractor-derived type.
Concept requiring a type to be one of the supported ChimeraTK UserTypes.