VISR  0.11.8
Versatile Interactive Scene Renderer
visr::ParameterPortBase Class Referenceabstract

#include <parameter_port_base.hpp>

Inheritance diagram for visr::ParameterPortBase:
visr::ParameterInputBase visr::ParameterOutputBase visr::ParameterInput< visr::pml::DoubleBufferingProtocol, visr::pml::ListenerPosition > visr::ParameterInput< visr::pml::DoubleBufferingProtocol, visr::pml::ObjectVector > visr::ParameterInput< visr::pml::DoubleBufferingProtocol, visr::pml::VectorParameter< SampleType > > visr::ParameterInput< visr::pml::MessageQueueProtocol, visr::pml::StringParameter > visr::ParameterInput< visr::pml::MessageQueueProtocol, visr::reverbobject::LateReverbParameter > visr::ParameterInput< visr::pml::SharedDataProtocol, visr::pml::MatrixParameter< SampleType > > visr::ParameterInput< visr::pml::SharedDataProtocol, visr::pml::ObjectVector > visr::ParameterInput< visr::pml::SharedDataProtocol, visr::pml::TimeFrequencyParameter< SampleType > > visr::ParameterInput< ProtocolT, ParameterT > visr::PolymorphicParameterInput visr::ParameterOutput< visr::pml::DoubleBufferingProtocol, visr::pml::BiquadParameterMatrix< CoefficientType > > visr::ParameterOutput< visr::pml::DoubleBufferingProtocol, visr::pml::BiquadParameterMatrix< SampleType > > visr::ParameterOutput< visr::pml::DoubleBufferingProtocol, visr::pml::ListenerPosition > visr::ParameterOutput< visr::pml::DoubleBufferingProtocol, visr::pml::ObjectVector > visr::ParameterOutput< visr::pml::DoubleBufferingProtocol, visr::pml::SignalRoutingParameter > visr::ParameterOutput< visr::pml::DoubleBufferingProtocol, visr::pml::VectorParameter< Afloat > > visr::ParameterOutput< visr::pml::DoubleBufferingProtocol, visr::pml::VectorParameter< CoefficientType > > visr::ParameterOutput< visr::pml::DoubleBufferingProtocol, visr::pml::VectorParameter< SampleType > > visr::ParameterOutput< visr::pml::MessageQueueProtocol, visr::pml::IndexedValueParameter > visr::ParameterOutput< visr::pml::MessageQueueProtocol, visr::pml::StringParameter > visr::ParameterOutput< visr::pml::MessageQueueProtocol, visr::reverbobject::LateReverbParameter > visr::ParameterOutput< visr::pml::SharedDataProtocol, visr::pml::MatrixParameter< CoefficientType > > visr::ParameterOutput< visr::pml::SharedDataProtocol, visr::pml::MatrixParameter< SampleType > > visr::ParameterOutput< visr::pml::SharedDataProtocol, visr::pml::TimeFrequencyParameter< SampleType > > visr::ParameterOutput< ProtocolT, ParameterT > visr::PolymorphicParameterOutput

Public Types

using Direction = PortBase::Direction
 

Public Member Functions

 ParameterPortBase (char const *name, Component &parent, PortBase::Direction direction, ParameterType const &parameterType, CommunicationProtocolType const &protocolType, ParameterConfigBase const &parameterConfig)
 
 ParameterPortBase (char const *name, Component &parent, PortBase::Direction direction, ParameterType const &parameterType, CommunicationProtocolType const &protocolType)
 
 ParameterPortBase (ParameterPortBase const &)=delete
 
 ParameterPortBase (ParameterPortBase &&)=delete
 
ParameterPortBaseoperator= (ParameterPortBase const &)=delete
 
ParameterPortBaseoperator= (ParameterPortBase &&)=delete
 
virtual ~ParameterPortBase ()
 
void setParameterConfig (ParameterConfigBase const &parameterConfig)
 
ParameterType parameterType () const
 
CommunicationProtocolType protocolType () const
 
ParameterConfigBase const & parameterConfig () const
 
impl::ParameterPortBaseImplementationimplementation ()
 
impl::ParameterPortBaseImplementation const & implementation () const
 

Protected Member Functions

virtual void setProtocol (CommunicationProtocolBase *protocol)=0
 

Member Typedef Documentation

◆ Direction

Temporary solution, as PortBase is going to vanish. @ todo: Decide whether we need a global enumerarion for port directions, or whether the 'direction' parameter can be hidden from the user API.

Constructor & Destructor Documentation

◆ ParameterPortBase() [1/4]

visr::ParameterPortBase::ParameterPortBase ( char const *  name,
Component parent,
PortBase::Direction  direction,
ParameterType const &  parameterType,
CommunicationProtocolType const &  protocolType,
ParameterConfigBase const &  parameterConfig 
)
explicit

◆ ParameterPortBase() [2/4]

visr::ParameterPortBase::ParameterPortBase ( char const *  name,
Component parent,
PortBase::Direction  direction,
ParameterType const &  parameterType,
CommunicationProtocolType const &  protocolType 
)

◆ ParameterPortBase() [3/4]

