1#ifndef __CMS_CLUSTER__H
2#define __CMS_CLUSTER__H
36#include <netinet/in.h>
124 int sport,
const char *theNID,
const char *theIF);
135 char *Data,
int Dlen=0);
138 void *Data,
int Dlen);
143 void *Data,
int Dlen);
196 int isrw,
int isMulti,
int ifWant);
200void SLock(
bool dolock,
bool wrmode=
true)
222 int sport,
const char *theNID,
const char *theIF);
225void Record(
char *path,
const char *reason,
bool force=
false);
#define STMax
Definition XrdCmsTypes.hh:39
unsigned long long SMask_t
Definition XrdCmsTypes.hh:33
#define XRDOUC_ENUM_OPERATORS(T)
Definition XrdOucEnum.hh:22
Definition XrdCmsBaseFS.hh:49
Definition XrdCmsClustID.hh:41
Definition XrdCmsCluster.hh:115
RAtomic_llong SelRtot
Definition XrdCmsCluster.hh:251
SMask_t getMask(const XrdNetAddr *addr)
void SLock(bool dolock, bool wrmode=true)
Definition XrdCmsCluster.hh:200
RAtomic_llong SelWtot
Definition XrdCmsCluster.hh:250
RAtomic_llong SelTcnt
Definition XrdCmsCluster.hh:252
SMask_t peerHost
Definition XrdCmsCluster.hh:264
void Space(XrdCms::SpaceData &sData, SMask_t smask)
int Select(SMask_t pmask, int &port, char *hbuff, int &hlen, int isrw, int isMulti, int ifWant)
@ eNoSel
Definition XrdCmsCluster.hh:228
@ eDups
Definition XrdCmsCluster.hh:228
@ eNoRep
Definition XrdCmsCluster.hh:228
@ eROfs
Definition XrdCmsCluster.hh:228
@ eNoEnt
Definition XrdCmsCluster.hh:228
@ eExists
Definition XrdCmsCluster.hh:228
int SelFail(XrdCmsSelect &Sel, int rc)
XrdCmsNode * SelbyCost(SMask_t, XrdCmsSelector &selR)
int Broadsend(SMask_t smask, XrdCms::CmsRRHdr &Hdr, void *Data, int Dlen)
SMask_t getMask(const char *Cid)
long long Refs()
Definition XrdCmsCluster.hh:174
bool maxBits(SMask_t mVec, int mbits)
XrdSysRWLock STMutex
Definition XrdCmsCluster.hh:245
int Unreachable(XrdCmsSelect &Sel, bool none)
int Drop(int sent, int sinst, XrdCmsDrop *djp=0)
XrdCmsNode * NodeTab[STMax]
Definition XrdCmsCluster.hh:246
void setAltMan(int snum, XrdLink *lp, int port)
int Unuseable(XrdCmsSelect &Sel)
void Remove(const char *reason, XrdCmsNode *theNode, int immed=0)
int SelNode(XrdCmsSelect &Sel, SMask_t pmask, SMask_t amask)
int Select(XrdCmsSelect &Sel)
int STHi
Definition XrdCmsCluster.hh:248
XrdCmsNode * SelbyRef(SMask_t, XrdCmsSelector &selR)
void sendAList(XrdLink *lp)
int Locate(XrdCmsSelect &Sel)
char * AltMend
Definition XrdCmsCluster.hh:259
static const int EReplete
Definition XrdCmsCluster.hh:191
int SelDFS(XrdCmsSelect &Sel, SMask_t amask, SMask_t &pmask, SMask_t &smask, int isRW)
int Multiple(SMask_t mVec)
static const int AltSize
Definition XrdCmsCluster.hh:243
void ResetRef(SMask_t smask, bool isLocked=false)
SMask_t Broadcast(SMask_t smask, XrdCms::CmsRRHdr &Hdr, void *Data, int Dlen)
SMask_t Broadcast(SMask_t, const struct iovec *, int, int tot=0)
char AltMans[STMax *AltSize]
Definition XrdCmsCluster.hh:258
int AltMent
Definition XrdCmsCluster.hh:260
XrdCmsSelected * List(SMask_t mask, CmsLSOpts opts, bool &oksel)
static const int RetryErr
Definition XrdCmsCluster.hh:190
XrdCmsNode * Add(XrdLink *lp, int dport, int Status, int sport, const char *theNID, const char *theIF)
static const int NotFound
Definition XrdCmsCluster.hh:188
int NodeCnt
Definition XrdCmsCluster.hh:119
XrdCmsNode * AddAlt(XrdCmsClustID *cidP, XrdLink *lp, int port, int Status, int sport, const char *theNID, const char *theIF)
SMask_t Broadcast(SMask_t smask, XrdCms::CmsRRHdr &Hdr, char *Data, int Dlen=0)
int Reserved
Definition XrdCmsCluster.hh:249
static const int Wait4CBk
Definition XrdCmsCluster.hh:189
void Remove(XrdCmsNode *theNode)
CmsLSOpts
Definition XrdCmsCluster.hh:155
@ LS_IDNT
Definition XrdCmsCluster.hh:155
@ LS_ANY
Definition XrdCmsCluster.hh:156
@ LS_IFMASK
Definition XrdCmsCluster.hh:156
@ LS_NULL
Definition XrdCmsCluster.hh:155
@ LS_IPO
Definition XrdCmsCluster.hh:155
int Stats(char *bfr, int bln)
virtual ~XrdCmsCluster()
Definition XrdCmsCluster.hh:218
SMask_t peerMask
Definition XrdCmsCluster.hh:265
XrdCmsNode * calcDelay(XrdCmsSelector &selR)
friend class XrdCmsDrop
Definition XrdCmsCluster.hh:117
int Statt(char *bfr, int bln)
XrdCmsNode * SelbyLoad(SMask_t, XrdCmsSelector &selR)
virtual void BlackList(XrdOucTList *blP)
void Record(char *path, const char *reason, bool force=false)
Definition XrdCmsNode.hh:58
Definition XrdCmsSelect.hh:44
Definition XrdCmsSelect.hh:105
Definition XrdCmsSelect.hh:142
Definition XrdCmsCluster.hh:83
int wNum
Definition XrdCmsCluster.hh:90
int wFree
Definition XrdCmsCluster.hh:89
SpaceData()
Definition XrdCmsCluster.hh:96
int sNum
Definition XrdCmsCluster.hh:93
int wUtil
Definition XrdCmsCluster.hh:91
int sFree
Definition XrdCmsCluster.hh:92
int wMinF
Definition XrdCmsCluster.hh:88
~SpaceData()
Definition XrdCmsCluster.hh:99
int sUtil
Definition XrdCmsCluster.hh:94
long long Total
Definition XrdCmsCluster.hh:86
long long TotFr
Definition XrdCmsCluster.hh:87
Definition XrdNetAddr.hh:42
Definition XrdOucTList.hh:42
Definition XrdSysPthread.hh:330
void ReadLock()
Definition XrdSysPthread.hh:342
void WriteLock()
Definition XrdSysPthread.hh:343
void UnLock()
Definition XrdSysPthread.hh:348
Definition YProtocol.hh:78
static const int CMS_hasAlts
Definition XrdCmsCluster.hh:78
static const int CMS_isSuper
Definition XrdCmsCluster.hh:73
static const int CMS_noSpace
Definition XrdCmsCluster.hh:72
static const int CMS_noStage
Definition XrdCmsCluster.hh:65
static const int CMS_Lost
Definition XrdCmsCluster.hh:69
static const int CMS_isMan
Definition XrdCmsCluster.hh:68
static const int CMS_Perm
Definition XrdCmsCluster.hh:67
static const int CMS_isVers3
Definition XrdCmsCluster.hh:75
static const int CMS_isPeer
Definition XrdCmsCluster.hh:70
static const int CMS_isProxy
Definition XrdCmsCluster.hh:71
static const int CMS_Suspend
Definition XrdCmsCluster.hh:66
static const int CMS_notServ
Definition XrdCmsCluster.hh:77
Definition YProtocol.hh:83