#include "serverprotocolversionmessage.h"
#include <QIODevice>

ServerProtocolVersionMessage::ServerProtocolVersionMessage() : ServerMessageBase(), m_version(ClientGlobals::RFB_33)
{
}

bool ServerProtocolVersionMessage::loadMessage( QIODevice *device )
{

    QByteArray buffer(12, '\0');
    readBytes( device, buffer.data(), 12 );
    if ( qstrncmp( buffer, "RFB 003.003\n", 12) == 0 )
    {
        m_version = ClientGlobals::RFB_33;
        return true;
    }
    else if ( qstrncmp( buffer, "RFB 003.007\n", 12) == 0 )
    {
        m_version = ClientGlobals::RFB_37;
        return true;
    }
    else if ( qstrncmp( buffer, "RFB 003.008\n", 12) == 0 )
    {
        m_version = ClientGlobals::RFB_38;
        return true;
    }
    else
        return false;
}

ClientGlobals::RfbVersion ServerProtocolVersionMessage::version() const
{
    return m_version;
}

QDebug operator <<( QDebug in, ServerProtocolVersionMessage & message )
{
        in << QString("Server protocol versionMessage. Version: %1")
                .arg( message.version() );
        return in;
}

