Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

IRCMessageParser Class Reference

#include </home/clem/local/src/opie/noncore/net/opieirc/ircmessageparser.h>

Collaboration diagram for IRCMessageParser:

Collaboration graph
[legend]
List of all members.

Signals

void outputReady (IRCOutput output)

Public Member Functions

 IRCMessageParser (IRCSession *session)
void parse (IRCMessage *message)

Protected Attributes

IRCSessionm_session

Static Protected Attributes

static IRCLiteralMessageParserStruct literalParserProcTable []
static IRCNumericalMessageParserStruct numericalParserProcTable []
static IRCCTCPMessageParserStruct ctcpParserProcTable []

Private Member Functions

void parseLiteralPing (IRCMessage *message)
void parseLiteralNotice (IRCMessage *message)
void parseLiteralJoin (IRCMessage *message)
void parseLiteralPrivMsg (IRCMessage *message)
void parseLiteralNick (IRCMessage *message)
void parseLiteralPart (IRCMessage *message)
void parseLiteralQuit (IRCMessage *message)
void parseLiteralError (IRCMessage *message)
void parseLiteralMode (IRCMessage *message)
void parseLiteralKick (IRCMessage *message)
void parseLiteralTopic (IRCMessage *message)
void parseNumerical (IRCMessage *message, int position)
void parseCTCP (IRCMessage *message, int position)
void parseNumericalServerName (IRCMessage *message)
void parseNumericalServerFeatures (IRCMessage *message)
void parseNumericalServerProtocol (IRCMessage *message)
void parseNumericalWhoisIdle (IRCMessage *message)
void parseNumericalNames (IRCMessage *message)
void parseNumericalEndOfNames (IRCMessage *message)
void parseNumericalNicknameInUse (IRCMessage *message)
void parseNumericalNoSuchNick (IRCMessage *message)
void parseNumericalTopic (IRCMessage *message)
void parseNumericalTopicWhoTime (IRCMessage *message)
void parseCTCPPing (IRCMessage *message)
void parseCTCPVersion (IRCMessage *message)
void parseCTCPAction (IRCMessage *message)
void parseCTCPDCC (IRCMessage *message)

Constructor & Destructor Documentation

IRCMessageParser::IRCMessageParser IRCSession session  ) 
 

Definition at line 94 of file ircmessageparser.cpp.

References m_session.


Member Function Documentation

void IRCMessageParser::outputReady IRCOutput  output  )  [signal]
 

Referenced by parse(), parseCTCPAction(), parseCTCPDCC(), parseCTCPPing(), parseCTCPVersion(), parseLiteralError(), parseLiteralJoin(), parseLiteralKick(), parseLiteralMode(), parseLiteralNotice(), parseLiteralPart(), parseLiteralPrivMsg(), parseLiteralQuit(), parseLiteralTopic(), parseNumerical(), parseNumericalEndOfNames(), parseNumericalNames(), parseNumericalNicknameInUse(), parseNumericalNoSuchNick(), parseNumericalServerName(), parseNumericalServerProtocol(), parseNumericalTopic(), and parseNumericalWhoisIdle().

void IRCMessageParser::parse IRCMessage message  ) 
 

Definition at line 98 of file ircmessageparser.cpp.

References IRCMessage::command(), IRCLiteralMessageParserStruct::commandName, IRCCTCPMessageParserStruct::commandName, IRCNumericalMessageParserStruct::commandNumber, IRCMessage::commandNumber(), IRCMessage::ctcpCommand(), ctcpParserProcTable, i, IRCMessage::isCTCP(), IRCMessage::isNumerical(), literalParserProcTable, QString::number(), numericalParserProcTable, OUTPUT_ERROR, outputReady(), parseCTCP(), parseNumerical(), IRCLiteralMessageParserStruct::proc, and tr.

Referenced by IRCSession::handleMessage().

void IRCMessageParser::parseCTCP IRCMessage message,
int  position
[private]
 

Definition at line 147 of file ircmessageparser.cpp.

References ctcpParserProcTable, and IRCCTCPMessageParserStruct::proc.

Referenced by parse().

void IRCMessageParser::parseCTCPAction IRCMessage message  )  [private]
 

Definition at line 433 of file ircmessageparser.cpp.

