#ifndef IRC__H #define IRC__H #include #include // #include #include "NetworkLayer.h" #include "Protocol.h" #include "QueueEvent.h" // -- Define Event Values -- // #define IRC_ON_JOIN 400 #define IRC_ON_QUIT 401 #define IRC_ON_NICK 402 #define IRC_ON_MODE 403 #define IRC_ON_TOPIC 404 #define IRC_ON_INVITE 405 #define IRC_ON_KICK 406 #define IRC_ON_PRIVMSG 407 #define IRC_ON_PING 408 class IRC : public Protocol { public: // -- Constructors IRC(std::string const& tHost, int tPort, std::queue* tpMessageQueue); // -- Destructors ~IRC(); // -- Accessors std::string GetHost(); int GetPort(); // -- Mutators void SetHost(std::string const& tHost); void SetPort(int tPort); // -- Actors virtual bool Start(); virtual void Stop(); virtual void Restart(); virtual void Send(std::string const& Message); virtual bool Receive(); // -- IRC Commands void Pong(std::string const& Reply); private: NetworkLayer IRCNL; Logger IRCLog; std::queue* pMessageQueue; }; #endif