#include <thread>
#include <map>
+#include <limits>
#include "pollmgr.h"
+constexpr size_t size_t_max = std::numeric_limits<size_t>::max();
+
class thread_exit_exception : std::exception {
};
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() {}
};
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);
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);
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];