XRootD
XrdXrootdMonFMap Class Reference

#include <XrdXrootdMonFMap.hh>

+ Collaboration diagram for XrdXrootdMonFMap:

Classes

struct  cvPtr
 
union  cvPtr.__unnamed180__
 

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 __unnamed__

◆ XrdXrootdMonFMap::cvPtr.__unnamed180__

union XrdXrootdMonFMap::cvPtr.__unnamed180__

Definition at line 39 of file XrdXrootdMonFMap.hh.

+ Collaboration diagram for XrdXrootdMonFMap::cvPtr.__unnamed180__:
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: