]> git.tdb.fi Git - libs/net.git/blobdiff - source/net/communicator.h
Decorate things which constitute the public API
[libs/net.git] / source / net / communicator.h
index e4869b29015ef0cf5146e0bea983506f3c569e4b..e9f646a59a62ba1f0796a36cf57f2d27454d849d 100644 (file)
@@ -1,7 +1,10 @@
 #ifndef MSP_NET_COMMUNICATOR_H_
 #define MSP_NET_COMMUNICATOR_H_
 
+#include <msp/core/except.h>
+#include <msp/core/noncopyable.h>
 #include <sigc++/signal.h>
+#include "mspnet_api.h"
 #include "protocol.h"
 
 namespace Msp {
@@ -9,22 +12,20 @@ namespace Net {
 
 class StreamSocket;
 
-class sequence_error: public std::logic_error
+class MSPNET_API sequence_error: public invalid_state
 {
 public:
-       sequence_error(const std::string &w): std::logic_error(w) { }
-       virtual ~sequence_error() throw() { }
+       sequence_error(const std::string &w): invalid_state(w) { }
 };
 
-class incompatible_protocol: public std::runtime_error
+class MSPNET_API incompatible_protocol: public std::runtime_error
 {
 public:
        incompatible_protocol(const std::string &w): std::runtime_error(w) { }
-       virtual ~incompatible_protocol() throw() { }
 };
 
 
-class Communicator
+class MSPNET_API Communicator: public NonCopyable
 {
 public:
        sigc::signal<void> signal_handshake_done;
@@ -34,13 +35,13 @@ private:
        StreamSocket &socket;
        const Protocol &protocol;
        ReceiverBase &receiver;
-       int handshake_status;
-       std::size_t buf_size;
-       char *in_buf;
-       char *in_begin;
-       char *in_end;
-       char *out_buf;
-       bool good;
+       int handshake_status = 0;
+       std::size_t buf_size = 65536;
+       char *in_buf = nullptr;
+       char *in_begin = nullptr;
+       char *in_end = nullptr;
+       char *out_buf = nullptr;
+       bool good = true;
 
 public:
        Communicator(StreamSocket &, const Protocol &, ReceiverBase &);