XRootD
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 }
static const int PageSize

References XrdSys::PageSize.

◆ 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
Definition: XrdCmsRRData.hh:94

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 { ... }

◆ 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(), 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: