/* Line IRC's parsing in cpp */ #ifndef _C_PARSER_ #define _C_PARSER_ #include #include using namespace std; class c_parser { private: string m_nick; string m_ident; string m_hostname; string m_type; string m_where; //pv (nick) or channel string m_msg; string m_pong; string m_parserError; public: c_parser(); ~c_parser(); bool parse(string buffer); string getnick(); string getident(); string gethostname(); string gettype(); string getwhere(); string getmsg(); string getpong(); string getParserError(); }; #endif /* constructor (erasing) */ c_parser::c_parser() { m_nick.clear(); m_ident.clear(); m_hostname.clear(); m_type.clear(); m_where.clear(); m_msg.clear(); m_pong.clear(); m_parserError.clear(); } /* destructor (erasing) */ c_parser::~c_parser() { m_nick.clear(); m_ident.clear(); m_hostname.clear(); m_type.clear(); m_where.clear(); m_msg.clear(); m_pong.clear(); m_parserError.clear(); } /* line's parsing */ bool c_parser::parse(string buffer) { int a; /* erasing */ m_parserError.clear(); m_nick.clear(); m_ident.clear(); m_hostname.clear(); m_type.clear(); m_where.clear(); m_msg.clear(); m_pong.clear(); /* if PING */ if(buffer[0] != ':') { if(!buffer.compare(0, 6, "PING :")) { buffer.erase(0,6); m_pong = buffer; cout << "+PONG :"<