X-Git-Url: http://xvm.mit.edu/gitweb/invirt/third/libt4.git/blobdiff_plain/46fb2b4bbe3a0a8516ab04cfafa895a882c70f86..5d99dbf06a14904944f5593c63705934bdfdcfb7:/rpc/connection.h diff --git a/rpc/connection.h b/rpc/connection.h index 2a01e46..882c1e0 100644 --- a/rpc/connection.h +++ b/rpc/connection.h @@ -5,7 +5,6 @@ #include #include #include -#include #include "pollmgr.h" constexpr size_t size_t_max = numeric_limits::max(); @@ -16,18 +15,15 @@ class connection; class chanmgr { public: - virtual bool got_pdu(connection *c, char *b, size_t sz) = 0; + virtual bool got_pdu(connection *c, const string & b) = 0; virtual ~chanmgr() {} }; class connection : public aio_callback { public: struct charbuf { - charbuf(): buf(NULL), sz(0), solong(0) {} - charbuf (char *b, size_t s) : buf(b), sz(s), solong(0){} - char *buf; - size_t sz; - size_t solong; // number of bytes written or read so far + string buf; + size_t solong = 0; // number of bytes written or read so far }; connection(chanmgr *m1, int f1, int lossytest=0); @@ -37,7 +33,7 @@ class connection : public aio_callback { bool isdead(); void closeconn(); - bool send(char *b, size_t sz); + bool send(const string & b); void write_cb(int s); void read_cb(int s); @@ -46,6 +42,7 @@ class connection : public aio_callback { int ref() { lock rl(ref_m_); return refno_; } int compare(connection *another); + private: bool readpdu(); @@ -62,7 +59,7 @@ class connection : public aio_callback { int waiters_ = 0; int refno_ = 1; - const int lossy_; + int lossy_ = 0; mutex m_; mutex ref_m_;