ifw-slm 0.1.2
 
Loading...
Searching...
No Matches
serviceResolver.hpp
Go to the documentation of this file.
1
13#ifndef IFWSLM_SERVICE_RESOLVER_HPP
14#define IFWSLM_SERVICE_RESOLVER_HPP
15
16#include <functional>
17#include <string>
18
19namespace ifw::slm {
20
26public:
29 using HttpGet = std::function<std::string(const std::string& url)>;
30
33
35 explicit ServiceResolver(HttpGet http_get);
36
45 std::string GetUri(const std::string& service,
46 const std::string& name_space = DefaultNamespace(),
47 const std::string& scheme = "zpb.rr") const;
48
50 static std::string DefaultNamespace();
51
52private:
53 std::string ResolveNomad(const std::string& service,
54 const std::string& name_space,
55 const std::string& scheme) const;
56 std::string ResolveConsul(const std::string& service,
57 const std::string& scheme) const;
58
59 HttpGet m_http_get;
60};
61
71std::string ResolveEndpoint(const std::string& spec,
72 const ServiceResolver& resolver,
73 const std::string& name_space =
75
76} // namespace ifw::slm
77
78#endif // IFWSLM_SERVICE_RESOLVER_HPP
Definition serviceResolver.hpp:25
static std::string DefaultNamespace()
Default namespace from $NOMAD_NAMESPACE, else "default".
Definition serviceResolver.cpp:108
std::function< std::string(const std::string &url)> HttpGet
Definition serviceResolver.hpp:29
ServiceResolver()
Default constructor: uses a libcurl-based GET.
Definition serviceResolver.cpp:104
std::string GetUri(const std::string &service, const std::string &name_space=DefaultNamespace(), const std::string &scheme="zpb.rr") const
Definition serviceResolver.cpp:144
Definition actionMgr.cpp:29
std::string ResolveEndpoint(const std::string &spec, const ServiceResolver &resolver, const std::string &name_space=ServiceResolver::DefaultNamespace())
Definition serviceResolver.cpp:160