substitution.h
Go to the documentation of this file.
1 // Parse the $(...) substitution args
2 // Author: Max Schwarz <max.schwarz@uni-bonn.de>
3 
4 #ifndef ROSMON_LAUNCH_SUBSTITUTION_H
5 #define ROSMON_LAUNCH_SUBSTITUTION_H
6 
7 #include <string>
8 #include <stdexcept>
9 
10 #include <fmt/format.h>
11 
12 namespace rosmon
13 {
14 namespace launch
15 {
16 
17 class ParseContext;
18 
19 class SubstitutionException : public std::exception
20 {
21 public:
22  explicit SubstitutionException(const std::string& msg)
23  : m_msg(msg)
24  {}
25 
26  virtual ~SubstitutionException() throw()
27  {}
28 
29  virtual const char* what() const noexcept override
30  { return m_msg.c_str(); }
31 
32  template<typename... Args>
33  static SubstitutionException format(const char* format, const Args& ... args)
34  {
35  return SubstitutionException(fmt::format(format, args...));
36  }
37 private:
38  std::string m_msg;
39 };
40 
41 namespace substitutions
42 {
43  std::string anon(const std::string& name, ParseContext& context);
44  std::string arg(const std::string& name, const ParseContext& context);
45  std::string dirname(const ParseContext& context);
46  std::string env(const std::string& name);
47  std::string optenv(const std::string& name, const std::string& defaultValue);
48 
50  std::string find_stupid(const std::string& name);
51 }
52 
53 std::string parseSubstitutionArgs(const std::string& input, ParseContext& context);
54 
55 }
56 }
57 
58 #endif
rosmon::launch::parseSubstitutionArgs
std::string parseSubstitutionArgs(const std::string &input, ParseContext &context)
Definition: substitution.cpp:166
rosmon::launch::ParseContext
Definition: launch_config.h:56
rosmon
Definition: diagnostics_publisher.cpp:34
rosmon::launch::SubstitutionException::what
virtual const char * what() const noexcept override
Definition: substitution.h:29
rosmon::launch::substitutions::dirname
std::string dirname(const ParseContext &context)
Definition: substitution.cpp:61
rosmon::launch::SubstitutionException
Definition: substitution.h:19
rosmon::launch::SubstitutionException::SubstitutionException
SubstitutionException(const std::string &msg)
Definition: substitution.h:22
rosmon::launch::SubstitutionException::~SubstitutionException
virtual ~SubstitutionException()
Definition: substitution.h:26
rosmon::launch::substitutions::optenv
std::string optenv(const std::string &name, const std::string &defaultValue)
Definition: substitution.cpp:76
rosmon::launch::substitutions::env
std::string env(const std::string &name)
Definition: substitution.cpp:67
rosmon::launch::substitutions::arg
std::string arg(const std::string &name, const ParseContext &context)
Definition: substitution.cpp:43
rosmon::launch::substitutions::find_stupid
std::string find_stupid(const std::string &name)
$(find ...) which always gives rospack find results
Definition: substitution.cpp:85
rosmon::launch::SubstitutionException::format
static SubstitutionException format(const char *format, const Args &... args)
Definition: substitution.h:33
rosmon::launch::substitutions::anon
std::string anon(const std::string &name, ParseContext &context)
Definition: substitution.cpp:35
rosmon::launch::SubstitutionException::m_msg
std::string m_msg
Definition: substitution.h:38


rosmon_core
Author(s): Max Schwarz
autogenerated on Wed Feb 21 2024 04:01:14