Ariles
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 
11 #pragma once
12 
13 
14 namespace ariles_tests
15 {
17  {
18  public:
19  std::string id_;
20  std::string url_;
21 
22 
23  public:
24  ArilesDependencyParameters(const std::string &id, const std::string &url) : id_(id), url_(url)
25  {
26  }
27 
29  const std::string & /*id*/,
30  const std::string & /*label*/) const
31  {
32  return (ariles2::graphviz::Parameters::NodeOptions(id_, url_, std::string("URL=\"") + url_ + "\""));
33  }
34  };
35 
36 
38  {
39  public:
41  const std::string &id,
42  const std::string &label) const
43  {
44  std::string url_name = label;
45  std::size_t pos = url_name.find("_");
46 
47  while (pos != std::string::npos)
48  {
49  url_name.replace(pos, 1, "__");
50  pos = url_name.find("_", pos + 2);
51  }
52 
54  id,
55  label,
56  std::string("URL=\"https://asherikov.github.io/ariles/2/group__") + url_name + ".html\""));
57  }
58  };
59 
60 
62  {
63 #define ARILES2_ENTRIES(v)
64 #include ARILES2_INITIALIZE
65 
66  public:
68 
69  public:
71  {
72  }
73 
74  ArilesDependency(const std::string &id, const std::string &url) : parameters_(id, url)
75  {
76  }
77 
79  {
80  }
81 
83  const ariles2::graphviz::Visitor & /*visitor*/) const
84  {
85  return (parameters_);
86  }
87  };
88 
89 
91  {
92 #define ARILES2_ENTRIES(v) ARILES2_ENTRY_(v, dependencies)
93 #include ARILES2_INITIALIZE
94 
95  public:
96  std::vector<ArilesDependency> dependencies_;
97 
98  public:
99  virtual ~ArilesVisitor()
100  {
101  }
102 
104  const ariles2::graphviz::Visitor & /*visitor*/) const
105  {
106  static const ArilesVisitorParameters parameters;
107  return (parameters);
108  }
109  };
110 
111 
113  {
114 #define ARILES2_DEFAULT_ID "ariles"
115 #define ARILES2_ENTRIES(v) ARILES2_ENTRY_(v, visitors)
116 #include ARILES2_INITIALIZE
117 
118  public:
119  std::map<std::string, ArilesVisitor> visitors_;
120 
121 
122  public:
124  {
125  ariles2::apply<ariles2::Defaults>(*this);
126  }
127 
128 
129  void arilesVisit(const ariles2::Defaults & /*visitor*/, const ariles2::Defaults::Parameters & /*param*/)
130  {
131  visitors_["namevalue"] = ArilesVisitor();
132  visitors_["graphviz"] = ArilesVisitor();
133  visitors_["octave"] = ArilesVisitor();
134 
135  visitors_["jsonnet"] = ArilesVisitor();
136  visitors_["jsonnet"].dependencies_.push_back(ArilesDependency("jsonnet", "https://jsonnet.org/"));
137 
138  visitors_["msgpack"] = ArilesVisitor();
139  visitors_["msgpack"].dependencies_.push_back(ArilesDependency("msgpack", "https://msgpack.org/"));
140 
141  visitors_["pugixml"] = ArilesVisitor();
142  visitors_["pugixml"].dependencies_.push_back(ArilesDependency("pugixml", "https://pugixml.org/"));
143 
144  visitors_["rapidjson"] = ArilesVisitor();
145  visitors_["rapidjson"].dependencies_.push_back(ArilesDependency("rapidjson", "https://rapidjson.org/"));
146 
147  visitors_["rosparam"] = ArilesVisitor();
148  visitors_["rosparam"].dependencies_.push_back(ArilesDependency("ros", "https://www.ros.org/"));
149 
150  visitors_["yaml_cpp"] = ArilesVisitor();
151  visitors_["yaml_cpp"].dependencies_.push_back(
152  ArilesDependency("yaml_cpp", "https://github.com/jbeder/yaml-cpp"));
153  }
154 
155  void randomize()
156  {
157  }
158  };
159 } // namespace ariles_tests
ariles_tests::ArilesDependencyParameters::getArilesNodeOptions
virtual ariles2::graphviz::Parameters::NodeOptions getArilesNodeOptions(const std::string &, const std::string &) const
Definition: ariles_diagram.h:28
ariles2::defaults::Visitor
Definition: defaults.h:57
ariles_tests::ArilesDependencyParameters::id_
std::string id_
Definition: ariles_diagram.h:19
ariles2::ns_graphviz::Parameters
Definition: graphviz.h:41
ariles_tests::ArilesDependencyParameters::ArilesDependencyParameters
ArilesDependencyParameters(const std::string &id, const std::string &url)
Definition: ariles_diagram.h:24
ariles2::ns_graphviz::Visitor
Definition: graphviz.h:107
ariles_tests
Definition: ariles_diagram.h:14
ariles_tests::ArilesDependency::arilesGetParameters
virtual const ariles2::graphviz::Parameters & arilesGetParameters(const ariles2::graphviz::Visitor &) const
Definition: ariles_diagram.h:82
ariles_tests::ArilesDependencyParameters::url_
std::string url_
Definition: ariles_diagram.h:20
ariles_tests::ArilesDependency::parameters_
ArilesDependencyParameters parameters_
Definition: ariles_diagram.h:67
ariles_tests::ArilesDiagram::randomize
void randomize()
Definition: ariles_diagram.h:155
ariles_tests::ArilesVisitor::dependencies_
std::vector< ArilesDependency > dependencies_
Definition: ariles_diagram.h:96
ariles_tests::ArilesDiagram
Definition: ariles_diagram.h:112
ariles_tests::ArilesVisitorParameters::getArilesNodeOptions
virtual ariles2::graphviz::Parameters::NodeOptions getArilesNodeOptions(const std::string &id, const std::string &label) const
Definition: ariles_diagram.h:40
ariles_tests::ArilesDependency
Definition: ariles_diagram.h:61
ariles_tests::ArilesDiagram::arilesVisit
void arilesVisit(const ariles2::Defaults &, const ariles2::Defaults::Parameters &)
Definition: ariles_diagram.h:129
ariles_tests::ArilesDependency::~ArilesDependency
virtual ~ArilesDependency()
Definition: ariles_diagram.h:78
ariles2::DefaultBase
Definition: ariles.h:66
ariles_tests::ArilesVisitor::arilesGetParameters
virtual const ariles2::graphviz::Parameters & arilesGetParameters(const ariles2::graphviz::Visitor &) const
Definition: ariles_diagram.h:103
ariles_tests::ArilesVisitor
Definition: ariles_diagram.h:90
ariles_tests::ArilesDependencyParameters
Definition: ariles_diagram.h:16
ariles_tests::ArilesDependency::ArilesDependency
ArilesDependency()
Definition: ariles_diagram.h:70
ariles_tests::ArilesDiagram::visitors_
std::map< std::string, ArilesVisitor > visitors_
Definition: ariles_diagram.h:119
ariles_tests::ArilesVisitorParameters
Definition: ariles_diagram.h:37
ariles_tests::ArilesDependency::ArilesDependency
ArilesDependency(const std::string &id, const std::string &url)
Definition: ariles_diagram.h:74
ariles_tests::ArilesVisitor::~ArilesVisitor
virtual ~ArilesVisitor()
Definition: ariles_diagram.h:99
ariles_tests::ArilesDiagram::ArilesDiagram
ArilesDiagram()
Definition: ariles_diagram.h:123
ariles2::ns_graphviz::Parameters::NodeOptions
Definition: graphviz.h:44
ariles2::defaults::Parameters
Definition: defaults.h:27