References IRCOutput::addParam(), IRCSession::addPerson(), channel, IRCMessage::ctcpDestination(), Opie::MM::dest, IRCSession::getChannel(), IRCSession::getPerson(), IRCChannel::getPerson(), QString::lower(), IRCSession::m_server, m_session, IRCServer::nick(), IRCPerson::nick(), output, OUTPUT_CHANACTION, OUTPUT_ERROR, OUTPUT_QUERYACTION, outputReady(), IRCMessage::param(), IRCMessage::prefix(), QString::startsWith(), and tr.

void IRCMessageParser::parseCTCPDCC IRCMessage message  )  [private]
 

Definition at line 468 of file ircmessageparser.cpp.

References DCCTransferTab::confirm(), QValueList< T >::count(), Opie::Ui::OFileSelector::EXTENDED_ALL, Opie::Ui::OFileDialog::getSaveFileName(), QString::isEmpty(), m_session, QString::null, odebug, oendl, OUTPUT_ERROR, outputReady(), IRCMessage::param(), IRCMessage::prefix(), DCCTransfer::Recv, QStringList::split(), and tr.

void IRCMessageParser::parseCTCPPing IRCMessage message  )  [private]
 

Definition at line 371 of file ircmessageparser.cpp.

References IRCOutput::addParam(), IRCSession::addPerson(), IRCMessage::allParameters(), channel, IRCMessage::ctcpDestination(), QDateTime::currentDateTime(), Opie::MM::dest, IRCSession::getChannel(), IRCSession::getPerson(), IRCChannel::getPerson(), IRCMessage::isCTCPReply(), QString::lower(), IRCSession::m_connection, IRCSession::m_server, m_session, IRCServer::nick(), IRCPerson::nick(), output, OUTPUT_CHANACTION, OUTPUT_CTCP, OUTPUT_ERROR, OUTPUT_QUERYACTION, outputReady(), IRCMessage::param(), IRCMessage::prefix(), QDateTime::secsTo(), IRCConnection::sendCTCPReply(), QDateTime::setTime_t(), QString::startsWith(), and tr.

void IRCMessageParser::parseCTCPVersion IRCMessage message  )  [private]
 

Definition at line 419 of file ircmessageparser.cpp.

References APP_COPYSTR, APP_VERSION, IRCMessage::isCTCPRequest(), IRCSession::m_connection, m_session, IRCPerson::nick(), output, OUTPUT_CTCP, outputReady(), IRCMessage::param(), IRCMessage::prefix(), IRCConnection::sendCTCPReply(), IRCOutput::setMessage(), and tr.

void IRCMessageParser::parseLiteralError IRCMessage message  )  [private]
 

Definition at line 367 of file ircmessageparser.cpp.

References IRCMessage::allParameters(), OUTPUT_ERROR, and outputReady().

void IRCMessageParser::parseLiteralJoin IRCMessage message  )  [private]
 

Definition at line 193 of file ircmessageparser.cpp.

References IRCSession::addChannel(), IRCOutput::addParam(), IRCChannel::addPerson(), IRCSession::addPerson(), channel, IRCSession::getChannel(), IRCSession::getPerson(), IRCChannel::getPerson(), IRCSession::m_server, m_session, IRCServer::nick(), IRCPerson::nick(), output, OUTPUT_ERROR, OUTPUT_OTHERJOIN, outputReady(), IRCMessage::param(), IRCMessage::prefix(), and tr.

void IRCMessageParser::parseLiteralKick IRCMessage message  )  [private]
 

Definition at line 554 of file ircmessageparser.cpp.

References IRCOutput::addParam(), channel, IRCChannel::channelname(), IRCSession::getChannel(), IRCChannel::getPerson(), IRCSession::m_server, m_session, IRCPerson::nick(), IRCServer::nick(), output, OUTPUT_ERROR, OUTPUT_OTHERKICK, OUTPUT_SELFKICK, outputReady(), IRCMessage::param(), IRCMessage::prefix(), IRCSession::removeChannel(), IRCChannel::removePerson(), and tr.

void IRCMessageParser::parseLiteralMode IRCMessage message  )  [private]
 

Definition at line 491 of file ircmessageparser.cpp.

References IRCOutput::addParam(), QTextStream::atEnd(), channel, FALSE, IRCSession::getChannel(), IRCChannel::isValid(), m_session, IRCPerson::nick(), output, OUTPUT_CHANPERSONMODE, OUTPUT_ERROR, outputReady(), stream, tr, and TRUE.

void IRCMessageParser::parseLiteralNick IRCMessage message  )  [private]
 

Definition at line 297 of file ircmessageparser.cpp.

References m_session, IRCPerson::nick(), IRCMessage::param(), IRCMessage::prefix(), and IRCSession::updateNickname().

