XRootD
XrdCms::AdminReq Class Reference
+ Collaboration diagram for XrdCms::AdminReq:

Public Member Functions

 AdminReq (const char *req, XrdCmsRRData &RRD)
 
 ~AdminReq ()
 
void Requeue ()
 

Static Public Member Functions

static AdminReqgetReq ()
 

Public Attributes

char * Data
 
int Dlen
 
CmsRRHdr Hdr
 
AdminReqNext
 
const char * Path
 
const char * Req
 

Static Public Attributes

static const int maxinQ = 1024
 
static int numinQ = 0
 

Detailed Description

Definition at line 65 of file XrdCmsAdmin.cc.

Constructor & Destructor Documentation

◆ AdminReq()

XrdCms::AdminReq::AdminReq ( const char *  req,
XrdCmsRRData RRD 
)
inline

Definition at line 95 of file XrdCmsAdmin.cc.

96  : Next(0), Req(req), Path(RRD.Path ? RRD.Path : ""),
97  Hdr(RRD.Request), Data(RRD.Buff), Dlen(RRD.Dlen)
98  {RRD.Buff = 0;
99  QMutex.Lock();
100  if (Last) {Last->Next = this; Last = this;}
101  else First=Last = this;
102  QPresent.Post();
103  numinQ++;
104  QMutex.UnLock();
105  }
XrdCms::CmsRRHdr Request
Definition: XrdCmsRRData.hh:54
AdminReq * Next
Definition: XrdCmsAdmin.cc:69
static int numinQ
Definition: XrdCmsAdmin.cc:75
const char * Req
Definition: XrdCmsAdmin.cc:70
const char * Path
Definition: XrdCmsAdmin.cc:71

References XrdCmsRRData::Buff, XrdSysMutex::Lock(), Next, numinQ, XrdSysSemaphore::Post(), and XrdSysMutex::UnLock().

+ Here is the call graph for this function:

◆ ~AdminReq()

XrdCms::AdminReq::~AdminReq ( )
inline

Definition at line 107 of file XrdCmsAdmin.cc.

107 {if (Data) free(Data);}

References Data.

Member Function Documentation

◆ getReq()

static AdminReq* XrdCms::AdminReq::getReq ( )
inlinestatic

Definition at line 78 of file XrdCmsAdmin.cc.

78  {AdminReq *arP;
79  do {QPresent.Wait();
80  QMutex.Lock();
81  if ((arP = First))
82  {if (!(First = arP->Next)) Last = 0;
83  numinQ--;
84  }
85  QMutex.UnLock();
86  } while (!arP);
87  return arP;
88  }

References XrdSysMutex::Lock(), Next, numinQ, XrdSysMutex::UnLock(), and XrdSysSemaphore::Wait().

Referenced by XrdCmsAdmin::Relay().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Requeue()

void XrdCms::AdminReq::Requeue ( )
inline

Definition at line 90 of file XrdCmsAdmin.cc.

90  {QMutex.Lock();
91  Next=First; First=this; QPresent.Post(); numinQ++;
92  QMutex.UnLock();
93  }

References XrdSysMutex::Lock(), Next, numinQ, XrdSysSemaphore::Post(), and XrdSysMutex::UnLock().

Referenced by XrdCmsAdmin::Relay().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ Data

char* XrdCms::AdminReq::Data

Definition at line 73 of file XrdCmsAdmin.cc.

Referenced by ~AdminReq(), and XrdCmsAdmin::Relay().

◆ Dlen

int XrdCms::AdminReq::Dlen

Definition at line 74 of file XrdCmsAdmin.cc.

Referenced by XrdCmsAdmin::Relay().

◆ Hdr

CmsRRHdr XrdCms::AdminReq::Hdr

Definition at line 72 of file XrdCmsAdmin.cc.

Referenced by XrdCmsAdmin::Relay().

◆ maxinQ

const int XrdCms::AdminReq::maxinQ = 1024
static

Definition at line 76 of file XrdCmsAdmin.cc.

Referenced by XrdCmsAdmin::Send().

◆ Next

AdminReq* XrdCms::AdminReq::Next

Definition at line 69 of file XrdCmsAdmin.cc.

Referenced by AdminReq(), getReq(), and Requeue().

◆ numinQ

int AdminReq::numinQ = 0
static

Definition at line 75 of file XrdCmsAdmin.cc.

Referenced by AdminReq(), getReq(), Requeue(), and XrdCmsAdmin::Send().

◆ Path

const char* XrdCms::AdminReq::Path

Definition at line 71 of file XrdCmsAdmin.cc.

Referenced by XrdCmsAdmin::Relay().

◆ Req

const char* XrdCms::AdminReq::Req

Definition at line 70 of file XrdCmsAdmin.cc.

Referenced by XrdCmsAdmin::Relay().


The documentation for this class was generated from the following file: