Ariles
Loading...
Searching...
No Matches
ariles_diagram.h
Go to the documentation of this file.
1/**
2 @file
3 @author Alexander Sherikov
4
5 @copyright 2020 Alexander Sherikov, Licensed under the Apache License, Version 2.0.
6 (see @ref LICENSE or http://www.apache.org/licenses/LICENSE-2.0)
7
8 @brief
9*/
10// cppcheck-suppress-file duplInheritedMember
11
12#pragma once
13
14
15namespace ariles_tests
16{
18 {
19 public:
20 std::string id_;
21 std::string url_;
22
23
24 public:
25 ArilesDependencyParameters(const std::string &id, const std::string &url) : id_(id), url_(url)
26 {
27 }
28
30 const std::string & /*id*/,
31 const std::string & /*label*/) const
32 {
33 return (ariles2::graphviz::Parameters::NodeOptions(id_, url_, std::string("URL=\"") + url_ + "\""));
34 }
35 };
36
37
39 {
40 public:
42 const std::string &id,
43 const std::string &label) const
44 {
45 std::string url_name = label;
46 std::size_t pos = url_name.find("_");
47
48 while (pos != std::string::npos)
49 {
50 url_name.replace(pos, 1, "__");
51 pos = url_name.find("_", pos + 2);
52 }
53
55 id,
56 label,
57 std::string("URL=\"https://asherikov.github.io/ariles/2/group__") + url_name + ".html\""));
58 }
59 };
60
61
63 {
64#define ARILES2_ENTRIES(v)
65#include ARILES2_INITIALIZE
66
67 public:
69
70 public:
72 {
73 }
74
75 ArilesDependency(const std::string &id, const std::string &url) : parameters_(id, url)
76 {
77 }
78
80 {
81 }
82
84 const ariles2::graphviz::Visitor & /*visitor*/) const override
85 {
86 return (parameters_);
87 }
88 };
89
90
92 {
93#define ARILES2_ENTRIES(v) ARILES2_ENTRY_(v, dependencies)
94#include ARILES2_INITIALIZE
95
96 public:
97 std::vector<ArilesDependency> dependencies_;
98
99 public:
101 {
102 }
103
105 const ariles2::graphviz::Visitor & /*visitor*/) const override
106 {
107 static const ArilesVisitorParameters parameters;
108 return (parameters);
109 }
110 };
111
112
114 {
115#define ARILES2_DEFAULT_ID "ariles"
116#define ARILES2_ENTRIES(v) ARILES2_ENTRY_(v, visitors)
117#include ARILES2_INITIALIZE
118
119 public:
120 std::map<std::string, ArilesVisitor> visitors_;
121
122
123 public:
125 {
126 ariles2::apply<ariles2::Defaults>(*this);
127 }
128
129
130 void arilesVisit(const ariles2::Defaults & /*visitor*/, const ariles2::Defaults::Parameters & /*param*/)
131 {
132 visitors_["namevalue"] = ArilesVisitor();
133 visitors_["graphviz"] = ArilesVisitor();
134 visitors_["octave"] = ArilesVisitor();
135
136 visitors_["jsonnet"] = ArilesVisitor();
137 visitors_["jsonnet"].dependencies_.push_back(ArilesDependency("jsonnet", "https://jsonnet.org/"));
138
139 visitors_["msgpack"] = ArilesVisitor();
140 visitors_["msgpack"].dependencies_.push_back(ArilesDependency("msgpack", "https://msgpack.org/"));
141
142 visitors_["pugixml"] = ArilesVisitor();
143 visitors_["pugixml"].dependencies_.push_back(ArilesDependency("pugixml", "https://pugixml.org/"));
144
145 visitors_["rapidjson"] = ArilesVisitor();
146 visitors_["rapidjson"].dependencies_.push_back(ArilesDependency("rapidjson", "https://rapidjson.org/"));
147
148 visitors_["rosparam"] = ArilesVisitor();
149 visitors_["rosparam"].dependencies_.push_back(ArilesDependency("ros", "https://www.ros.org/"));
150
151 visitors_["yaml_cpp"] = ArilesVisitor();
152 visitors_["yaml_cpp"].dependencies_.push_back(
153 ArilesDependency("yaml_cpp", "https://github.com/jbeder/yaml-cpp"));
154 }
155
157 {
158 }
159 };
160} // namespace ariles_tests
virtual ariles2::graphviz::Parameters::NodeOptions getArilesNodeOptions(const std::string &, const std::string &) const
ArilesDependencyParameters(const std::string &id, const std::string &url)
ArilesDependency(const std::string &id, const std::string &url)
const ariles2::graphviz::Parameters & arilesGetParameters(const ariles2::graphviz::Visitor &) const override
ArilesDependencyParameters parameters_
std::map< std::string, ArilesVisitor > visitors_
void arilesVisit(const ariles2::Defaults &, const ariles2::Defaults::Parameters &)
virtual ariles2::graphviz::Parameters::NodeOptions getArilesNodeOptions(const std::string &id, const std::string &label) const
const ariles2::graphviz::Parameters & arilesGetParameters(const ariles2::graphviz::Visitor &) const override
std::vector< ArilesDependency > dependencies_