summaryrefslogtreecommitdiff
path: root/src/server.hh
blob: 9e73c0d2013ecda8f0c907e676efded87c70961e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#ifndef SERVER_HH
#define SERVER_HH

#include <cstdint>
#include <memory>
#include <string>

class Logger;

class Server {
 public:
  virtual ~Server() = default;

  static std::unique_ptr<Server> create();

  virtual bool setup(std::shared_ptr<Logger> logger, std::string const& host,
                     uint16_t port) = 0;

  virtual bool run(std::shared_ptr<Logger> logger) = 0;

 protected:
  Server() = default;
  Server(Server const&) = delete;
};

#endif  // SERVER_HH