2#include <ossia/dataflow/audio_port.hpp>
3#include <ossia/dataflow/dataflow_fwd.hpp>
4#include <ossia/dataflow/geometry_port.hpp>
5#include <ossia/dataflow/midi_port.hpp>
6#include <ossia/dataflow/value_port.hpp>
7#include <ossia/detail/nullable_variant.hpp>
12struct immediate_glutton_connection
15struct immediate_strict_connection
21 both = inbound | outbound
24 required_sides_t required_sides{both};
27struct delayed_glutton_connection
30 delay_line_type buffer;
33struct delayed_strict_connection
36 delay_line_type buffer;
41struct dependency_connection
46 : ossia::nullable_variant<
47 immediate_glutton_connection, immediate_strict_connection,
48 delayed_glutton_connection, delayed_strict_connection, dependency_connection>
50 using nullable_variant::nullable_variant;
51 connection() noexcept = default;
52 ~connection() = default;
53 connection(const connection&) = default;
54 connection(connection&&) noexcept = default;
55 connection& operator=(const connection&) = default;
56 connection& operator=(connection&&) noexcept = default;
57 connection(immediate_glutton_connection c) noexcept: nullable_variant{c} { }
58 connection(immediate_strict_connection c)
noexcept: nullable_variant{c} { }
59 connection(delayed_glutton_connection&& c)
noexcept: nullable_variant{std::move(c)} { }
60 connection(delayed_strict_connection&& c)
noexcept: nullable_variant{std::move(c)} { }
61 connection(
const delayed_glutton_connection& c)
noexcept: nullable_variant{c} { }
62 connection(
const delayed_strict_connection& c)
noexcept: nullable_variant{c} { }
63 connection(dependency_connection c)
noexcept: nullable_variant{c} { }