xrootd
Classes | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
XrdCl::AsyncVectorReader Class Reference

Object for reading out data from the VectorRead response. More...

#include <XrdClAsyncVectorReader.hh>

Collaboration diagram for XrdCl::AsyncVectorReader:
Collaboration graph
[legend]

Classes

struct  ChunkStatus
 

Public Member Functions

 AsyncVectorReader (const URL &url)
 
virtual ~AsyncVectorReader ()
 Destructor. More...
 
void SetDataLength (int dlen)
 Sets response data length. More...
 
void SetChunkList (ChunkList *chunks)
 Sets the chunk list with user buffers. More...
 
XRootDStatus Read (Socket &socket, uint32_t &btsret)
 
Status GetVectorReadInfo (VectorReadInfo *&info)
 

Private Types

enum  Stage {
  ReadStart , ReadRdLst , ReadChunk , ReadDiscard ,
  ReadDone
}
 Stages of reading out a response from the socket. More...
 
using buffer_t = std::vector< char >
 

Private Member Functions

Status ReadBytesAsync (Socket &socket, char *buffer, uint32_t toBeRead, uint32_t &bytesRead)
 

Private Attributes

Stage readstage
 
const URLurl
 
ChunkListchunks
 
std::vector< ChunkStatuschstatus
 
uint32_t dlen
 
uint32_t totalbtsrd
 
size_t chidx
 
size_t choff
 
size_t chlen
 
size_t rdlstoff
 
readahead_list rdlst
 
size_t rdlstlen
 
buffer_t discardbuff
 

Detailed Description

Object for reading out data from the VectorRead response.

Member Typedef Documentation

◆ buffer_t

using XrdCl::AsyncVectorReader::buffer_t = std::vector<char>
private

Member Enumeration Documentation

◆ Stage

Stages of reading out a response from the socket.

Enumerator
ReadStart 
ReadRdLst 
ReadChunk 
ReadDiscard 
ReadDone 

Constructor & Destructor Documentation

◆ AsyncVectorReader()

XrdCl::AsyncVectorReader::AsyncVectorReader ( const URL url)
inline

Constructor

Parameters
url: channel URL

References rdlst.

◆ ~AsyncVectorReader()

virtual XrdCl::AsyncVectorReader::~AsyncVectorReader ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ GetVectorReadInfo()

Status XrdCl::AsyncVectorReader::GetVectorReadInfo ( VectorReadInfo *&  info)
inline

◆ Read()

XRootDStatus XrdCl::AsyncVectorReader::Read ( Socket socket,
uint32_t &  btsret 
)
inline

◆ ReadBytesAsync()

Status XrdCl::AsyncVectorReader::ReadBytesAsync ( Socket socket,
char *  buffer,
uint32_t  toBeRead,
uint32_t &  bytesRead 
)
inlineprivate

◆ SetChunkList()

void XrdCl::AsyncVectorReader::SetChunkList ( ChunkList chunks)
inline

Sets the chunk list with user buffers.

References chstatus, and chunks.

◆ SetDataLength()

void XrdCl::AsyncVectorReader::SetDataLength ( int  dlen)
inline

Sets response data length.

References dlen, readstage, ReadStart, and totalbtsrd.

Member Data Documentation

◆ chidx

size_t XrdCl::AsyncVectorReader::chidx
private

Referenced by Read().

◆ chlen

size_t XrdCl::AsyncVectorReader::chlen
private

Referenced by Read().

◆ choff

size_t XrdCl::AsyncVectorReader::choff
private

Referenced by Read().

◆ chstatus

std::vector<ChunkStatus> XrdCl::AsyncVectorReader::chstatus
private

◆ chunks

ChunkList* XrdCl::AsyncVectorReader::chunks
private

◆ discardbuff

buffer_t XrdCl::AsyncVectorReader::discardbuff
private

Referenced by Read().

◆ dlen

uint32_t XrdCl::AsyncVectorReader::dlen
private

Referenced by Read(), and SetDataLength().

◆ rdlst

readahead_list XrdCl::AsyncVectorReader::rdlst
private

Referenced by AsyncVectorReader(), and Read().

◆ rdlstlen

size_t XrdCl::AsyncVectorReader::rdlstlen
private

Referenced by Read().

◆ rdlstoff

size_t XrdCl::AsyncVectorReader::rdlstoff
private

Referenced by Read().

◆ readstage

Stage XrdCl::AsyncVectorReader::readstage
private

Referenced by Read(), and SetDataLength().

◆ totalbtsrd

uint32_t XrdCl::AsyncVectorReader::totalbtsrd
private

Referenced by Read(), and SetDataLength().

◆ url

const URL& XrdCl::AsyncVectorReader::url
private

Referenced by Read().


The documentation for this class was generated from the following file: