21 #include "cafDataFieldAccessor.h"
22 #include "cafRpcClient.h"
26 template <
class DataType>
33 , m_fieldOwner( fieldOwner )
34 , m_fieldName( fieldName )
38 std::unique_ptr<caffa::DataFieldAccessor<DataType>>
clone()
const override
40 return std::make_unique<DataFieldAccessor<DataType>>( m_client, m_fieldOwner, m_fieldName );
43 DataType
value()
override {
return m_client->
get<DataType>( m_fieldOwner, m_fieldName ); }
47 return m_client->
set<DataType>( m_fieldOwner, m_fieldName,
value );
54 std::string m_fieldName;
Abstract but typed data field accessor. Inherit to create different storage mechanisms.
Definition: cafDataFieldAccessor.h:43
Definition: cafObjectHandle.h:55
Definition: cafRpcClient.h:38
DataType get(const caffa::ObjectHandle *objectHandle, const std::string &fieldName) const
Get a value through RPC.
Definition: cafRpcClient.h:116
void set(const caffa::ObjectHandle *objectHandle, const std::string &fieldName, const DataType &value)
Set a value through RPC.
Definition: cafRpcClient.h:126
Definition: cafRpcDataFieldAccessor.h:28
void setValue(const DataType &value) override
Set the value with the accessor. Will throw a std::runtime_exception if the accessor has limits and t...
Definition: cafRpcDataFieldAccessor.h:45
DataType value() override
Get the field value.
Definition: cafRpcDataFieldAccessor.h:43
std::unique_ptr< caffa::DataFieldAccessor< DataType > > clone() const override
Clone the accessor using polymorphism.
Definition: cafRpcDataFieldAccessor.h:38