INFM HIL Interface
Interface between Artery simulation and DuTs
DefaultApi.h
1
13/*
14 * DefaultApi.h
15 *
16 *
17 */
18
19#ifndef DefaultApi_H_
20#define DefaultApi_H_
21
22
23#include <memory>
24#include <utility>
25
26#include <corvusoft/restbed/session.hpp>
27#include <corvusoft/restbed/resource.hpp>
28#include <corvusoft/restbed/service.hpp>
29
30#include "Message.h"
31#include <string>
32
33namespace dummy_dut::rest::api {
34
35using namespace dummy_dut::rest::model;
36
43class DefaultApiDashboardResource: public restbed::Resource
44{
45public:
48 void GET_method_handler(const std::shared_ptr<restbed::Session> session);
49 void POST_method_handler(const std::shared_ptr<restbed::Session> session);
50
51 void set_handler_GET(
52 std::function<std::pair<int, std::string>(
53
54 )> handler
55 );
56
57 void set_handler_POST(
58 std::function<std::pair<int, std::string>(
59 std::shared_ptr<Message> const &
60 )> handler
61 );
62
63private:
64 std::function<std::pair<int, std::string>(
65
66 )> handler_GET_;
67
68 std::function<std::pair<int, std::string>(
69 std::shared_ptr<Message> const &
70 )> handler_POST_;
71
72 std::shared_ptr<Message> message{};
73};
74
81class DefaultApiDashboardMessagesResource: public restbed::Resource
82{
83public:
86 void GET_method_handler(const std::shared_ptr<restbed::Session> session);
87
88 std::vector<std::shared_ptr<restbed::Session>> sessions;
89};
90
97class DefaultApiSendResource: public restbed::Resource
98{
99public:
101 virtual ~DefaultApiSendResource();
102 void PUT_method_handler(const std::shared_ptr<restbed::Session> session);
103
104 void set_handler_PUT(
105 std::function<std::pair<int, std::string>(
106 std::shared_ptr<Message> const &
107 )> handler
108 );
109
110
111private:
112 std::function<std::pair<int, std::string>(
113 std::shared_ptr<Message> const &
114 )> handler_PUT_;
115
116
117 std::shared_ptr<Message> message{};
118};
119
126class DefaultApiReadResource: public restbed::Resource
127{
128public:
130 virtual ~DefaultApiReadResource();
131 void POST_method_handler(const std::shared_ptr<restbed::Session> session);
132 void DELETE_method_handler(const std::shared_ptr<restbed::Session> session);
133
134 void set_handler_POST(
135 std::function<std::pair<int, std::string>(
136 std::string const &
137 )> handler
138 );
139
140 void set_handler_DELETE(
141 std::function<std::pair<int, std::string>(
142 std::string const &
143 )> handler
144 );
145
146private:
147 std::function<std::pair<int, std::string>(
148 std::string const &
149 )> handler_POST_;
150
151 std::function<std::pair<int, std::string>(
152 std::string const &
153 )> handler_DELETE_;
154};
155
156
162class DefaultApi: public restbed::Service
163{
164public:
165 DefaultApi();
166 ~DefaultApi();
167 void startService(int const& port);
168 void stopService();
169
170protected:
171 std::shared_ptr<DefaultApiDashboardResource> m_spDefaultApiDashboardResource;
172 std::shared_ptr<DefaultApiDashboardMessagesResource> m_spDefaultApiDashboardMessagesResource;
173 std::shared_ptr<DefaultApiSendResource> m_spDefaultApiSendResource;
174 std::shared_ptr<DefaultApiReadResource> m_spDefaultApiReadClientUrlResource;
175};
176
177
178}
179
180#endif /* DefaultApi_H_ */
181
Open message stream to receive new messages continuously
Definition: DefaultApi.h:82
Load messages to view received messages and send from DuT
Definition: DefaultApi.h:44
Subscribe client to receive messages from dummy DuT
Definition: DefaultApi.h:127
Send a message to the dummy DuT
Definition: DefaultApi.h:98
void PUT_method_handler(const std::shared_ptr< restbed::Session > session)
Definition: DefaultApi.cpp:190
The restbed service to actually implement the REST server
Definition: DefaultApi.h:163
Definition: DefaultApi.cpp:22
Definition: Message.cpp:27