30 std::map< std::string, std::string > props;
34 NodeHelper(
const std::string& name,
int id) : name(name), id(
id) {}
38 std::vector<NodeHelper*> children;
39 std::vector<EdgeHelper> edges;
40 std::map< std::string, std::string > props;
43 void parseDotLine(
const std::string& line, std::map<std::string, detail::NodeHelper*>& nodesLookup,
44 std::map<std::string, std::map<std::string, std::string> >& funcLookup,
detail::NodeHelper*& entryNode);
46 std::shared_ptr< Node > buildNodeFromNodeHelper(
NodeHelper* nodeHelper,
47 std::map<std::string, std::shared_ptr<Node> >& nodes,
48 std::map<std::string, std::shared_ptr<sys::ActionItemExecutor> >& edgeExecs,
49 std::map<std::string, std::shared_ptr<sys::ActionItemExecutor> >& predExecs,
50 const std::map<std::string, NodeHelper*>& nodesLookup,
51 const std::map<std::string, std::map<std::string, std::string> >& funcLookup);
53 std::shared_ptr<Edge> buildEdgeWithSubsequentNodes(
EdgeHelper& edgeHelper,
55 std::map<std::string, std::shared_ptr<Node> >& nodes,
56 std::map<std::string, std::shared_ptr<sys::ActionItemExecutor> >& edgeExecs,
57 std::map<std::string, std::shared_ptr<sys::ActionItemExecutor> >& predExecs,
58 const std::map<std::string, NodeHelper*>& nodesLookup,
59 const std::map<std::string, std::map<std::string, std::string> >& funcLookup);
61 std::shared_ptr<sys::ActionItemExecutor> buildActionItemExecutorFromHelperProps(
const std::map<std::string, std::string>& props);
70 class MAC_DLLEXPORT
Node :
public std::enable_shared_from_this< Node > {
73 Node(
int id, std::shared_ptr< Predicate > pred =
nullptr);
81 std::shared_ptr< Predicate > getPredicate();
84 void setPredicate(std::shared_ptr< Predicate > pred);
94 std::pair< bool, bool > tryToFindInfiniteLoop(std::shared_ptr< Node > node, std::set< std::shared_ptr<Node> > nodesPath,
95 std::set< std::shared_ptr<Node> > nodesDirectPath);
97 bool hasTerminateNode(std::shared_ptr< Node > node,
98 std::map< std::shared_ptr<Node>, std::set< std::shared_ptr<Node> > > nodesBranches,
99 std::set< std::shared_ptr<Node> > directNodesPath);
103 std::shared_ptr< Predicate > m_predicate;
106 MAC_DLLEXPORT std::shared_ptr< Node > loadFromADot(
const std::string& adotFile);
Узел графа
Definition: graph.h:70
Мультитиповой словарь
Definition: anymap.h:79