XRootD
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
time_t
conTime
;
// Unix time connected
45
char
*
Etext
;
// -> error text, if nil then no error.
46
XrdSysRecMutex
opMutex
;
// Serialization mutex
47
int
InUse
;
// Number of threads using this object
48
int
doPost
;
// Number of threads waiting for serialization
49
int
FD
;
// File descriptor for link use (may be negative)
50
char
KillCnt
;
// Number of times a kill has been attempted
51
52
void
Reset
()
53
{
KillcvP
= 0;
54
conTime
= time(0);
55
if
(
Etext
) {free(
Etext
);
Etext
= 0;}
56
InUse
= 1;
57
doPost
= 0;
58
FD
= -1;
59
KillCnt
= 0;
60
}
61
62
XrdLinkInfo
() :
IOSemaphore
(0,
"link i/o"
),
Etext
(0) {
Reset
();}
63
64
~XrdLinkInfo
() {}
65
};
66
#endif
XrdSysPthread.hh
XrdLinkInfo
Definition:
XrdLinkInfo.hh:39
XrdLinkInfo::InUse
int InUse
Definition:
XrdLinkInfo.hh:47
XrdLinkInfo::FD
int FD
Definition:
XrdLinkInfo.hh:49
XrdLinkInfo::XrdLinkInfo
XrdLinkInfo()
Definition:
XrdLinkInfo.hh:62
XrdLinkInfo::doPost
int doPost
Definition:
XrdLinkInfo.hh:48
XrdLinkInfo::KillCnt
char KillCnt
Definition:
XrdLinkInfo.hh:50
XrdLinkInfo::conTime
time_t conTime
Definition:
XrdLinkInfo.hh:44
XrdLinkInfo::~XrdLinkInfo
~XrdLinkInfo()
Definition:
XrdLinkInfo.hh:64
XrdLinkInfo::Reset
void Reset()
Definition:
XrdLinkInfo.hh:52
XrdLinkInfo::IOSemaphore
XrdSysSemaphore IOSemaphore
Definition:
XrdLinkInfo.hh:43
XrdLinkInfo::Etext
char * Etext
Definition:
XrdLinkInfo.hh:45
XrdLinkInfo::opMutex
XrdSysRecMutex opMutex
Definition:
XrdLinkInfo.hh:46
XrdLinkInfo::KillcvP
XrdSysCondVar * KillcvP
Definition:
XrdLinkInfo.hh:42
XrdSysCondVar
Definition:
XrdSysPthread.hh:79
XrdSysRecMutex
Definition:
XrdSysPthread.hh:242
XrdSysSemaphore
Definition:
XrdSysPthread.hh:494
Xrd
XrdLinkInfo.hh
Generated by
1.9.1