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>
12 struct immediate_glutton_connection
15 struct immediate_strict_connection
21 both = inbound | outbound
24 required_sides_t required_sides{both};
27 struct delayed_glutton_connection
30 delay_line_type buffer;
33 struct delayed_strict_connection
36 delay_line_type buffer;
41 struct 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} { }