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

#include <XrdXrootdMonFMap.hh>

+ Collaboration diagram for XrdXrootdMonFMap:

Classes

struct  cvPtr
 
union  cvPtr.__unnamed169__
 

Public Member Functions

 XrdXrootdMonFMap ()
 
 ~XrdXrootdMonFMap ()
 
bool Free (int slotNum)
 
int Insert (XrdXrootdFileStats *fsP)
 
XrdXrootdFileStatsNext (int &slotNum)
 

Public Attributes

cvPtrfMap
 
cvPtr free
 

Static Public Attributes

static const int fmHold = 31
 
static const int fmMask = 0x01ff
 
static const int fmShft = 9
 
static const int fmSize = 512
 
static const int mapNum = 128
 

Detailed Description

Definition at line 35 of file XrdXrootdMonFMap.hh.


Class Documentation

◆ XrdXrootdMonFMap::cvPtr

struct XrdXrootdMonFMap::cvPtr

Definition at line 39 of file XrdXrootdMonFMap.hh.

+ Collaboration diagram for XrdXrootdMonFMap::cvPtr:
Class Members
union cvPtr.__unnamed169__ __unnamed__

◆ XrdXrootdMonFMap::cvPtr.__unnamed169__

union XrdXrootdMonFMap::cvPtr.__unnamed169__

Definition at line 39 of file XrdXrootdMonFMap.hh.

+ Collaboration diagram for XrdXrootdMonFMap::cvPtr.__unnamed169__:
Class Members
cvPtr * cPtr
long cVal
XrdXrootdFileStats * vPtr

Constructor & Destructor Documentation

◆ XrdXrootdMonFMap()

XrdXrootdMonFMap::XrdXrootdMonFMap ( )
inline

Definition at line 56 of file XrdXrootdMonFMap.hh.

56: fMap(0) {free.cVal = 0;}

References free.

◆ ~XrdXrootdMonFMap()

XrdXrootdMonFMap::~XrdXrootdMonFMap ( )
inline

Definition at line 57 of file XrdXrootdMonFMap.hh.

57{}

Member Function Documentation

◆ Free()

bool XrdXrootdMonFMap::Free ( int  slotNum)

Definition at line 51 of file XrdXrootdMonFMap.cc.

52{
53// Validate the data before freeing the slot
54//
55 if (!fMap || slotNum < 0 || slotNum >= fmSize || fMap[slotNum].cVal & invVal)
56 return false;
57
58// Plase this entry on the free list
59//
60 fMap[slotNum].cPtr = free.cPtr;
61 fMap[slotNum].cVal |= invVal;
62 free.cPtr = &fMap[slotNum];
63 return true;
64}
static const int fmSize

References fMap, fmSize, and free.

◆ Insert()

int XrdXrootdMonFMap::Insert ( XrdXrootdFileStats fsP)

Definition at line 98 of file XrdXrootdMonFMap.cc.

99{
100 cvPtr *mEnt;
101
102// Check if we have a free slot available
103//
104 if (!free.cVal) {if (fMap || !Init()) return -1;}
105
106// Return the free slot (Init() gaurantees one is available)
107//
108 mEnt = free.cPtr;
109 free.cPtr = free.cPtr->cPtr;
110 free.cVal &= valVal;
111 mEnt->vPtr = fsP;
112 return mEnt - fMap;
113}

References fMap, and free.

◆ Next()

XrdXrootdFileStats * XrdXrootdMonFMap::Next ( int &  slotNum)

Definition at line 119 of file XrdXrootdMonFMap.cc.

120{
121
122// Return next valid pointer
123//
124 for (; slotNum < fmSize-1; slotNum++)
125 {if (!(fMap[slotNum].cVal & invVal)) return fMap[slotNum++].vPtr;}
126
127// At the end of the map
128//
129 return 0;
130}

References fMap, and fmSize.

Member Data Documentation

◆ fMap

cvPtr* XrdXrootdMonFMap::fMap

Definition at line 41 of file XrdXrootdMonFMap.hh.

Referenced by Free(), Insert(), and Next().

◆ fmHold

const int XrdXrootdMonFMap::fmHold = 31
static

Definition at line 46 of file XrdXrootdMonFMap.hh.

◆ fmMask

const int XrdXrootdMonFMap::fmMask = 0x01ff
static

Definition at line 47 of file XrdXrootdMonFMap.hh.

Referenced by XrdXrootdMonFile::Close().

◆ fmShft

const int XrdXrootdMonFMap::fmShft = 9
static

Definition at line 48 of file XrdXrootdMonFMap.hh.

Referenced by XrdXrootdMonFile::Close(), and XrdXrootdMonFile::Open().

◆ fmSize

const int XrdXrootdMonFMap::fmSize = 512
static

Definition at line 45 of file XrdXrootdMonFMap.hh.

Referenced by Free(), Next(), and XrdXrootdMonFile::Open().

◆ free

cvPtr XrdXrootdMonFMap::free

Definition at line 42 of file XrdXrootdMonFMap.hh.

Referenced by XrdXrootdMonFMap(), Free(), and Insert().

◆ mapNum

const int XrdXrootdMonFMap::mapNum = 128
static

Definition at line 44 of file XrdXrootdMonFMap.hh.

Referenced by XrdXrootdMonFile::Open().


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