3 #ifndef VISR_PML_SHARED_DATA_PROTOCOL_HPP_INCLUDED 4 #define VISR_PML_SHARED_DATA_PROTOCOL_HPP_INCLUDED 32 template<
class DataType >
class Input;
34 template<
class DataType >
class Output;
47 static constexpr
const char *
staticName() {
return sProtocolName; }
70 std::unique_ptr<ParameterConfigBase>
const mParameterConfig;
75 std::unique_ptr<ParameterBase> mData;
78 std::vector<InputBase*> mInputs;
80 static constexpr
const char * sProtocolName =
"SharedData";
90 : mProtocol( nullptr )
104 return mProtocol->data();
109 mProtocol = protocol;
115 template<
class MessageType>
120 MessageType
const &
data()
const 122 return static_cast<MessageType const&
>(InputBase::data());
136 : mProtocol( nullptr )
150 return mProtocol->data();
155 mProtocol = protocol;
159 bool isConnected()
const override 161 return mProtocol !=
nullptr;
168 template<
class MessageType>
174 return static_cast<MessageType&
>(OutputBase::data());
183 #endif // VISR_PML_SHARED_DATA_PROTOCOL_HPP_INCLUDED static constexpr const char * staticName()
Definition: shared_data_protocol.hpp:47
Definition: shared_data_protocol.hpp:34
OutputBase()
Definition: shared_data_protocol.hpp:135
uint64_t ParameterType
Definition: parameter_type.hpp:13
static constexpr CommunicationProtocolType staticType()
Definition: shared_data_protocol.hpp:45
ParameterBase & data()
Definition: shared_data_protocol.hpp:148
Definition: shared_data_protocol.hpp:25
std::uint64_t CommunicationProtocolType
Definition: communication_protocol_type.hpp:14
#define DEFINE_COMMUNICATION_PROTOCOL(CommunicationProtocolClassType, CommunicationProtocolId, CommunicationProtocolName)
Definition: communication_protocol_type.hpp:44
MessageType & data()
Definition: shared_data_protocol.hpp:172
Definition: options.cpp:10
Definition: parameter_config_base.hpp:22
Definition: shared_data_protocol.hpp:129
ParameterBase & data()
Definition: shared_data_protocol.hpp:49
constexpr CommunicationProtocolType communicationProtocolTypeFromString(char const *typeString)
Definition: communication_protocol_type.hpp:16
SharedDataProtocol * getProtocol() override
Definition: shared_data_protocol.hpp:144
Definition: communication_protocol_base.hpp:21
ParameterBase const & data() const
Definition: shared_data_protocol.hpp:54
Definition: parameter_base.hpp:18
void setProtocolInstance(SharedDataProtocol *protocol)
Definition: shared_data_protocol.hpp:153
Definition: communication_protocol_base.hpp:131
SharedDataProtocol const * getProtocol() const override
Definition: shared_data_protocol.hpp:146