19#ifndef SRC_XRDCL_XRDCLASYNCPAGEREADER_HH_
20#define SRC_XRDCL_XRDCLASYNCPAGEREADER_HH_
48 std::vector<uint32_t> &
digests ) :
60 uint64_t rdoff =
chunks.front().offset;
142 value = sysconf(_SC_IOV_MAX);
150 value &= ~uint32_t( 1 );
167 inline void addiov(
char *&buf,
size_t len )
170 iov.back().iov_base = buf;
171 iov.back().iov_len = len;
179 inline void addiov(
char *&buf, uint32_t len, uint32_t &dleft )
181 if( len > dleft ) len = dleft;
202 uint32_t dleft =
dlen;
207 if( dleft > pgspace + dgspace )
208 dleft = pgspace + dgspace;
226 char* pgbuf =
static_cast<char*
>( ch.
buffer ) +
choff;
230 uint32_t fdglen =
sizeof( uint32_t ) -
dgoff;
231 addiov( dgbuf, fdglen, dleft );
236 addiov( pgbuf, fpglen, dleft );
241 for(
size_t i = 0; i < fullpgs; ++i )
243 addiov( dgbuf,
sizeof( uint32_t ), dleft );
251 uint32_t ldglen =
sizeof( uint32_t );
252 addiov( dgbuf, ldglen, dleft );
256 addiov( pgbuf, dleft, dleft );
262 inline void shift(
void *&buffer,
size_t nbbts )
264 char *buf =
static_cast<char*
>( buffer );
330 if( btsread == 0 )
break;
A network socket.
Definition XrdClSocket.hh:43
XRootDStatus ReadV(iovec *iov, int iocnt, int &bytesRead)
Request status.
Definition XrdClXRootDResponses.hh:219
static int csNum(off_t offs, int count)
Compute the required size of a checksum vector based on offset & length.
Definition XrdClAction.hh:34
const uint16_t suRetry
Definition XrdClStatus.hh:40
std::vector< ChunkInfo > ChunkList
List of chunks.
Definition XrdClXRootDResponses.hh:1055
static const int PageSize
Definition XrdSysPageSize.hh:36
kXR_int32 dlen
Definition XProtocol.hh:1236
kXR_int64 offset
Definition XProtocol.hh:1056
struct ServerResponseBody_Status bdy
Definition XProtocol.hh:1257
Definition XProtocol.hh:1304
ServerResponseStatus status
Definition XProtocol.hh:1305
union ServerResponseV2::@1 info
ServerResponseBody_pgRead pgread
Definition XProtocol.hh:1308
Describe a data chunk for vector read.
Definition XrdClXRootDResponses.hh:917
void * buffer
length of the chunk
Definition XrdClXRootDResponses.hh:950
uint64_t offset
Definition XrdClXRootDResponses.hh:948
char * data
Definition XrdOucIOVec.hh:45
Definition XrdOucIOVec.hh:65