Skip to main content

PipelineNode Class

Declaration

class simaai::neat::graph::nodes::PipelineNode { ... }

Included Headers

#include <PipelineNode.h>

Base class

classNode

Base class for hybrid graph nodes. More...

Public Constructors Index

PipelineNode (const simaai::neat::NodeGroup &group, std::string label={})
PipelineNode (simaai::neat::NodeGroup &&group, std::string label={})
PipelineNode (std::shared_ptr< simaai::neat::Node > node, std::string label={})

Public Member Functions Index

Backendbackend () const override
std::stringkind () const override
std::stringuser_label () const override
std::vector< PortDesc >input_ports () const override
std::vector< PortDesc >output_ports () const override
const simaai::neat::NodeGroup &group () const
boolis_source_like () const
boolrequires_input () const

Private Member Functions Index

voidinit_ ()

Private Member Attributes Index

simaai::neat::NodeGroupgroup_
std::stringlabel_
std::stringkind_
boolis_source_like_ = false
boolrequires_input_ = true

Definition at line 20 of file PipelineNode.h.

Public Constructors

PipelineNode()

simaai::neat::graph::nodes::PipelineNode::PipelineNode (const simaai::neat::NodeGroup & group, std::string label={})
inline explicit

Definition at line 22 of file PipelineNode.h.

22 explicit PipelineNode(const simaai::neat::NodeGroup& group, std::string label = {})
23 : group_(group), label_(std::move(label)) {
24 init_();
25 }

PipelineNode()

simaai::neat::graph::nodes::PipelineNode::PipelineNode (simaai::neat::NodeGroup && group, std::string label={})
inline explicit

Definition at line 27 of file PipelineNode.h.

27 explicit PipelineNode(simaai::neat::NodeGroup&& group, std::string label = {})
28 : group_(std::move(group)), label_(std::move(label)) {
29 init_();
30 }

PipelineNode()

simaai::neat::graph::nodes::PipelineNode::PipelineNode (std::shared_ptr< simaai::neat::Node > node, std::string label={})
inline explicit

Definition at line 32 of file PipelineNode.h.

32 explicit PipelineNode(std::shared_ptr<simaai::neat::Node> node, std::string label = {})
33 : group_(std::vector<std::shared_ptr<simaai::neat::Node>>{std::move(node)}),
34 label_(std::move(label)) {
35 init_();
36 }

Public Member Functions

backend()

Backend simaai::neat::graph::nodes::PipelineNode::backend ()
inline virtual

Definition at line 38 of file PipelineNode.h.

38 Backend backend() const override {
40 }

group()

const simaai::neat::NodeGroup& simaai::neat::graph::nodes::PipelineNode::group ()
inline

Definition at line 65 of file PipelineNode.h.

65 const simaai::neat::NodeGroup& group() const {
66 return group_;
67 }

input_ports()

std::vector<PortDesc> simaai::neat::graph::nodes::PipelineNode::input_ports ()
inline virtual

Definition at line 55 of file PipelineNode.h.

55 std::vector<PortDesc> input_ports() const override {
56 if (!requires_input_)
57 return {};
58 return {PortDesc{.name = "in", .spec = OutputSpec{}}};
59 }

is_source_like()

bool simaai::neat::graph::nodes::PipelineNode::is_source_like ()
inline

Definition at line 69 of file PipelineNode.h.

69 bool is_source_like() const {
70 return is_source_like_;
71 }

kind()

std::string simaai::neat::graph::nodes::PipelineNode::kind ()
inline virtual

Definition at line 42 of file PipelineNode.h.

42 std::string kind() const override {
43 return kind_;
44 }

output_ports()

std::vector<PortDesc> simaai::neat::graph::nodes::PipelineNode::output_ports ()
inline virtual

Definition at line 61 of file PipelineNode.h.

61 std::vector<PortDesc> output_ports() const override {
62 return {PortDesc{.name = "out", .spec = OutputSpec{}}};
63 }

requires_input()

bool simaai::neat::graph::nodes::PipelineNode::requires_input ()
inline

Definition at line 72 of file PipelineNode.h.

72 bool requires_input() const {
73 return requires_input_;
74 }

user_label()

std::string simaai::neat::graph::nodes::PipelineNode::user_label ()
inline virtual

Definition at line 46 of file PipelineNode.h.

46 std::string user_label() const override {
47 if (!label_.empty())
48 return label_;
49 if (group_.size() == 1 && group_.nodes().front()) {
50 return group_.nodes().front()->user_label();
51 }
52 return "";
53 }

Private Member Functions

init_()

void simaai::neat::graph::nodes::PipelineNode::init_ ()
inline

Definition at line 77 of file PipelineNode.h.

77 void init_() {
78 bool has_source = false;
79 bool has_push = false;
80 const auto& nodes = group_.nodes();
81 if (nodes.size() == 1 && nodes.front()) {
82 kind_ = nodes.front()->kind();
83 } else {
84 kind_ = "PipelineGroup";
85 }
86
87 for (const auto& n : nodes) {
88 if (!n)
89 continue;
90 const InputRole role = n->input_role();
91 if (role == InputRole::Source)
92 has_source = true;
93 if (role == InputRole::Push)
94 has_push = true;
95 }
96
97 is_source_like_ = has_source && !has_push;
98 requires_input_ = !is_source_like_;
99 }

Private Member Attributes

group_

simaai::neat::NodeGroup simaai::neat::graph::nodes::PipelineNode::group_

Definition at line 101 of file PipelineNode.h.

101 simaai::neat::NodeGroup group_;

is_source_like_

bool simaai::neat::graph::nodes::PipelineNode::is_source_like_ = false

Definition at line 104 of file PipelineNode.h.

104 bool is_source_like_ = false;

kind_

std::string simaai::neat::graph::nodes::PipelineNode::kind_

Definition at line 103 of file PipelineNode.h.

103 std::string kind_;

label_

std::string simaai::neat::graph::nodes::PipelineNode::label_

Definition at line 102 of file PipelineNode.h.

102 std::string label_;

requires_input_

bool simaai::neat::graph::nodes::PipelineNode::requires_input_ = true

Definition at line 105 of file PipelineNode.h.

105 bool requires_input_ = true;

The documentation for this class was generated from the following file:


Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.1.