void IRCMessageParser::parseLiteralNotice IRCMessage message  )  [private]
 

Definition at line 189 of file ircmessageparser.cpp.

References IRCMessage::allParameters(), OUTPUT_SERVERMESSAGE, and outputReady().

void IRCMessageParser::parseLiteralPart IRCMessage message  )  [private]
 

Definition at line 229 of file ircmessageparser.cpp.

References IRCOutput::addParam(), channel, IRCSession::getChannel(), IRCSession::m_server, m_session, IRCServer::nick(), IRCPerson::nick(), output, OUTPUT_ERROR, OUTPUT_OTHERPART, OUTPUT_SELFPART, outputReady(), IRCMessage::param(), IRCMessage::prefix(), IRCSession::removeChannel(), and tr.

void IRCMessageParser::parseLiteralPing IRCMessage message  )  [private]
 

Definition at line 185 of file ircmessageparser.cpp.

References IRCMessage::allParameters(), IRCSession::m_connection, m_session, and IRCConnection::sendLine().

void IRCMessageParser::parseLiteralPrivMsg IRCMessage message  )  [private]
 

Definition at line 258 of file ircmessageparser.cpp.

References IRCOutput::addParam(), IRCSession::addPerson(), channel, IRCSession::getChannel(), IRCSession::getPerson(), IRCChannel::isValid(), IRCSession::m_server, m_session, IRCPerson::nick(), IRCServer::nick(), output, OUTPUT_CHANPRIVMSG, OUTPUT_ERROR, OUTPUT_QUERYPRIVMSG, outputReady(), IRCMessage::param(), IRCMessage::prefix(), and tr.

void IRCMessageParser::parseLiteralQuit IRCMessage message  )  [private]
 

Definition at line 333 of file ircmessageparser.cpp.

References IRCOutput::addParam(), IRCSession::getChannelsByPerson(), IRCSession::getPerson(), m_session, IRCPerson::nick(), output, OUTPUT_ERROR, OUTPUT_QUIT, outputReady(), IRCMessage::param(), IRCMessage::prefix(), IRCSession::removePerson(), and tr.

void IRCMessageParser::parseLiteralTopic IRCMessage message  )  [private]
 

Definition at line 355 of file ircmessageparser.cpp.

References IRCOutput::addParam(), channel, IRCSession::getChannel(), m_session, IRCPerson::nick(), output, OUTPUT_ERROR, OUTPUT_TOPIC, outputReady(), IRCMessage::param(), IRCMessage::prefix(), and tr.

void IRCMessageParser::parseNumerical IRCMessage message,
int  position
[private]
 

Definition at line 128 of file ircmessageparser.cpp.

References QString::arg(), end, QString::isEmpty(), numericalParserProcTable, out, OUTPUT_SERVERMESSAGE, outputReady(), IRCNumericalMessageParserStruct::params, IRCNumericalMessageParserStruct::proc, and tr.

Referenced by parse().

void IRCMessageParser::parseNumericalEndOfNames IRCMessage message  )  [private]
 

Definition at line 624 of file ircmessageparser.cpp.

References IRCOutput::addParam(), channel, IRCChannel::channelname(), IRCSession::getChannel(), m_session, output, OUTPUT_ERROR, OUTPUT_SELFJOIN, outputReady(), IRCMessage::param(), IRCChannel::setHasPeople(), tr, and TRUE.

void IRCMessageParser::parseNumericalNames IRCMessage message  )  [private]
 

Definition at line 581 of file ircmessageparser.cpp.

References IRCChannel::addPerson(), IRCSession::addPerson(), QTextStream::atEnd(), channel, IRCSession::getChannel(), IRCSession::getPerson(), m_session, OUTPUT_ERROR, outputReady(), IRCMessage::param(), IRCChannelPerson::PERSON_FLAG_HALFOP, IRCChannelPerson::PERSON_FLAG_OP, IRCChannelPerson::PERSON_FLAG_VOICE, IRCChannelPerson::setFlags(), IRCPerson::setNick(), stream, and tr.

void IRCMessageParser::parseNumericalNicknameInUse IRCMessage message  )  [private]
 

Definition at line 639 of file ircmessageparser.cpp.

References IRCSession::endSession(), IRCSession::isLoggedIn(), m_session, OUTPUT_ERROR, outputReady(), and tr.

void IRCMessageParser::parseNumericalNoSuchNick IRCMessage message  )  [private]
 

