48 virtual ~ISyslogServer() =
default;
66 [[nodiscard]]
const std::string&
Address()
72 const std::string& name) {
76 const std::string&
Name()
const {
84 [[nodiscard]] uint16_t
Port()
const {
100 std::optional<SyslogMessage>
GetMsg(
bool block);
107 return msg_queue_ ? msg_queue_->Size() : 0;
132 std::string address_ =
"0.0.0.0";
135 std::unique_ptr<log::ThreadSafeQueue<SyslogMessage>>
virtual void Start()
Starts the worker thread in the server.
std::atomic< bool > operable_
Operable flag.
Definition isyslogserver.h:128
SyslogServerType Type() const
Return s the type of server.
Definition isyslogserver.h:55
SyslogServerType type_
Type of server.
Definition isyslogserver.h:129
const std::string & Name() const
Definition isyslogserver.h:76
ISyslogServer()=default
Default constructor.
const std::string & Address() const
Definition isyslogserver.h:66
void Port(uint16_t port)
Definition isyslogserver.h:80
void Name(const std::string &name)
Definition isyslogserver.h:71
void Address(const std::string &address)
Bind address of the server.
uint16_t Port() const
Definition isyslogserver.h:84
virtual void Stop()
Stops the worker thread in the server.
virtual size_t NofConnections() const
Returns number of connections to the server.
std::optional< SyslogMessage > GetMsg(bool block)
Returns the next message in the queue.
size_t NofMessages() const
Definition isyslogserver.h:105
virtual void AddMsg(const SyslogMessage &msg)
bool IsOperable() const
Returns true if the receiver works as normal.
Definition isyslogserver.h:116
Simple wrapper around the parsing and generating os syslog messages.
Definition syslogmessage.h:72
The syslog namespace is used for the syslog interface.
Definition isyslogserver.h:23
SyslogServerType
Defines the type of syslog server.
Definition isyslogserver.h:31
@ TlsServer
Uses TLS on top of TCP (RFC5425).
Definition isyslogserver.h:33
@ TcpServer
Uses plain TCP protocol (RFC6587).
Definition isyslogserver.h:34
@ TcpSubscriber
Client that subscribe on syslog messages.
Definition isyslogserver.h:36
@ TcpPublisher
Server that sends syslog messages.
Definition isyslogserver.h:35
@ UdpServer
Uses UDP protocol (RFC5426).
Definition isyslogserver.h:32
Implements an interface against a syslog message.
Implements a thread-safe queue.