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: XrdLink.hh:52
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
static struct XrdCl::None none
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