ircd/client.hpp
#ifndef CLIENT_HPP_
#define CLIENT_HPP_
#include "poll.hpp"
#include "irc_msg.hpp"
#include "fdtable.hpp"
#include "sock.hpp"
class ClientState;
class Client {
private:
Client(int fd, const char* ip);
void handle(event_t);
bool handle_in();
bool handle_out();
const int fd;
time_t last_seen;
MessageStreamIn msg_stream_in;
MessageStreamOut msg_stream_out;
static FdTable<Client*> client_fds;
public:
static void createInst(int fd, const ip_str_t);
~Client();
static void handle(int, event_t);
static void killall(const char*);
bool send(msg_t*, size_t);
const char* const host;
const char* const addr;
static const char* const dummy_host;
ClientState* irc_state;
};
#endif