コード例 #1
0
void MainWindow::channelMessage(IrcTextBrowser *browser, const QString &channel, const QString &message)
{
    if (channel[0]!=QChar('#'))
    {
        rawMessage(message);
        return;
    }
    QString msg(message);
    if (msg[0]==QChar('/'))
    {
        if (msg.left(3).compare(QString("/me"), Qt::CaseInsensitive)==0)
        {
            msg.remove(0, 3);
            while (msg[0]==QChar(' '))
                msg.remove(0, 1);
            irc->sendMe(channel, msg);
            browser->append(QString("%1 %2").arg(currentnick).arg(msg));
            return;
        }
        rawMessage(msg);
        return;
    }
    irc->sendMessage(channel, msg);
    //browser->appendMessage(currentnick, smilebar->parseSmiles(msg));
    smilebar->printParsedMessage(browser->textbrowser(), currentnick, msg);
}
コード例 #2
0
//////////////////////////////////////////////private slots////////////////////////////////////////////////////////////
void MainWindow::sendPressed()
{
    if (!irc)
        return;
    if (!irc->isConnected())
        return;
    QString fullmessage = ui->plainTextEditMessage->toPlainText();
    if (fullmessage.isEmpty())
        return;
    playSound(SND_SENDMSG);
    ui->plainTextEditMessage->storeLastMessage();
    ui->plainTextEditMessage->clear();
    QStringList messages = fullmessage.split("\n", QString::SkipEmptyParts);

    QWidget *wgt = ui->tabWidget->currentWidget();
    if (!wgt)
    {
        for (int i=0; i<messages.size(); i++)
            rawMessage(messages.at(i));
        return;
    }
    IrcTextBrowser * browser= static_cast<IrcTextBrowser *>(wgt);
    const QString ch = ui->tabWidget->tabText(ui->tabWidget->currentIndex());

    for (int i=0; i<messages.size(); i++)
        channelMessage(browser, ch, messages.at(i));
}
コード例 #3
0
    virtual void SendMessage(const Message& msg) override
    {
        VectorStream inStream;
        msg.Serialize(inStream);

        // deserialize again
        RawMessage rawMessage(msg.MessageId(), inStream.Data());

        // send
        bool bRet = m_fnSendMessage(rawMessage);
        if (!bRet)
            throw std::runtime_error("TestSession: packet wasn't handled"); // must handle all packets
    }
コード例 #4
0
bool BlkSocket::writeMessage(BlkMessage& msg, int& status)
{
    std::string rawMessage("");
    msg.toRawString(rawMessage);
//    rawMessage += msg.firstLine;
//    rawMessage += "\n";
//    rawMessage += std::to_string(msg.destination_port);
//    rawMessage += "\n";
//    rawMessage += msg.request_verb;
//    rawMessage += "\n";
//    rawMessage += std::to_string(msg.messageLength);
//    rawMessage += "\n";
//    rawMessage += msg.body;
    const char* buffer = rawMessage.c_str();
    int   buffer_length = (int)strlen(buffer);
    int sockStatus;
    bool good = socket_write_data(socket, (void*)buffer, buffer_length, &sockStatus);
    if( ! good ){
        LOG(ERROR) << " UNHANDLED ERROR ******* "<< std::endl;
    }
    
    return true;
}
コード例 #5
0
void NfcPeerToPeer::readText(QLlcpSocket* socket, const bool isServerSocket)
{
    if (!socket)
        return;

    bool hasDatagramWaiting = socket->hasPendingDatagrams();
    if (hasDatagramWaiting)
    {
        // Connection-less
        qint64 datagramSize = socket->pendingDatagramSize();
        char* rawData = new char[datagramSize];
        socket->readDatagram ( rawData, datagramSize );

        // Check if data is NDEF formatted
        QNdefMessage containedNdef = QNdefMessage::fromByteArray(rawData);
        if (containedNdef.count() > 0) {
            // NDEF message found
            qDebug() << "Raw NDEF message received (" << containedNdef.count() << " records)";
            emit ndefMessage(containedNdef);
        }
        else
        {
            // No NDEF message found - output raw data
            QString data = QString::fromUtf8(rawData, datagramSize);
            QString dataLength;
            dataLength.setNum(datagramSize);
            QString message = (isServerSocket ? "Server" : "Client");
            message.append(" (" + dataLength + "): " + data);
            emit rawMessage(message);
        }
        delete rawData;
    }
    else
    {
        // Connection-oriented
        // Parse SNEP
        qDebug() << "Received peer-to-peer data";
        QByteArray rawData = socket->readAll();
        if (m_appSettings->useSnep()) {
            QString snepAnalysis;
            QNdefMessage containedNdef = m_snepManager->analyzeSnepMessage(rawData, snepAnalysis);
            emit rawMessage(snepAnalysis);
            if (containedNdef.count() > 0) {
                // NDEF message
                qDebug() << "SNEP NDEF message received (" << containedNdef.count() << " records)";
                emit ndefMessage(containedNdef);

                // Send back success response
                emit sendData(m_snepManager->createSnepSuccessResponse());
            } else {
                qDebug() << "No / empty NDEF message contained";
            }
        } else {
            // Check if data is NDEF formatted
            QNdefMessage containedNdef = QNdefMessage::fromByteArray(rawData);


            // TODO: Debug
            QString arrayContents = "";
            for (int i = 0; i < rawData.size(); ++i) {
                arrayContents.append(QString("0x") + QString::number(rawData.at(i), 16) + " ");
            }
            qDebug() << "Raw contents of message:\n" << arrayContents;


            if (containedNdef.count() > 0) {
                // NDEF message found
                qDebug() << "Raw NDEF message received (" << containedNdef.count() << " records)";
                emit ndefMessage(containedNdef);
            }
            else
            {
                // No NDEF message found - output raw data
                QString data = QString::fromUtf8(rawData.constData(), rawData.size());
                QString message = (isServerSocket ? "Server" : "Client");
                message.append(": " + data);
                emit rawMessage(message);
            }
        }
    }
}
コード例 #6
0
ファイル: ircevent.cpp プロジェクト: fuzzball81/quassel
void IrcEventRawMessage::toVariantMap(QVariantMap& map) const
{
    IrcEvent::toVariantMap(map);
    map["rawMessage"] = rawMessage();
}