Beispiel #1
0
// 接続失敗時
void CSCConnection::onConnectionFailed()
{
    CAuthEvent* event = new CAuthEvent();
    event->setAuthResult(false);
    event->SetEventType(myEVT_THREAD_GET_PING); // イベントの種類をセット
    invokeEvent(event);

}
Beispiel #2
0
CConnectionEventBase* CIRCEventFactory::Create(const CIRCResponseData& message)
{
    if (message.m_statusCode == IRCCommand::PRIVMSG){
        return createPrivateMessageEvent(message);
    }
    if (message.m_statusCode == IRCCommand::PART){
        return createPartMessageEvent(message);
    }
    if (message.m_statusCode == IRCCommand::JOIN){
        return createJoinMessageEvent(message);
    }
    if (message.m_statusCode == IRCCommand::TOPIC){
        return createTopicMessageEvent(message);
    }
    if (message.m_statusCode == IRCCommand::QUIT){
        // すべてのチャンネルへのPartEventの作成

        CStreamEvent<CPartMessage>* event = new CStreamEvent<CPartMessage>(myEVT_THREAD_STREAM_CH_PART);
        CPartMessage* log = new CPartMessage();
        log->setServiceId(m_connectionId);
        log->setChannelName("");
        log->setUserName(message.m_username);
        event->setServiceLog(log);
        return event;
    }
    if (message.m_statusCode == IRCCommand::NICK){
        return createNickMessageEvent(message);
    }
    if (message.m_statusCode == IRCCommand::KICK){
        return createKickEvent(message);
    }
    if (message.m_statusCode == IRCCommand::INVITE){
        return createInviteEvent(message);
    }
    if (message.m_statusCode == IRCCommand::NAMES_REPLY){
        addNames(message);
    }
    if (message.m_statusCode == IRCCommand::TOPIC_REPLY){
        return createTopicEvent(message);
    }
    if (message.m_statusCode == IRCCommand::NAMES_REPLY_END){ //ユーザー名羅列終了リプライ
        return createNamesEvent(message);
    }
    if (message.m_statusCode == IRCCommand::INVALID_USERNAME
            || message.m_statusCode == IRCCommand::INVALID_CHANNEL){ // 不適切
            //エラー
        CAuthEvent* event = new CAuthEvent();
        event->setAuthResult(false);
        return event;
    }
    return NULL;

}