AnCH Framework 0.1
Another C++ Hack Framework
 
Loading...
Searching...
No Matches
socketServerRunner.hpp
1/*
2 ANCH Framework: ANother C++ Hack is a C++ framework based on C++11 standard
3 Copyright (C) 2020 Vincent Lachenal
4
5 This file is part of ANCH Framework.
6
7 ANCH Framework is free software: you can redistribute it and/or modify
8 it under the terms of the GNU Lesser General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 ANCH Framework is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU Lesser General Public License for more details.
16
17 You should have received a copy of the GNU Lesser General Public License
18 along with ANCH Framework. If not, see <http://www.gnu.org/licenses/>.
19*/
20#pragma once
21
22#include <optional>
23#include <vector>
24#include <string>
25
26#include "events/observer.hpp"
27#include "network/socketEvent.hpp"
28
29#include "ut/defaultRunner.hpp"
30#include "ut/unit.hpp"
31
32namespace anch::ut {
33
37 enum class CommandAction {
38
40 TEST = 10,
41
43 SHUTDOWN = 20
44
45 };
46
54 CommandAction action;
55
57 std::optional<std::vector<std::string>> arg;
58 };
59
69 class SocketServerRunner: public anch::ut::DefaultRunner, private anch::events::Observer<anch::network::SocketEvent> {
70
71 private:
74
75 public:
80
85
93 SocketServerRunner(const std::string& uri, const anch::ut::UnitTests& tests);
94
95 public:
100
101 public:
107 virtual void handle(const anch::events::Event<anch::network::SocketEvent>& evt) noexcept override;
108
109 };
110
111} // anch::ut
An observer interface of the observers/observable design pattern.
Definition observer.hpp:39
Default unit tests runner.
Definition defaultRunner.hpp:38
SocketServerRunner(const std::string &uri, const anch::ut::UnitTests &tests)
SocketServerRunner(const SocketServerRunner &)=delete
virtual void handle(const anch::events::Event< anch::network::SocketEvent > &evt) noexcept override
Unit tests collection.
Definition unit.hpp:37
Event representation.
Definition event.hpp:37
Command message.
Definition socketServerRunner.hpp:52
std::optional< std::vector< std::string > > arg
Definition socketServerRunner.hpp:57
CommandAction action
Definition socketServerRunner.hpp:54