Blob Blame Raw
#ifndef SERVER_H
#define SERVER_H


#include "connection.h"


class Server: public Socket {
private:
	friend class Protocol;
	friend class Connection;
	
	Connection *connFirst, *connLast;
	
public:
	Server();
	~Server();
	
	bool open(Protocol &protocol, void *address, size_t addressSize);
	
private:
	void handleDisconnect(Connection &connection, bool error);
	
	void handleState() override;
	void handleEvents(unsigned int events) override;
	
protected:
	virtual Connection* onConnect(const void *address, size_t addressSize);
	virtual void onDisconnect(Connection *connection, bool error);
};


#endif