4 #include "spdlog/fmt/fmt.h"
8 Node::Node(
const std::shared_ptr<PipelineImpl>& p,
Id nodeId, std::unique_ptr<Properties> props)
9 : parent(p),
id(nodeId), propertiesHolder(
std::move(props)), properties(*propertiesHolder) {}
45 return fmt::format(
"{}", name);
47 return fmt::format(
"{}[\"{}\"]", group, name);
53 return fmt::format(
"{}", name);
55 return fmt::format(
"{}[\"{}\"]", group, name);
60 std::vector<Node::Connection> myConnections;
61 auto allConnections =
parent.getParentPipeline().getConnections();
62 for(
const auto& conn : allConnections) {
63 if(conn.outputId ==
parent.id && conn.outputName == name && conn.outputGroup == group) {
64 myConnections.push_back(conn);
73 auto outputPipeline =
parent.parent.lock();
74 if(outputPipeline !=
nullptr) {
86 parent.getParentPipeline().link(*
this, in);
91 parent.getParentPipeline().unlink(*
this, in);
95 blocking = newBlocking;
102 return defaultBlocking;
113 return defaultQueueSize;
117 waitForMessage = newWaitForMessage;
121 return waitForMessage.value_or(defaultWaitForMessage);
125 waitForMessage = !reusePreviousMessage;
129 return !waitForMessage.value_or(defaultWaitForMessage);
143 if(count(key) == 0) {
145 Output output(defaultOutput);
148 insert(std::make_pair(key, output));
157 if(count(key) == 0) {
159 Input input(defaultInput);
162 insert(std::make_pair(key, input));
170 std::vector<Node::Output> result;
172 result.push_back(*x);
179 std::vector<Node::Input> result;
181 result.push_back(*x);
188 std::vector<Node::Output*> tmpOutputRefs;
193 tmpOutputRefs.push_back(kv.second);
197 auto*&
map = kvMap.second;
198 for(
auto& kv : *
map) {
199 tmpOutputRefs.push_back(&kv.second);
202 return tmpOutputRefs;
207 std::vector<const Node::Output*> tmpOutputRefs;
212 tmpOutputRefs.push_back(kv.second);
216 const auto*
const&
map = kvMap.second;
217 for(
const auto& kv : *
map) {
218 tmpOutputRefs.push_back(&kv.second);
221 return tmpOutputRefs;
225 std::vector<Node::Input*> tmpInputRefs;
230 tmpInputRefs.push_back(kv.second);
234 auto*&
map = kvMap.second;
235 for(
auto& kv : *
map) {
236 tmpInputRefs.push_back(&kv.second);
244 std::vector<const Node::Input*> tmpInputRefs;
249 tmpInputRefs.push_back(kv.second);
253 const auto*
const&
map = kvMap.second;
254 for(
const auto& kv : *
map) {
255 tmpInputRefs.push_back(&kv.second);
262 for(
auto& outRef : l) {
270 for(
auto& inRef : l) {
278 for(
auto& outMapRef : l) {
286 for(
auto& inMapRef : l) {