296 {
297
298 if( !status->
IsOK() )
299 {
301 delete this;
302 return;
303 }
304
305
306
307 ChunkInfo *chunk = 0;
308 rdresp->Get(chunk);
309
310 std::vector<uint32_t> cksums;
311 if( isChannelEncrypted )
312 {
315 ++nbpages;
316 cksums.reserve( nbpages );
317
318 size_t size = chunk->length;
319 char *buffer = reinterpret_cast<char*>( chunk->buffer );
320
321 for( size_t pg = 0; pg < nbpages; ++pg )
322 {
324 if( pgsize > size ) pgsize = size;
326 cksums.push_back( crcval );
327 buffer += pgsize;
328 size -= pgsize;
329 }
330 }
331
332 PageInfo *pages = new PageInfo(chunk->offset, chunk->length, chunk->buffer, std::move(cksums));
333 delete rdresp;
334 AnyObject *response = new AnyObject();
335 response->Set( pages );
337
338 delete this;
339 }
virtual void HandleResponse(XRootDStatus *status, AnyObject *response)
static uint32_t Calc32C(const void *data, size_t count, uint32_t prevcs=0)
static const int PageSize
bool IsOK() const
We're fine.