Definition at line 648 of file ircmessageparser.cpp.

References OUTPUT_ERROR, outputReady(), and tr.

void IRCMessageParser::parseNumericalServerFeatures IRCMessage message  )  [private]
 

Definition at line 162 of file ircmessageparser.cpp.

References m_session, IRCMessage::param(), IRCSession::setValidChannelmodes(), and IRCSession::setValidUsermodes().

void IRCMessageParser::parseNumericalServerName IRCMessage message  )  [private]
 

Definition at line 154 of file ircmessageparser.cpp.

References IRCSession::m_server, m_session, OUTPUT_TITLE, outputReady(), IRCMessage::param(), IRCMessage::prefix(), IRCServer::setNick(), and tr.

void IRCMessageParser::parseNumericalServerProtocol IRCMessage message  )  [private]
 

Definition at line 168 of file ircmessageparser.cpp.

References IRCMessage::allParameters(), QString::find(), QString::mid(), out, OUTPUT_SERVERMESSAGE, and outputReady().

void IRCMessageParser::parseNumericalTopic IRCMessage message  )  [private]
 

Definition at line 652 of file ircmessageparser.cpp.

References IRCOutput::addParam(), channel, IRCChannel::channelname(), IRCSession::getChannel(), m_session, output, OUTPUT_TOPIC, outputReady(), IRCMessage::param(), and tr.

void IRCMessageParser::parseNumericalTopicWhoTime IRCMessage message  )  [private]
 

Definition at line 665 of file ircmessageparser.cpp.

void IRCMessageParser::parseNumericalWhoisIdle IRCMessage message  )  [private]
 

Definition at line 174 of file ircmessageparser.cpp.

References QTime::addSecs(), OUTPUT_SERVERMESSAGE, outputReady(), IRCMessage::param(), QDateTime::setTime_t(), t, QDateTime::toString(), QTime::toString(), and tr.


Member Data Documentation

IRCCTCPMessageParserStruct IRCMessageParser::ctcpParserProcTable [static, protected]
 

Initial value:

 {
    { "PING",    FUNC(parseCTCPPing) },
    { "VERSION", FUNC(parseCTCPVersion) },
    { "ACTION",  FUNC(parseCTCPAction) },
    { "DCC",     FUNC(parseCTCPDCC) },
    { 0 , 0 }
}

Definition at line 32 of file ircmessageparser.cpp.

Referenced by parse(), and parseCTCP().

IRCLiteralMessageParserStruct IRCMessageParser::literalParserProcTable [static, protected]
 

Initial value:

 {
    { "PING",    FUNC(parseLiteralPing) },
    { "NOTICE",  FUNC(parseLiteralNotice) },
    { "JOIN",    FUNC(parseLiteralJoin) },
    { "PRIVMSG", FUNC(parseLiteralPrivMsg) },
    { "NICK",    FUNC(parseLiteralNick) },
    { "PART",    FUNC(parseLiteralPart) },
    { "QUIT",    FUNC(parseLiteralQuit) },
    { "ERROR",   FUNC(parseLiteralError) },
    { "ERROR:",  FUNC(parseLiteralError) },
    { "MODE",    FUNC(parseLiteralMode) },
    { "KICK",    FUNC(parseLiteralKick) },
    { "TOPIC",   FUNC(parseLiteralTopic) },
    { 0 , 0 }
}

Definition at line 15 of file ircmessageparser.cpp.

Referenced by parse().

IRCSession* IRCMessageParser::m_session [protected]
 

Definition at line 94 of file ircmessageparser.h.

Referenced by IRCMessageParser(), parseCTCPAction(), parseCTCPDCC(), parseCTCPPing(), parseCTCPVersion(), parseLiteralJoin(), parseLiteralKick(), parseLiteralMode(), parseLiteralNick(), parseLiteralPart(), parseLiteralPing(), parseLiteralPrivMsg(), parseLiteralQuit(), parseLiteralTopic(), parseNumericalEndOfNames(), parseNumericalNames(), parseNumericalNicknameInUse(), parseNumericalServerFeatures(), parseNumericalServerName(), and parseNumericalTopic().

IRCNumericalMessageParserStruct IRCMessageParser::numericalParserProcTable [static, protected]
 

Definition at line 46 of file ircmessageparser.cpp.

Referenced by parse(), and parseNumerical().


The documentation for this class was generated from the following files:
Generated on Sat Nov 5 17:36:40 2005 for OPIE by  doxygen 1.4.2