OSSIA
Open Scenario System for Interactive Application
|
A protocol used to expose a local application's data through multiple other protocols. More...
A protocol used to expose a local application's data through multiple other protocols.
For instance use this when developing an artistic application with parameters that you want to be able to control from another software.
Public Member Functions | |
multiplex_protocol (const multiplex_protocol &)=delete | |
multiplex_protocol (multiplex_protocol &&)=delete | |
multiplex_protocol & | operator= (const multiplex_protocol &)=delete |
multiplex_protocol & | operator= (multiplex_protocol &&)=delete |
bool | pull (ossia::net::parameter_base &) override |
Pulls a value from the server synchronously. More... | |
bool | push (const ossia::net::parameter_base &addr, const ossia::value &v) override |
Send a value to the network. | |
bool | push_raw (const full_parameter_data &) override |
Send a value to the network. | |
bool | observe (ossia::net::parameter_base &, bool) override |
Notify the network that a parameter should be listened to. More... | |
bool | update (ossia::net::node_base &node_base) override |
If the protocol supports it, request the namespace corresponding to this node. If the update takes too long, nodes may be dropped as there is a default timeout. | |
bool | echo_incoming_message (const message_origin_identifier &, const parameter_base &, const ossia::value &v) override |
called when some protocol on the same device received a message. More... | |
void | stop () override |
void | set_device (ossia::net::device_base &dev) override |
It is mandatory to call this function from device implementations, when the protocol is set. | |
void | expose_to (std::unique_ptr< ossia::net::protocol_base > p) |
void | stop_expose_to (const ossia::net::protocol_base &p) |
Stop exposition to a protocol. It will be deleted. | |
void | clear () |
const auto & | get_protocols () const |
The protocols we are currently exposing this device through. | |
Public Member Functions inherited from ossia::net::protocol_base | |
protocol_base (flags f) | |
protocol_base (const protocol_base &)=delete | |
protocol_base (protocol_base &&)=delete | |
protocol_base & | operator= (const protocol_base &)=delete |
protocol_base & | operator= (protocol_base &&)=delete |
virtual std::future< void > | pull_async (parameter_base &) |
Pulls a value from the server asynchronously. More... | |
virtual void | request (parameter_base &) |
Request an update on a value. | |
virtual bool | push (const parameter_base &, ossia::value &&v) |
bool | push (const parameter_base &p) |
virtual bool | push_bundle (const std::vector< const ossia::net::parameter_base * > &) |
Send many values in one go if the protocol supports it. | |
virtual bool | push_bundle (tcb::span< ossia::bundle_element >) |
virtual bool | push_bundle_bounded (tcb::span< ossia::bundle_element >) |
virtual bool | push_raw_bundle (const std::vector< full_parameter_data > &) |
Send a value to the network. | |
virtual bool | publish (const parameter_base &) |
Notify the network that a parameter is to be published. More... | |
virtual bool | unpublish (const parameter_base &) |
Notify the network that a parameter is to be removed. More... | |
virtual bool | observe_quietly (parameter_base &, bool) |
Begin observation without notifying the other computers. | |
virtual std::future< void > | update_async (node_base &node_base) |
If the protocol supports it, request the namespace corresponding to this node. | |
virtual void | set_logger (const network_logger &l) |
Replace the loggers used. | |
virtual const network_logger & | get_logger () const noexcept |
virtual bool | connected () const noexcept |
virtual void | connect () |
virtual void | start_execution () |
virtual void | stop_execution () |
virtual void | set_feedback (bool feedback) |
flags | get_flags () const noexcept |
bool | test_flag (flags f) const noexcept |
Additional Inherited Members | |
Public Types inherited from ossia::net::protocol_base | |
enum | flags { SupportsMultiplex = (1 << 0) } |
Public Attributes inherited from ossia::net::protocol_base | |
Nano::Signal< void()> | on_connection_open |
Nano::Signal< void()> | on_connection_closed |
Nano::Signal< void()> | on_connection_failure |
Protected Attributes inherited from ossia::net::protocol_base | |
const flags | m_flags {} |
network_logger | m_logger |
|
overridevirtual |
Pulls a value from the server synchronously.
Implements ossia::net::protocol_base.
|
overridevirtual |
Notify the network that a parameter should be listened to.
In some protocols (Minuit, OSCQuery), this may send a message to the other client so that it regularly sends values of this parameter to the local computer.
If a parameter is listened to, when a message is received, parameter_base::setValue will be called, which will notify the local signals. Else, parameter_base::setValueQuiet will be called : the value will be updated but the signals won't be notified.
Implements ossia::net::protocol_base.
|
overridevirtual |
called when some protocol on the same device received a message.
This can be used to echo the message to other protocols on the same device.
Reimplemented from ossia::net::protocol_base.
void ossia::net::multiplex_protocol::expose_to | ( | std::unique_ptr< ossia::net::protocol_base > | p | ) |
Use this to add protocols through which you will expose the device. For instance OSC, Minuit, etc.