xrootd
Loading...
Searching...
No Matches
XrdXrootdPgrwAio.hh
Go to the documentation of this file.
1#ifndef __XRDXROOTDPGRWAIO_H__
2#define __XRDXROOTDPGRWAIO_H__
3/******************************************************************************/
4/* */
5/* X r d X r o o t d P g r w A i o . h h */
6/* */
7/* (c) 2021 by the Board of Trustees of the Leland Stanford, Jr., University */
8/* All Rights Reserved */
9/* Produced by Andrew Hanushevsky for Stanford University under contract */
10/* DE-AC02-76-SFO0515 with the Department of Energy */
11/* */
12/* This file is part of the XRootD software suite. */
13/* */
14/* XRootD is free software: you can redistribute it and/or modify it under */
15/* the terms of the GNU Lesser General Public License as published by the */
16/* Free Software Foundation, either version 3 of the License, or (at your */
17/* option) any later version. */
18/* */
19/* XRootD is distributed in the hope that it will be useful, but WITHOUT */
20/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
21/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public */
22/* License for more details. */
23/* */
24/* You should have received a copy of the GNU Lesser General Public License */
25/* along with XRootD in a file called COPYING.LESSER (LGPL license) and file */
26/* COPYING (GPL license). If not, see <http://www.gnu.org/licenses/>. */
27/* */
28/* The copyright holder's institutional names and contributor's names may not */
29/* be used to endorse or promote products derived from this software without */
30/* specific prior written permission of the institution or contributor. */
31/******************************************************************************/
32
34
37
39{
40public:
41
44 XrdXrootdFile *fP,
45 XrdXrootdPgwBadCS *bcsP=0);
46
47 void DoIt() override;
48
49 void Read(long long offs, int dlen) override;
50
51 void Recycle(bool release) override;
52
53 int Write(long long offs, int dlen) override;
54
55static const int aioSZ = 64*1024; // 64K I/O size
56
57private:
58
59 XrdXrootdPgrwAio() : XrdXrootdAioTask("pgaio request") {}
61
63 void CopyF2L() override;
64 int CopyL2F() override;
65 bool CopyL2F(XrdXrootdAioBuff *bP) override;
66 bool SendData(XrdXrootdAioBuff *bP, bool final=false);
67 int SendDone();
69
70static const char *TraceID;
71
72 XrdXrootdPgwBadCS *badCSP; // -> Bad checksum recorder
73};
74#endif
Definition XrdXrootdAioBuff.hh:41
Definition XrdXrootdAioPgrw.hh:48
Definition XrdXrootdAioTask.hh:47
Definition XrdXrootdFile.hh:101
Definition XrdXrootdPgrwAio.hh:39
int CopyL2F() override
XrdXrootdPgwBadCS * badCSP
Definition XrdXrootdPgrwAio.hh:72
bool CopyL2F(XrdXrootdAioBuff *bP) override
bool CopyF2L_Add2Q(XrdXrootdAioPgrw *aioP=0)
static XrdXrootdPgrwAio * Alloc(XrdXrootdProtocol *protP, XrdXrootdResponse &resp, XrdXrootdFile *fP, XrdXrootdPgwBadCS *bcsP=0)
XrdXrootdPgrwAio()
Definition XrdXrootdPgrwAio.hh:59
static const int aioSZ
Definition XrdXrootdPgrwAio.hh:55
bool SendData(XrdXrootdAioBuff *bP, bool final=false)
static const char * TraceID
Definition XrdXrootdPgrwAio.hh:70
void DoIt() override
void Read(long long offs, int dlen) override
bool VerCks(XrdXrootdAioPgrw *aioP)
int Write(long long offs, int dlen) override
void Recycle(bool release) override
virtual ~XrdXrootdPgrwAio()
Definition XrdXrootdPgrwAio.hh:60
void CopyF2L() override
Definition XrdXrootdPgwBadCS.hh:37
Definition XrdXrootdProtocol.hh:156
Definition XrdXrootdResponse.hh:49