X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fnet%2Fcommunicator.h;h=e9f646a59a62ba1f0796a36cf57f2d27454d849d;hb=394c9a732192fce9b3b453dfdb9e92400af2a4f8;hp=e4869b29015ef0cf5146e0bea983506f3c569e4b;hpb=c2eeb0da9f5e5de1b8de1bc66a42709e54d504e2;p=libs%2Fnet.git diff --git a/source/net/communicator.h b/source/net/communicator.h index e4869b2..e9f646a 100644 --- a/source/net/communicator.h +++ b/source/net/communicator.h @@ -1,7 +1,10 @@ #ifndef MSP_NET_COMMUNICATOR_H_ #define MSP_NET_COMMUNICATOR_H_ +#include +#include #include +#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 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 &);