X-Git-Url: http://xvm.mit.edu/gitweb/invirt/third/libt4.git/blobdiff_plain/7312c5fd3b74fd9cad485121bc31fc501accd355..eeab3e6cade87c1fe0a5f3d93522e12ccb9ec2ab:/rpc/connection.h diff --git a/rpc/connection.h b/rpc/connection.h index 16b0398..f529a35 100644 --- a/rpc/connection.h +++ b/rpc/connection.h @@ -9,9 +9,12 @@ #include #include +#include #include "pollmgr.h" +constexpr size_t size_t_max = std::numeric_limits::max(); + class thread_exit_exception : std::exception { }; @@ -19,7 +22,7 @@ class connection; class chanmgr { public: - virtual bool got_pdu(connection *c, char *b, int sz) = 0; + virtual bool got_pdu(connection *c, char *b, size_t sz) = 0; virtual ~chanmgr() {} }; @@ -27,10 +30,10 @@ class connection : public aio_callback { public: struct charbuf { charbuf(): buf(NULL), sz(0), solong(0) {} - charbuf (char *b, int s) : buf(b), sz(s), solong(0){} + charbuf (char *b, size_t s) : buf(b), sz(s), solong(0){} char *buf; - int sz; - int solong; //amount of bytes written or read so far + size_t sz; + size_t solong; // number of bytes written or read so far }; connection(chanmgr *m1, int f1, int lossytest=0); @@ -40,7 +43,7 @@ class connection : public aio_callback { bool isdead(); void closeconn(); - bool send(char *b, int sz); + bool send(char *b, size_t sz); void write_cb(int s); void read_cb(int s); @@ -75,12 +78,12 @@ class connection : public aio_callback { class tcpsconn { public: - tcpsconn(chanmgr *m1, int port, int lossytest=0); + tcpsconn(chanmgr *m1, unsigned int port, int lossytest=0); ~tcpsconn(); - inline int port() { return port_; } + inline unsigned int port() { return port_; } void accept_conn(); private: - int port_; + unsigned int port_; std::mutex m_; std::thread th_; int pipe_[2];