ifw-ccf  3.0.0-pre2
dcsClient.hpp
Go to the documentation of this file.
1 
5 #ifndef CCF_COMMON_DCSCLIENT_HPP_H_
6 #define CCF_COMMON_DCSCLIENT_HPP_H_
7 
8 #include <iostream>
9 #include <stdexcept>
10 #include <string>
11 
12 #include <boost/algorithm/string.hpp>
13 
14 #include <mal/Cii.hpp>
15 #include <mal/Mal.hpp>
16 #include <mal/utility/LoadMal.hpp>
17 
18 #include <rad/logger.hpp>
19 
20 #include <core/utils/param/parameterSet.hpp>
21 
22 #include <ccf/common/base.hpp>
23 #include <Dcsif.hpp>
24 #include <Recif.hpp>
25 #include <Stdif.hpp>
26 
27 namespace ccf::common {
28 
30  class DcsClient: public Base {
31  public:
32 
33  const std::map<std::string, std::vector<std::string>> ITF_TO_REQ_MAP = {
34  {"StdCmds", {"Disable", "Enable", "Exit", "GetState", "GetStatus", "GetVersion",
35  "Init", "Reset", "SetLogLevel", "Stop"}},
36  {"DcsCmds", {"Abort", "Execute", "GetConfig", "GetDiagnostics", "GetDpData", "GetSetup",
37  "Ping", "ReadPars", "Recover", "Scan", "SetConfig", "Setup", "Start", "WritePars"}},
38  {"RecCmds", {"RecAbort", "RecContinue", "RecPause", "RecStart", "RecStatus", "RecStop", "RecWait"}}
39  };
40 
42  static std::string RecStatusToString(const std::shared_ptr<recif::RecStatus>& rec_status);
43 
45  static std::string RecWaitStatusToString(const std::shared_ptr<recif::RecWaitStatus>& rec_wait_status);
46 
47  DcsClient();
48 
50  DcsClient(const std::string& service_uri);
51 
52  ~DcsClient();
53 
55  std::string GenHelp(const std::string& application);
56 
58  std::string GetInterfaceForRequest(const std::string& request);
59 
61  std::string SendReq(const std::string& request,
62  const core::utils::param::ParameterSet& parameters);
63 
65  virtual std::string SendReqUser(const std::string& request,
66  const core::utils::param::ParameterSet& parameters);
67 
69  std::string SendReq(const std::string& request,
70  const std::string& parameters);
71 
73  std::string ExecuteShellCmd(int argc, char** argv);
74 
75  protected:
76 
77  private:
78  void _InitReqMapping();
79  std::map<std::string, std::string> m_req_to_itf_map;
80  std::string m_service_uri;
81  };
82 
83 }
84 
85 #endif // CCF_COMMON_DCSCLIENT_HPP_H_
Class to be used as parent all CCF classes.
Definition: base.hpp:151
Used to implement CCF Control client applications.
Definition: dcsClient.hpp:30
static std::string RecStatusToString(const std::shared_ptr< recif::RecStatus > &rec_status)
Convert Recording Status number to string representaiton.
Definition: dcsClient.cpp:11
std::string GetInterfaceForRequest(const std::string &request)
Return the interface, in which the given request is defined.
Definition: dcsClient.cpp:83
static std::string RecWaitStatusToString(const std::shared_ptr< recif::RecWaitStatus > &rec_wait_status)
Convert Recording Status string to number representaiton.
Definition: dcsClient.cpp:35
const std::map< std::string, std::vector< std::string > > ITF_TO_REQ_MAP
Definition: dcsClient.hpp:33
std::string SendReq(const std::string &request, const core::utils::param::ParameterSet &parameters)
Send the request to the associated CCF Control instance.
Definition: dcsClient.cpp:89
virtual std::string SendReqUser(const std::string &request, const core::utils::param::ParameterSet &parameters)
Method to actually send the request and receive the response.
Definition: dcsClient.cpp:106
DcsClient()
Definition: dcsClient.cpp:47
std::string GenHelp(const std::string &application)
Generate the help page as a string buffer.
Definition: dcsClient.cpp:61
~DcsClient()
Definition: dcsClient.cpp:57
std::string ExecuteShellCmd(int argc, char **argv)
Parse the command line options given and send the request/receive the response.
Definition: dcsClient.cpp:300
Definition: appBase.cpp:8