VISR  0.12.0
Versatile Interactive Scene Renderer
parameter_port_base.hpp
Go to the documentation of this file.
1 /* Copyright Institute of Sound and Vibration Research - All rights reserved */
2 
3 #ifndef VISR_PARAMETER_PORT_BASE_HPP_INCLUDED
4 #define VISR_PARAMETER_PORT_BASE_HPP_INCLUDED
5 
6 #include "port_base.hpp"
7 
8 #include "export_symbols.hpp"
9 #include "parameter_type.hpp"
11 
12 namespace visr
13 {
14 
15 // Forward declarations
16 class Component;
17 class CommunicationProtocolBase;
18 class ParameterConfigBase;
19 
20 namespace impl
21 {
22 class ParameterPortBaseImplementation;
23 }
24 
29 class VISR_CORE_LIBRARY_SYMBOL ParameterPortBase
30 {
31 public:
38 
39  explicit ParameterPortBase( char const * name,
40  Component & parent,
41  PortBase::Direction direction,
42  ParameterType const & parameterType,
43  CommunicationProtocolType const & protocolType,
44  ParameterConfigBase const & parameterConfig );
45 
46  ParameterPortBase( char const * name,
47  Component & parent,
48  PortBase::Direction direction,
49  ParameterType const & parameterType,
50  CommunicationProtocolType const & protocolType );
51 
55  ParameterPortBase( ParameterPortBase const & ) = delete;
56 
60  ParameterPortBase( ParameterPortBase && ) = delete;
61 
65  ParameterPortBase& operator=( ParameterPortBase const & ) = delete;
66 
70  ParameterPortBase& operator=( ParameterPortBase && ) = delete;
71 
72 
76  virtual ~ParameterPortBase();
77 
84  void setParameterConfig( ParameterConfigBase const & parameterConfig );
85 
86 
87  ParameterType parameterType() const;
88 
89  CommunicationProtocolType protocolType() const;
90 
91  ParameterConfigBase const & parameterConfig() const;
92 
93 #if 0
94 
97  void connectProtocol( CommunicationProtocolBase * protocol );
98 #endif
99 
102  // virtual bool isConnected() const = 0;
103 
104  impl::ParameterPortBaseImplementation & implementation();
105 
106  impl::ParameterPortBaseImplementation const & implementation() const;
107 protected:
114  virtual void setProtocol( CommunicationProtocolBase * protocol ) = 0;
115 
116 private:
117 
124 };
125 
126 } // namespace visr
127 
128 #endif // #ifndef VISR_PARAMETER_PORT_BASE_HPP_INCLUDED
Direction
Definition: port_base.hpp:22
uint64_t ParameterType
Definition: parameter_type.hpp:13
Definition: parameter_port_base_implementation.hpp:30
std::uint64_t CommunicationProtocolType
Definition: communication_protocol_type.hpp:14
Definition: component.hpp:38
Definition: options.cpp:10
Definition: parameter_config_base.hpp:22
Definition: communication_protocol_base.hpp:21
Definition: parameter_port_base.hpp:29