Exemple #1
0
    // Método reimplementado para procesar los datos recibidos por la 
    // conexión
    std::size_t processData(const char * data, std::size_t size)
    {
        // Necesitamos más datos
        if (size < sizeof(status::Header))
            return 0;

        const status::Header * header = 
            reinterpret_cast< const status::Header * >(data);

        // Necesitamos más datos
        if (size < header->size)
            return 0;

        switch (header->id)
        {
            case status::ID_STATUS_REQUEST:
                {
                    const status::MyRequest msg = {};
                    notifyMessageReceived("STATUS_REQUEST", msg);

                    // Envía el estado actual
                    sendStatus("CURRENT STATUS");
                }
                break;

            case status::ID_STATUS_RESPONSE:
                if (header->size == (sizeof(status::Header) + sizeof(status::MyStatus)))
                {
                    const status::MyStatus * msg = 
                        reinterpret_cast< const status::MyStatus * >(
                                data + sizeof(status::Header));

                    notifyMessageReceived("STATUS_RESPONSE", *msg);
                }
                else
                {
                    emit error("Invalid response message.");
                }
                break;

            default:
                emit error("Unknown message.");
                break;
        }

        return size;
    }
Exemple #2
0
    // Método reimplementado para procesar los datos recibidos por la 
    // conexión
    std::size_t processData(const char * data, std::size_t size)
    {
        // Reconstriumos el mensaje
        simple::HelloMsg msg;
        msg.name = std::string(data, size);

        // Notificamos la recepción del mensaje
        notifyMessageReceived("HELLO_MSG", msg);
        
        // El mensaje entero se puede consumir
        return size;
    }
void ConnectionTcp::parseMessage(QDataStream &stream_input)
{
    QString message;
    stream_input>>message;
    emit notifyMessageReceived(message);
}