1 #ifndef __PREDICATE_H__
2 #define __PREDICATE_H__
5 #include "action_item_executor.h"
20 virtual std::shared_ptr< Edge > getOutputEdge(
const Anymap& val)
const = 0;
23 virtual std::vector< std::shared_ptr<Edge> > getAssignedEdges()
const = 0;
44 void setEdge(std::shared_ptr< Edge > edge) {
49 std::shared_ptr< Edge > m_edge;
59 typedef std::function<bool (const Anymap&)> BooleanPredicateMap;
66 virtual std::shared_ptr< Edge > getOutputEdge(
const Anymap& val)
const;
67 virtual std::vector< std::shared_ptr<Edge> > getAssignedEdges()
const;
70 bool setOutputEdge(std::shared_ptr< Edge >
Edge,
bool val);
73 void setMap(BooleanPredicateMap map);
76 static std::shared_ptr<BooleanPredicate> fromActionItemExecutor(std::shared_ptr<sys::ActionItemExecutor> aiExec);
79 std::shared_ptr<Edge> m_onFalseEdge;
80 std::shared_ptr<Edge> m_onTrueEdge;
81 BooleanPredicateMap m_map;
virtual std::vector< std::shared_ptr< Edge > > getAssignedEdges() const
Возвращает все ребра, привязанные к предикату
Definition: predicate.h:39
virtual std::shared_ptr< Edge > getOutputEdge(const Anymap &val) const
Возвращает ребро по значению данных val.
Definition: predicate.h:35
Бинарный предикат
Definition: predicate.h:57
Мультитиповой словарь
Definition: anymap.h:79
void setEdge(std::shared_ptr< Edge > edge)
Задает ребро
Definition: predicate.h:44
Простой (пропускной) предикат
Definition: predicate.h:31
Предикат графа
Definition: predicate.h:15