MUDA
Loading...
Searching...
No Matches
graph_graph_viewer.h
1#pragma once
2#include <muda/graph/graph_viewer.h>
3#include <muda/compute_graph/compute_graph_var.h>
4
5namespace muda
6{
7template <>
9{
10 public:
11 using ROView = GraphViewer;
12 using RWView = GraphViewer;
13
14 protected:
15 friend class ComputeGraph;
16 friend class ComputeGraphVarManager;
17
18 using ComputeGraphVarBase::ComputeGraphVarBase;
19
20 ComputeGraphVar(ComputeGraphVarManager* var_manager, std::string_view name, VarId var_id) MUDA_NOEXCEPT
21 : ComputeGraphVarBase(var_manager, name, var_id)
22 {
23 }
24
26 std::string_view name,
27 VarId var_id,
28 const RWView& init_value) MUDA_NOEXCEPT
29 : ComputeGraphVarBase(var_manager, name, var_id, true),
30 m_value(init_value)
31 {
32 }
33
34 virtual ~ComputeGraphVar() = default;
35
36 public:
37 ROView ceval() const { return _ceval(m_value); }
38 RWView eval() { return _eval(m_value); }
39
40 operator ROView() const { return ceval(); }
41 operator RWView() { return eval(); }
42
43 void update(const RWView& view);
44 ComputeGraphVar<GraphViewer>& operator=(const RWView& view);
45
46 virtual void graphviz_def(std::ostream& o,
47 const ComputeGraphGraphvizOptions& options) const override;
48
49 private:
50 RWView m_value;
51};
52
53} // namespace muda
54
55#include "details/graph_graph_viewer.inl"
Definition graphviz_options.h:6
Definition compute_graph.h:38
Definition compute_graph_var.h:17
Definition compute_graph_var.h:90
Definition compute_graph_var_manager.h:15
Definition graph_viewer.h:8
Definition compute_graph_var_id.h:6