VISR  0.11.1
Versatile Interactive Scene Renderer
polymorphic_parameter_input.hpp
Go to the documentation of this file.
1 /* Copyright Institute of Sound and Vibration Research - All rights reserved */
2 
3 #ifndef VISR_POLYMORPHIC_PARAMETER_INPUT_HPP_INCLUDED
4 #define VISR_POLYMORPHIC_PARAMETER_INPUT_HPP_INCLUDED
5 
6 #include "export_symbols.hpp"
7 #include "parameter_input.hpp"
9 
10 #include <memory>
11 
12 namespace visr
13 {
14 
20 class VISR_CORE_LIBRARY_SYMBOL PolymorphicParameterInput: public ParameterInputBase
21 {
22 public:
31  /*VISR_CORE_LIBRARY_SYMBOL*/ explicit PolymorphicParameterInput( char const * name,
32  Component & parent,
33  ParameterType const & parameterType,
34  CommunicationProtocolType const & protocolType,
35  ParameterConfigBase const & paramConfig );
36 
44  /*VISR_CORE_LIBRARY_SYMBOL*/ explicit PolymorphicParameterInput( char const * name,
45  Component & parent,
46  ParameterType const & parameterType,
47  CommunicationProtocolType const & protocolType );
48 
53  /*VISR_CORE_LIBRARY_SYMBOL*/ virtual ~PolymorphicParameterInput() override;
54 
59  /*VISR_CORE_LIBRARY_SYMBOL*/ void setProtocol( CommunicationProtocolBase * protocol ) override;
60 
67  /*VISR_CORE_LIBRARY_SYMBOL*/ CommunicationProtocolBase::Input & protocolInput() override;
68 
75  /*VISR_CORE_LIBRARY_SYMBOL*/ CommunicationProtocolBase::Input const & protocolInput() const;
76 
77 private:
81  std::unique_ptr<CommunicationProtocolBase::Input> mProtocolInput;
82 };
83 
84 } // namespace visr
85 
86 #endif // #ifndef VISR_POLYMORPHIC_PARAMETER_INPUT_HPP_INCLUDED
Definition: communication_protocol_base.hpp:94
uint64_t ParameterType
Definition: parameter_type.hpp:13
std::uint64_t CommunicationProtocolType
Definition: communication_protocol_type.hpp:14
Definition: component.hpp:38
Definition: parameter_input.hpp:19
Definition: options.cpp:10
Definition: parameter_config_base.hpp:22
Definition: communication_protocol_base.hpp:21
Definition: polymorphic_parameter_input.hpp:20