XRootD
Loading...
Searching...
No Matches
XrdPssAioCB.hh
Go to the documentation of this file.
1
#ifndef __PSS_AIOCB_HH__
2
#define __PSS_AIOCB_HH__
3
/******************************************************************************/
4
/* */
5
/* X r d P s s A i o C B . h h */
6
/* */
7
/* (c) 2016 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
33
#include <cstdint>
34
#include <vector>
35
36
#include "
XrdPosix/XrdPosixCallBack.hh
"
37
#include "
XrdSys/XrdSysPthread.hh
"
38
39
class
XrdSfsAio
;
40
41
class
XrdPssAioCB :
public
XrdPosixCallBackIO
42
{
43
public
:
44
45
static
XrdPssAioCB *
Alloc
(
XrdSfsAio
*aiop,
bool
isWr,
bool
pgrw=
false
);
46
47
virtual
void
Complete
(ssize_t Result);
48
49
void
Recycle
();
50
51
static
void
SetMax
(
int
mval) {maxFree = mval;}
52
53
std::vector<uint32_t>
csVec
;
54
55
private
:
56
XrdPssAioCB() : theAIOP(0), isWrite(false) {}
57
virtual
~XrdPssAioCB
() {}
58
59
static
XrdSysMutex myMutex;
60
static
XrdPssAioCB *freeCB;
61
static
int
numFree;
62
static
int
maxFree;
63
64
union
{XrdSfsAio *theAIOP;
65
XrdPssAioCB *next;
66
};
67
bool
isWrite;
68
bool
isPGrw;
69
};
70
#endif
XrdPosixCallBack.hh
XrdSysPthread.hh
XrdPosixCallBackIO::XrdPosixCallBackIO
XrdPosixCallBackIO()
Definition
XrdPosixCallBack.hh:83
XrdPssAioCB
Definition
XrdPssAioCB.hh:42
XrdPssAioCB::SetMax
static void SetMax(int mval)
Definition
XrdPssAioCB.hh:51
XrdPssAioCB::csVec
std::vector< uint32_t > csVec
Definition
XrdPssAioCB.hh:53
XrdPssAioCB::Recycle
void Recycle()
Definition
XrdPssAioCB.cc:108
XrdPssAioCB::Complete
virtual void Complete(ssize_t Result)
Definition
XrdPssAioCB.cc:73
XrdPssAioCB::Alloc
static XrdPssAioCB * Alloc(XrdSfsAio *aiop, bool isWr, bool pgrw=false)
Definition
XrdPssAioCB.cc:49
XrdSfsAio
Definition
XrdSfsAio.hh:59
XrdPss
XrdPssAioCB.hh
Generated by
1.13.2