10Duke Scale C++ Client
Loading...
Searching...
No Matches
FakeHttpServer.h
1#ifndef TENDUKE_TEST_FAKES_FAKEHTTPSERVER_H
2#define TENDUKE_TEST_FAKES_FAKEHTTPSERVER_H
3
4#include "./FakeSocket.h"
5
6#include "http/server/AbstractHTTPServer.h"
7
8#include <chrono>
9#include <deque>
10#include <memory>
11#include <mutex>
12#include <string>
13#include <vector>
14
15namespace tenduke { namespace test { namespace fakes {
16
17class FakeHttpServer : public tenduke::http::server::AbstractHTTPServer
18{
19public:
20 FakeHttpServer(
21 const std::shared_ptr<std::vector<std::string>> &requestedUrls,
22 const std::shared_ptr<std::vector<std::shared_ptr<tenduke::test::fakes::FakeSocket>>> &responseSockets,
23 const std::shared_ptr<const ::tenduke::net::URLCodec> &urlCodec,
24 const std::chrono::milliseconds &maxLifeTime = std::chrono::seconds(30)
25 );
26
27public:
28 uint16_t getPort() override;
29 void start() override;
30
31public:
32 void requestTo(const std::string &requestTarget);
33 bool isRunning() const;
34
35public:
36 std::chrono::milliseconds maxLifeTime;
37 const std::shared_ptr<std::deque<std::string>> requestQueue;
38
39private:
40 const std::shared_ptr<std::vector<std::string>> requestedUrls;
41 const std::shared_ptr<std::vector<std::shared_ptr<tenduke::test::fakes::FakeSocket>>> responseSockets;
42 std::mutex lockRequestQueue;
43};
44
45}}}
46
47#endif //TENDUKE_TEST_FAKES_FAKEHTTPSERVER_H
Abstract base class of a HTTP server.
Definition AbstractHTTPServer.h:21
void start() override
Starts the server.
Definition FakeHttpServer.cpp:16
uint16_t getPort() override
Returns the port where this simple server is listening.
Definition FakeHttpServer.cpp:11
Root for classes, functions and globals of 10Duke C++ Client.
Definition AbstractClientFactory.h:16