XRootD
Loading...
Searching...
No Matches
XrdLinkInfo.hh
Go to the documentation of this file.
1
#ifndef __XRD_LINKINFO_H__
2
#define __XRD_LINKINFO_H__
3
/******************************************************************************/
4
/* */
5
/* X r d L i n k I n f o . h h */
6
/* */
7
/* (c) 2020 by the Board of Trustees of the Leland Stanford, Jr., University */
8
/* Produced by Andrew Hanushevsky for Stanford University under contract */
9
/* DE-AC02-76-SFO0515 with the Department of Energy */
10
/* */
11
/* This file is part of the XRootD software suite. */
12
/* */
13
/* XRootD is free software: you can redistribute it and/or modify it under */
14
/* the terms of the GNU Lesser General Public License as published by the */
15
/* Free Software Foundation, either version 3 of the License, or (at your */
16
/* option) any later version. */
17
/* */
18
/* XRootD is distributed in the hope that it will be useful, but WITHOUT */
19
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
20
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public */
21
/* License for more details. */
22
/* */
23
/* You should have received a copy of the GNU Lesser General Public License */
24
/* along with XRootD in a file called COPYING.LESSER (LGPL license) and file */
25
/* COPYING (GPL license). If not, see <http://www.gnu.org/licenses/>. */
26
/* */
27
/* The copyright holder's institutional names and contributor's names may not */
28
/* be used to endorse or promote products derived from this software without */
29
/* specific prior written permission of the institution or contributor. */
30
/******************************************************************************/
31
32
#include <cstdlib>
33
#include <sys/types.h>
34
#include <ctime>
35
36
#include "
XrdSys/XrdSysPthread.hh
"
37
38
class
XrdLinkInfo
39
{
40
public
:
41
42
XrdSysCondVar
*
KillcvP
;
// Protected by opMutex!
43
XrdSysSemaphore
IOSemaphore
;
// Serialization semaphore
44
XrdSysSemaphore
dspSem
;
// Posted when protocol dispatch ends
45
time_t
conTime
;
// Unix time connected
46
char
*
Etext
;
// -> error text, if nil then no error.
47
XrdSysRecMutex
opMutex
;
// Serialization mutex
48
int
InUse
;
// Number of threads using this object
49
int
doPost
;
// Number of threads waiting for serialization
50
int
dspCnt
;
// Number of threads dispatched into the protocol
51
int
dspPost
;
// Number of threads waiting for dispatch to end
52
int
FD
;
// File descriptor for link use (may be negative)
53
char
KillCnt
;
// Number of times a kill has been attempted
54
55
void
Reset
()
56
{
KillcvP
= 0;
57
conTime
= time(0);
58
if
(
Etext
) {free(
Etext
);
Etext
= 0;}
59
InUse
= 1;
60
doPost
= 0;
61
dspCnt
= 0;
62
dspPost
= 0;
63
FD
= -1;
64
KillCnt
= 0;
65
}
66
67
XrdLinkInfo
() :
IOSemaphore
(0,
"link i/o"
),
68
dspSem
(0,
"link dsp"
),
Etext
(0) {
Reset
();}
69
70
~XrdLinkInfo
() {}
71
};
72
#endif
XrdSysPthread.hh
XrdLinkInfo::InUse
int InUse
Definition
XrdLinkInfo.hh:48
XrdLinkInfo::FD
int FD
Definition
XrdLinkInfo.hh:52
XrdLinkInfo::XrdLinkInfo
XrdLinkInfo()
Definition
XrdLinkInfo.hh:67
XrdLinkInfo::doPost
int doPost
Definition
XrdLinkInfo.hh:49
XrdLinkInfo::KillCnt
char KillCnt
Definition
XrdLinkInfo.hh:53
XrdLinkInfo::conTime
time_t conTime
Definition
XrdLinkInfo.hh:45
XrdLinkInfo::~XrdLinkInfo
~XrdLinkInfo()
Definition
XrdLinkInfo.hh:70
XrdLinkInfo::Reset
void Reset()
Definition
XrdLinkInfo.hh:55
XrdLinkInfo::dspSem
XrdSysSemaphore dspSem
Definition
XrdLinkInfo.hh:44
XrdLinkInfo::IOSemaphore
XrdSysSemaphore IOSemaphore
Definition
XrdLinkInfo.hh:43
XrdLinkInfo::Etext
char * Etext
Definition
XrdLinkInfo.hh:46
XrdLinkInfo::opMutex
XrdSysRecMutex opMutex
Definition
XrdLinkInfo.hh:47
XrdLinkInfo::dspPost
int dspPost
Definition
XrdLinkInfo.hh:51
XrdLinkInfo::KillcvP
XrdSysCondVar * KillcvP
Definition
XrdLinkInfo.hh:42
XrdLinkInfo::dspCnt
int dspCnt
Definition
XrdLinkInfo.hh:50
XrdSysCondVar
Definition
XrdSysPthread.hh:79
XrdSysRecMutex
Definition
XrdSysPthread.hh:242
XrdSysSemaphore
Definition
XrdSysPthread.hh:494
Xrd
XrdLinkInfo.hh
Generated by
1.13.2