]> granicus.if.org Git - icinga2/blob - lib/base/networkstream.hpp
Merge pull request #7185 from Icinga/bugfix/gelfwriter-wrong-log-facility
[icinga2] / lib / base / networkstream.hpp
1 /* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
2
3 #ifndef NETWORKSTREAM_H
4 #define NETWORKSTREAM_H
5
6 #include "base/i2-base.hpp"
7 #include "base/stream.hpp"
8 #include "base/socket.hpp"
9
10 namespace icinga
11 {
12
13 /**
14  * A network stream.
15  *
16  * @ingroup base
17  */
18 class NetworkStream final : public Stream
19 {
20 public:
21         DECLARE_PTR_TYPEDEFS(NetworkStream);
22
23         NetworkStream(Socket::Ptr socket);
24
25         size_t Read(void *buffer, size_t count, bool allow_partial = false) override;
26         void Write(const void *buffer, size_t count) override;
27
28         void Close() override;
29
30         bool IsEof() const override;
31
32 private:
33         Socket::Ptr m_Socket;
34         bool m_Eof;
35 };
36
37 }
38
39 #endif /* NETWORKSTREAM_H */