XRootD
Loading...
Searching...
No Matches
XrdCmsClustID.hh
Go to the documentation of this file.
1
#ifndef __XRDCMSCLUSTID_HH__
2
#define __XRDCMSCLUSTID_HH__
3
/******************************************************************************/
4
/* */
5
/* X r d C m s C l u s t I D . h h */
6
/* */
7
/* (c) 2014 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 Deprtment 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 <cstring>
34
35
class
XrdLink
;
36
class
XrdCmsNode
;
37
38
#include "
XrdCms/XrdCmsTypes.hh
"
39
40
class
XrdCmsClustID
41
{
42
public
:
43
44
static
XrdCmsClustID
*
AddID
(
const
char
*cID);
45
46
bool
AddNode
(
XrdCmsNode
*nP,
bool
isMan);
47
48
inline
bool
Avail
() {
return
npNum < altMax;}
49
50
bool
Exists
(
XrdLink
*lp,
const
char
*nid,
int
port);
51
52
static
XrdCmsClustID
*
Find
(
const
char
*cID);
53
54
static
SMask_t
Mask
(
const
char
*cID);
55
56
inline
bool
IsEmpty
() {
return
npNum < 1;}
57
58
inline
bool
IsSingle
() {
return
npNum == 1;}
59
60
XrdCmsNode
*
RemNode
(
XrdCmsNode
*nP);
61
62
inline
int
Slot
() {
return
ntSlot;}
63
64
XrdCmsClustID
() : cidMask(0), cidName(0), ntSlot(-1), npNum(0)
65
{memset(nodeP, 0,
sizeof
(nodeP));}
66
67
~XrdCmsClustID
() {
if
(cidName) free(cidName);}
68
69
private
:
70
71
static
const
int
altMax = 8;
72
73
SMask_t
cidMask;
74
char
*cidName;
75
int
ntSlot;
76
int
npNum;
77
XrdCmsNode
*nodeP[altMax];
78
};
79
#endif
XrdCmsTypes.hh
SMask_t
unsigned long long SMask_t
Definition
XrdCmsTypes.hh:33
Exists
bool Exists
Definition
XrdSecgsiProxy.cc:97
XrdCmsClustID
Definition
XrdCmsClustID.hh:41
XrdCmsClustID::AddID
static XrdCmsClustID * AddID(const char *cID)
Definition
XrdCmsClustID.cc:57
XrdCmsClustID::IsEmpty
bool IsEmpty()
Definition
XrdCmsClustID.hh:56
XrdCmsClustID::Mask
static SMask_t Mask(const char *cID)
Definition
XrdCmsClustID.cc:186
XrdCmsClustID::Avail
bool Avail()
Definition
XrdCmsClustID.hh:48
XrdCmsClustID::XrdCmsClustID
XrdCmsClustID()
Definition
XrdCmsClustID.hh:64
XrdCmsClustID::RemNode
XrdCmsNode * RemNode(XrdCmsNode *nP)
Definition
XrdCmsClustID.cc:218
XrdCmsClustID::IsSingle
bool IsSingle()
Definition
XrdCmsClustID.hh:58
XrdCmsClustID::Slot
int Slot()
Definition
XrdCmsClustID.hh:62
XrdCmsClustID::Find
static XrdCmsClustID * Find(const char *cID)
Definition
XrdCmsClustID.cc:156
XrdCmsClustID::~XrdCmsClustID
~XrdCmsClustID()
Definition
XrdCmsClustID.hh:67
XrdCmsClustID::AddNode
bool AddNode(XrdCmsNode *nP, bool isMan)
Definition
XrdCmsClustID.cc:97
XrdCmsNode
Definition
XrdCmsNode.hh:58
XrdLink
Definition
XrdLink.hh:52
XrdCms
XrdCmsClustID.hh
Generated by
1.10.0