visr::ParameterPortBase::ParameterPortBase ( ParameterPortBase const &  )
delete

Deleted copy constructor to prevent copy construction.

◆ ParameterPortBase() [4/4]

visr::ParameterPortBase::ParameterPortBase ( ParameterPortBase &&  )
delete

Deleted move constructor to prevent copy construction.

◆ ~ParameterPortBase()

visr::ParameterPortBase::~ParameterPortBase ( )
virtual

@ TODO: Do we intend to use parameter ports in a virtual way? Obviously yes.

Member Function Documentation

◆ implementation() [1/2]

impl::ParameterPortBaseImplementation & visr::ParameterPortBase::implementation ( )

Check whether the port is connected to a valid protocol.

◆ implementation() [2/2]

impl::ParameterPortBaseImplementation const & visr::ParameterPortBase::implementation ( ) const

◆ operator=() [1/2]

ParameterPortBase& visr::ParameterPortBase::operator= ( ParameterPortBase const &  )
delete

Deleted assignment operator to prevent assignment.

◆ operator=() [2/2]

ParameterPortBase& visr::ParameterPortBase::operator= ( ParameterPortBase &&  )
delete

Deleted move assignment operator to prevent moving.

◆ parameterConfig()

ParameterConfigBase const & visr::ParameterPortBase::parameterConfig ( ) const

◆ parameterType()

ParameterType visr::ParameterPortBase::parameterType ( ) const

◆ protocolType()

CommunicationProtocolType visr::ParameterPortBase::protocolType ( ) const

◆ setParameterConfig()

void visr::ParameterPortBase::setParameterConfig ( ParameterConfigBase const &  parameterConfig)

Set a new parameter configuration. If a configuration is already set, it is overwritten. Must be called only during the initialisation phase

Parameters
parameterConfigThe new parameter configuration.
Exceptions
std::runtime_errorWhen called after the signal flow is initialised.

◆ setProtocol()

virtual void visr::ParameterPortBase::setProtocol ( CommunicationProtocolBase protocol)
protectedpure virtual

Type-specific method to check and set the connected protocol.

Todo:
Reconsider interface.
Exceptions
std::invalid_argumentif the protocol type does not match the concrete port type. At the moment, we use RTTI as the final check.

Implemented in visr::ParameterOutput< ProtocolT, ParameterT >, visr::ParameterOutput< visr::pml::SharedDataProtocol, visr::pml::TimeFrequencyParameter< SampleType > >, visr::ParameterOutput< visr::pml::DoubleBufferingProtocol, visr::pml::SignalRoutingParameter >, visr::ParameterOutput< visr::pml::DoubleBufferingProtocol, visr::pml::VectorParameter< SampleType > >, visr::ParameterOutput< visr::pml::DoubleBufferingProtocol, visr::pml::ObjectVector >, visr::ParameterOutput< visr::pml::DoubleBufferingProtocol, visr::pml::BiquadParameterMatrix< SampleType > >, visr::ParameterOutput< visr::pml::DoubleBufferingProtocol, visr::pml::ListenerPosition >, visr::ParameterOutput< visr::pml::MessageQueueProtocol, visr::pml::IndexedValueParameter >, visr::ParameterOutput< visr::pml::DoubleBufferingProtocol, visr::pml::BiquadParameterMatrix< CoefficientType > >, visr::ParameterOutput< visr::pml::SharedDataProtocol, visr::pml::MatrixParameter< SampleType > >, visr::ParameterOutput< visr::pml::DoubleBufferingProtocol, visr::pml::VectorParameter< CoefficientType > >, visr::ParameterOutput< visr::pml::MessageQueueProtocol, visr::reverbobject::LateReverbParameter >, visr::ParameterOutput< visr::pml::SharedDataProtocol, visr::pml::MatrixParameter< CoefficientType > >, visr::ParameterOutput< visr::pml::MessageQueueProtocol, visr::pml::StringParameter >, visr::ParameterOutput< visr::pml::DoubleBufferingProtocol, visr::pml::VectorParameter< Afloat > >, visr::ParameterInput< ProtocolT, ParameterT >, visr::ParameterInput< visr::pml::SharedDataProtocol, visr::pml::ObjectVector >, visr::ParameterInput< visr::pml::SharedDataProtocol, visr::pml::TimeFrequencyParameter< SampleType > >, visr::ParameterInput< visr::pml::DoubleBufferingProtocol, visr::pml::VectorParameter< SampleType > >, visr::ParameterInput< visr::pml::DoubleBufferingProtocol, visr::pml::ObjectVector >, visr::ParameterInput< visr::pml::DoubleBufferingProtocol, visr::pml::ListenerPosition >, visr::ParameterInput< visr::pml::SharedDataProtocol, visr::pml::MatrixParameter< SampleType > >, visr::ParameterInput< visr::pml::MessageQueueProtocol, visr::reverbobject::LateReverbParameter >, visr::ParameterInput< visr::pml::MessageQueueProtocol, visr::pml::StringParameter >, visr::PolymorphicParameterInput, and visr::PolymorphicParameterOutput.


The documentation for this class was generated from the following files: