//---------------------------------------------------------------------- // read //---------------------------------------------------------------------- void Connection::recvNB( BufferPtr buffer, const uint64_t bytes ) { LBASSERT( !_impl->buffer ); LBASSERT( _impl->bytes == 0 ); LBASSERT( buffer ); LBASSERT( bytes > 0 ); LBASSERTINFO( bytes < LB_BIT48, "Out-of-sync network stream: read size " << bytes << "?" ); _impl->buffer = buffer; _impl->bytes = bytes; buffer->reserve( buffer->getSize() + bytes ); readNB( buffer->getData() + buffer->getSize(), bytes ); }
BufferPtr BufferCache::alloc( const uint64_t size ) { LB_TS_SCOPED( _thread ); LBASSERTINFO( size >= COMMAND_ALLOCSIZE, size ); LBASSERTINFO( size < LB_BIT48, "Out-of-sync network stream: buffer size " << size << "?" ); BufferPtr buffer = _impl->newBuffer(); LBASSERT( buffer->getRefCount() == 1 ); buffer->reserve( size ); buffer->resize( 0 ); return buffer; }