XRootD
XrdMonRoll::Item Class Reference

#include <XrdMonRoll.hh>

+ Collaboration diagram for XrdMonRoll::Item:

Public Types

enum class  Schema : char {
  unk =0 ,
  begArray ,
  endArray ,
  begObject ,
  endObject
}
 

Public Member Functions

 Item (bool Lock, XrdSysMutex &valU)
 
 Item (const char *keyN, const char *valU)
 
 Item (const char *keyN, double &valU)
 
 Item (const char *keyN, float &valU)
 
 Item (const char *keyN, RAtomic_int16_t &valU)
 
 Item (const char *keyN, RAtomic_int32_t &valU)
 
 Item (const char *keyN, RAtomic_int64_t &valU)
 
 Item (const char *keyN, RAtomic_int8_t &valU)
 
 Item (const char *keyN, RAtomic_uint16_t &valU)
 
 Item (const char *keyN, RAtomic_uint32_t &valU)
 
 Item (const char *keyN, RAtomic_uint64_t &valU)
 
 Item (const char *keyN, RAtomic_uint8_t &valU)
 
 Item (const char *keyN, Schema valU)
 
 Item (const char *keyN, std::string &valU)
 
template<typename T >
 Item (const char *keyN, T &valU)
 

Friends

class XrdMonitor
 

Detailed Description

The Item class is used to define a set of variables that will be registered with this class. These variables are reported in the summary. The class is a more general implementation of setMember (see below).

Parameters
keyN- Is the name of the key and becomes the XML tag or the JSON key for the reported value. It may only be nil or the empty string within the context of an array Schema; but if specified, it is used as the XML tag for the value and is ignored for JSON. If not specified, the XML tag becomes "item". Hence, if you care about XML you should specify a meaningful key. Note that outside of an array a key is always required.
valU- the reference to the associated variable holding the value or, for Schema, a schema enum type.

Definition at line 72 of file XrdMonRoll.hh.

Member Enumeration Documentation

◆ Schema

enum XrdMonRoll::Item::Schema : char
strong

The following enum may be passed to define a substructure, as follows: enum JSON XML begArray "keyN" : [ <keyN> endArray ] </keyN> begObject "keyN" : { <keyN> endObject } </varn>

@notes 1) A variable name must always begin an array or object when one appears in object context. However, elements in a JSON array do not have keys keys so the key is only used when generating XML and is otherwise ignored. 2) When a key is specified for an endArray or endObject, it must match the key in the corresponding beg element. If not specicied, the key from the corresponding beg element is used.

Enumerator
unk 
begArray 
endArray 
begObject 
endObject 

Definition at line 95 of file XrdMonRoll.hh.

95 : char {unk=0, begArray, endArray, begObject, endObject};

Constructor & Destructor Documentation

◆ Item() [1/15]

XrdMonRoll::Item::Item ( const char *  keyN,
double &  valU 
)
inline

Definition at line 97 of file XrdMonRoll.hh.

97  : keyP(keyN), dblP(&valU),
98  Kind(Family::isBinary), Clan(Trait::isDouble) {}

◆ Item() [2/15]

XrdMonRoll::Item::Item ( const char *  keyN,
float &  valU 
)
inline

Definition at line 100 of file XrdMonRoll.hh.

100  : keyP(keyN), fltP(&valU),
101  Kind(Family::isBinary), Clan(Trait::isFloat) {}

◆ Item() [3/15]

XrdMonRoll::Item::Item ( const char *  keyN,
const char *  valU 
)
inline

Definition at line 103 of file XrdMonRoll.hh.

103  : keyP(keyN), chrP(valU),
104  Kind(Family::isText), Clan(Trait::isChar) {}

◆ Item() [4/15]

XrdMonRoll::Item::Item ( const char *  keyN,
std::string &  valU 
)
inline

Definition at line 106 of file XrdMonRoll.hh.

106  : keyP(keyN), strP(&valU),
107  Kind(Family::isText), Clan(Trait::isString) {}

◆ Item() [5/15]

XrdMonRoll::Item::Item ( const char *  keyN,
Schema  valU 
)
inline

Definition at line 109 of file XrdMonRoll.hh.

109  : keyP(keyN), Plan(valU),
110  Kind(Family::isSchema) {}

◆ Item() [6/15]

XrdMonRoll::Item::Item ( bool  Lock,
XrdSysMutex valU 
)
inline

Definition at line 112 of file XrdMonRoll.hh.

112  : keyP(0), mtxP(&valU),
113  Kind(Family::isMutex), doLK(Lock) {}

◆ Item() [7/15]

XrdMonRoll::Item::Item ( const char *  keyN,
RAtomic_int8_t valU 
)
inline

Definition at line 115 of file XrdMonRoll.hh.

115  : keyP(keyN), rbtV(&valU),
116  Kind(Family::isBinary), Clan(Trait::isBtomic) {}

◆ Item() [8/15]

XrdMonRoll::Item::Item ( const char *  keyN,
RAtomic_uint8_t valU 
)
inline

Definition at line 118 of file XrdMonRoll.hh.

118  : keyP(keyN), rbtV(&valU),
119  Kind(Family::isBinary), Clan(Trait::isBtomic) {}

◆ Item() [9/15]

XrdMonRoll::Item::Item ( const char *  keyN,
RAtomic_int16_t valU 
)
inline

Definition at line 121 of file XrdMonRoll.hh.

121  : keyP(keyN), rbtV(&valU),
122  Kind(Family::isBinary), Clan(Trait::isBtomic) {}

◆ Item() [10/15]

XrdMonRoll::Item::Item ( const char *  keyN,
RAtomic_uint16_t valU 
)
inline

Definition at line 124 of file XrdMonRoll.hh.

124  : keyP(keyN), rbtV(&valU),
125  Kind(Family::isBinary), Clan(Trait::isBtomic) {}

◆ Item() [11/15]

XrdMonRoll::Item::Item ( const char *  keyN,
RAtomic_int32_t valU 
)
inline

Definition at line 127 of file XrdMonRoll.hh.

127  : keyP(keyN), rbtV(&valU),
128  Kind(Family::isBinary), Clan(Trait::isBtomic) {}

◆ Item() [12/15]

XrdMonRoll::Item::Item ( const char *  keyN,
RAtomic_uint32_t valU 
)
inline

Definition at line 130 of file XrdMonRoll.hh.

130  : keyP(keyN), rbtV(&valU),
131  Kind(Family::isBinary), Clan(Trait::isBtomic) {}

◆ Item() [13/15]

XrdMonRoll::Item::Item ( const char *  keyN,
RAtomic_int64_t valU 
)
inline

Definition at line 133 of file XrdMonRoll.hh.

133  : keyP(keyN), rbtV(&valU),
134  Kind(Family::isBinary), Clan(Trait::isBtomic) {}

◆ Item() [14/15]

XrdMonRoll::Item::Item ( const char *  keyN,
RAtomic_uint64_t valU 
)
inline

Definition at line 136 of file XrdMonRoll.hh.

136  : keyP(keyN), rbtV(&valU),
137  Kind(Family::isBinary), Clan(Trait::isBtomic) {}

◆ Item() [15/15]

template<typename T >
XrdMonRoll::Item::Item ( const char *  keyN,
T &  valU 
)
inline

Definition at line 140 of file XrdMonRoll.hh.

140  : keyP(keyN), ratV(&valU),
141  Kind(Family::isBinary), Clan(Trait::isAtomic) {}

Friends And Related Function Documentation

◆ XrdMonitor

XrdMonitor
friend

Definition at line 75 of file XrdMonRoll.hh.


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