XRootD
Loading...
Searching...
No Matches
XrdCmsRRData Class Reference

#include <XrdCmsRRData.hh>

+ Collaboration diagram for XrdCmsRRData:

Public Types

enum  ArgName {
  Arg_Null =0 ,
  Arg_AToken ,
  Arg_Avoid ,
  Arg_Datlen ,
  Arg_Ident ,
  Arg_Info ,
  Arg_Mode ,
  Arg_Notify ,
  Arg_Opaque2 ,
  Arg_Opaque ,
  Arg_Opts ,
  Arg_Path ,
  Arg_Path2 ,
  Arg_Port ,
  Arg_Prty ,
  Arg_Reqid ,
  Arg_dskFree ,
  Arg_dskUtil ,
  Arg_theLoad ,
  Arg_SID ,
  Arg_dskTot ,
  Arg_dskMinf ,
  Arg_CGI ,
  Arg_Ilist ,
  Arg_Count
}
 

Public Member Functions

int getBuff (size_t bsz)
 

Static Public Member Functions

static XrdCmsRRDataObjectify (XrdCmsRRData *op=0)
 

Public Attributes

union { 
 
unsigned int dskUtil
 
int waitVal
 
};  
 
char * Avoid
 
int Blen
 
char * Buff
 
int Dlen
 
unsigned int dskFree
 
char * Ident
 
char * Mode
 
XrdCmsRRDataNext
 
char * Notify
 
char * Opaque
 
char * Opaque2
 
unsigned int Opts
 
char * Path
 
char * Path2
 
int PathLen
 
char * Prty
 
char * Reqid
 
XrdCms::CmsRRHdr Request
 
int Routing
 

Detailed Description

Definition at line 51 of file XrdCmsRRData.hh.

Member Enumeration Documentation

◆ ArgName

Enumerator
Arg_Null 
Arg_AToken 
Arg_Avoid 
Arg_Datlen 
Arg_Ident 
Arg_Info 
Arg_Mode 
Arg_Notify 
Arg_Opaque2 
Arg_Opaque 
Arg_Opts 
Arg_Path 
Arg_Path2 
Arg_Port 
Arg_Prty 
Arg_Reqid 
Arg_dskFree 
Arg_dskUtil 
Arg_theLoad 
Arg_SID 
Arg_dskTot 
Arg_dskMinf 
Arg_CGI 
Arg_Ilist 
Arg_Count 

Definition at line 76 of file XrdCmsRRData.hh.

83
84 Arg_Count // Always the last item which equals the number of elements
85};

Member Function Documentation

◆ getBuff()

int XrdCmsRRData::getBuff ( size_t  bsz)

Definition at line 44 of file XrdCmsRRData.cc.

45{
46 static size_t PageSize = sysconf(_SC_PAGESIZE);
47 size_t Alignment = PageSize;
48
49 if (bsz < Alignment)
50 {if (bsz <= 8) Alignment = bsz = 8;
51 else {do {Alignment = Alignment >> 1;} while(bsz < Alignment);
52 Alignment = Alignment << 1; bsz = Alignment;
53 }
54 }
55
56 if (Buff) free(Buff);
57 if (posix_memalign((void **)&Buff, Alignment, bsz))
58 {Buff = 0; return 0;}
59
60 Blen = bsz;
61 return 1;
62}

References Blen, and Buff.

◆ Objectify()

XrdCmsRRData * XrdCmsRRData::Objectify ( XrdCmsRRData op = 0)
static

Definition at line 68 of file XrdCmsRRData.cc.

69{
70 static XrdSysMutex myMutex;
71 static XrdCmsRRData *Free;
72
73// Obtain a new object or recycle an old one
74//
75 myMutex.Lock();
76 if (op) {op->Next = Free; Free = op; op = 0;}
77 else {if ((op = Free)) Free = op->Next;
78 else {op = new XrdCmsRRData; op->Buff = 0; op->Blen = 0;}
79 op->Ident = 0; op->Next = 0;
80 }
81
82 myMutex.UnLock();
83
84 return op;
85}
XrdCmsRRData * Next

References Blen, Buff, Ident, XrdSysMutex::Lock(), Next, and XrdSysMutex::UnLock().

Referenced by XrdCmsJob::Recycle().

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

Member Data Documentation

◆ [union]

union { ... } XrdCmsRRData

◆ Avoid

char* XrdCmsRRData::Avoid

Definition at line 59 of file XrdCmsRRData.hh.

Referenced by XrdCmsNode::do_Select(), and XrdCmsFinderRMT::Locate().

◆ Blen

int XrdCmsRRData::Blen

Definition at line 72 of file XrdCmsRRData.hh.

Referenced by XrdCmsPrepArgs::XrdCmsPrepArgs(), getBuff(), and Objectify().

◆ Buff

◆ Dlen

◆ dskFree

unsigned int XrdCmsRRData::dskFree

◆ Ident

◆ Mode

◆ Next

XrdCmsRRData* XrdCmsRRData::Next

Definition at line 94 of file XrdCmsRRData.hh.

Referenced by Objectify().

◆ Notify

char* XrdCmsRRData::Notify

◆ Opaque

◆ Opaque2

char* XrdCmsRRData::Opaque2

Definition at line 58 of file XrdCmsRRData.hh.

Referenced by XrdCmsFinderRMT::Forward(), and XrdCmsParser::Parse().

◆ Opts

unsigned int XrdCmsRRData::Opts

◆ Path

◆ Path2

char* XrdCmsRRData::Path2

Definition at line 57 of file XrdCmsRRData.hh.

Referenced by XrdCmsNode::do_Mv(), and XrdCmsFinderRMT::Forward().

◆ PathLen

◆ Prty

char* XrdCmsRRData::Prty

◆ Reqid

char* XrdCmsRRData::Reqid

◆ Request

◆ Routing

int XrdCmsRRData::Routing

Definition at line 74 of file XrdCmsRRData.hh.

Referenced by XrdCmsProtocol::Execute(), and XrdCmsFinderTRG::Start().


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