2 #include <ossia/dataflow/dataflow_fwd.hpp>
3 #include <ossia/dataflow/graph_edge.hpp>
4 #include <ossia/dataflow/transport.hpp>
5 #include <ossia/detail/audio_spin_mutex.hpp>
6 #include <ossia/detail/logger_fwd.hpp>
8 #include <tcb/span.hpp>
10 #include <smallfun.hpp>
22 class OSSIA_EXPORT graph_interface
26 virtual ~graph_interface();
27 [[deprecated]]
virtual void add_node(ossia::node_ptr) = 0;
29 [[deprecated]]
virtual void remove_node(
const ossia::node_ptr&) = 0;
31 [[deprecated]]
virtual void connect(ossia::edge_ptr) = 0;
33 [[deprecated]]
virtual void disconnect(
const ossia::edge_ptr&) = 0;
35 [[deprecated]]
virtual void disconnect(ossia::graph_edge*) = 0;
37 [[deprecated]]
virtual void mark_dirty() = 0;
39 virtual void state(execution_state& e) = 0;
41 virtual void clear() = 0;
43 virtual void print(std::ostream&) = 0;
45 [[nodiscard]]
virtual tcb::span<ossia::graph_node* const> get_nodes() const noexcept
48 std::shared_ptr<edge_pool> pool;
50 ossia::edge_ptr allocate_edge(
51 connection c, outlet_ptr pout, inlet_ptr pin, node_ptr pout_node,
55 struct graph_setup_options
79 int parallel_threads = 8;
80 std::shared_ptr<ossia::logger_type> log{};
81 std::shared_ptr<bench_map> bench{};
84 struct tick_setup_options
104 std::shared_ptr<ossia::graph_interface> make_graph(
const graph_setup_options&);
spdlog::logger & logger() noexcept
Where the errors will be logged. Default is stderr.
Definition: context.cpp:104
ossia::value_with_unit merge(const value_with_unit &vu, const ossia::value &val, ossia::destination_index idx)
merge Merge a computed value in a unit-aware value
Definition: dataspace_visitors.cpp:311
std::ostream & print(std::ostream &out, const state_element &e)
print Print a state_element
Definition: state_element.cpp:23