lintel 0.2.0
Loading...
Searching...
No Matches
ServerConfiguration.h
Go to the documentation of this file.
1#ifndef HTTP_LIBRARY_SERVERCONFIGURATION_H
2#define HTTP_LIBRARY_SERVERCONFIGURATION_H
3
4#include <chrono>
5#include <filesystem>
6#include <ostream>
7#include <string>
8#include <vector>
9
10namespace lintel {
13{
14private:
15 const std::string m_host;
16 const int32_t m_port;
17 std::chrono::milliseconds m_readTimeOut;
18 std::chrono::milliseconds m_writeTimeOut;
19 std::chrono::milliseconds m_idleInterval;
20 std::filesystem::path m_certFile;
21 std::filesystem::path m_keyFile;
22 bool m_requireTls;
23 std::vector<std::string> m_trustedProxies;
24
25public:
37 const std::chrono::milliseconds &readTimeOut = std::chrono::milliseconds(0),
38 const std::chrono::milliseconds &writeTimeOut = std::chrono::milliseconds(0),
39 const std::chrono::milliseconds &idleInterval = std::chrono::milliseconds(0),
40 std::filesystem::path certFile = "",
41 std::filesystem::path keyFile = "",
42 bool requireTls = false,
43 std::vector<std::string> trustedProxies = {});
44
46 [[nodiscard]] const std::string &getHost() const;
47
49 [[nodiscard]] constexpr int32_t getPort() const { return m_port; }
50
52 [[nodiscard]] const std::chrono::milliseconds &getReadTimeOut() const;
53
55 [[nodiscard]] const std::chrono::milliseconds &getWriteTimeOut() const;
56
58 [[nodiscard]] const std::chrono::milliseconds &getIdleInterval() const;
59
61 [[nodiscard]] const std::filesystem::path &getCertFile() const;
62
64 [[nodiscard]] const std::filesystem::path &getKeyFile() const;
65
67 [[nodiscard]] constexpr bool isTlsRequired() const { return m_requireTls; }
68
70 [[nodiscard]] const std::vector<std::string> &getTrustedProxies() const;
71
73 friend std::ostream &operator<<(std::ostream &os, const ServerConfiguration &configuration);
74};
75
76}// namespace lintel
77#endif// HTTP_LIBRARY_SERVERCONFIGURATION_H
Definition ServerConfiguration.h:13
const std::filesystem::path & getCertFile() const
const std::filesystem::path & getKeyFile() const
ServerConfiguration(std::string host, int32_t port, const std::chrono::milliseconds &readTimeOut=std::chrono::milliseconds(0), const std::chrono::milliseconds &writeTimeOut=std::chrono::milliseconds(0), const std::chrono::milliseconds &idleInterval=std::chrono::milliseconds(0), std::filesystem::path certFile="", std::filesystem::path keyFile="", bool requireTls=false, std::vector< std::string > trustedProxies={})
const std::string & getHost() const
constexpr int32_t getPort() const
Definition ServerConfiguration.h:49
constexpr bool isTlsRequired() const
Definition ServerConfiguration.h:67
friend std::ostream & operator<<(std::ostream &os, const ServerConfiguration &configuration)
const std::chrono::milliseconds & getReadTimeOut() const
const std::vector< std::string > & getTrustedProxies() const
const std::chrono::milliseconds & getIdleInterval() const
const std::chrono::milliseconds & getWriteTimeOut() const
Definition BaseFeature.h:6
constexpr std::string_view type_name()
Definition TypeName.h:9