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(); }
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(); }