rad  2.0.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
utils.hpp
Go to the documentation of this file.
1 
9 #ifndef RAD_MAL_UTILS_HPP
10 #define RAD_MAL_UTILS_HPP
11 
12 #include <mal/Cii.hpp>
13 #include <mal/Mal.hpp>
14 #include <mal/utility/LoadMal.hpp>
15 
16 #include <atomic>
17 #include <memory>
18 
19 namespace rad {
20 namespace cii {
21 
33 inline void LoadMiddlewares(const std::vector<std::string>& mal_types) {
34  elt::mal::CiiFactory& factory = elt::mal::CiiFactory::getInstance();
35  elt::mal::Mal::Properties mal_properties;
36  for (auto t : mal_types) {
37  auto mal_instance = elt::mal::loadMal(t, mal_properties);
38  factory.registerMal(t, mal_instance);
39  }
40 }
41 
52  public:
57  CancellationToken() : m_is_cancelled(std::make_shared<std::atomic<bool>>(false)) {}
58 
59  CancellationToken(const CancellationToken&) = default;
61 
66  void Cancel() { *m_is_cancelled = true; }
67 
74  bool IsCancelled() const { return *m_is_cancelled; }
75 
76  private:
77  std::shared_ptr<std::atomic<bool>>
78  m_is_cancelled; // Flag indicating whether a service has been cancelled.
79 };
80 
81 } // namespace cii
82 } // namespace rad
83 
84 #endif // RAD_MAL_UTILS_HPP
bool IsCancelled() const
Definition: utils.hpp:74
void LoadMiddlewares(const std::vector< std::string > &mal_types)
Definition: utils.hpp:33
CancellationToken()
Definition: utils.hpp:57
CancellationToken & operator=(const CancellationToken &)=default
void Cancel()
Definition: utils.hpp:66
Definition: utils.hpp:51