Exemplo n.º 1
0
 ReturnCode send(IOBuffer &buffer)
 {
     MSS_BEGIN(ReturnCode);
     MSS(state == Connected, InvalidState);
     auto nrSent = ::send(fid, buffer.data(), buffer.size(), 0);
     MSS(nrSent != -1, CouldNotSend);
     buffer.scrollBegin(nrSent);
     MSS_END();
 }
Exemplo n.º 2
0
qint64 CentralDirFileHeader::write(QIODevice* ioDevice)
{
    Q_ASSERT(ioDevice);

    filenameLength  = fileName.size();
    extraFieldLength = extraField.size();
    fileCommentLength = comment.size();

    IOBuffer buffer;

    buffer.writeUInt32( signature );
    buffer.writeUInt16( versionMadeBy );
    buffer.writeUInt16( versionNeeded );
    buffer.writeUInt16( generalFlag );
    buffer.writeUInt16( compressionMethod );
    buffer.writeUInt16( lastModFileTime );
    buffer.writeUInt16( lastModFileDate );
    buffer.writeUInt32( crc_32 );
    buffer.writeUInt32( compressedSize );
    buffer.writeUInt32( uncompressedSize );
    buffer.writeUInt16( filenameLength );

    checkForExtraData();
    buffer.writeUInt16( extraFieldLength );
    buffer.writeUInt16( fileCommentLength );
    buffer.writeUInt16( diskNumberStart );
    buffer.writeUInt16( internalFileAttr );
    buffer.writeUInt32( externalFileAttr );
    buffer.writeUInt32( relativeOffset );

    if ( buffer.size() != CD_FILE_HEADER_SIZE )
    {
        qDebug() << "CentralDirFileHeader::write: invalid header size!";
        return 0;
    }

    if (filenameLength)
        buffer.writeRawBytes( fileName );

    if (extraFieldLength)
        buffer.writeRawBytes( extraField );

    if (fileCommentLength)
        buffer.writeRawBytes( comment );

    return ioDevice->write( buffer.getByteArray() );
}
HttpResponse::HttpResponse(const IOBuffer& io_buf)
{
    m_header_body.assign(io_buf.data(), io_buf.size());
    m_is_valid = parse_body();
}
HttpRequest::HttpRequest(const IOBuffer& io_buf)
{
	m_body.assign(io_buf.data(), io_buf.size());

	m_is_valid = parse_body();
}