XRootD
Loading...
Searching...
No Matches
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 class 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) {}

◆ XrdMonitor

XrdMonitor
friend

Definition at line 75 of file XrdMonRoll.hh.

References XrdMonitor.

Referenced by XrdMonitor.


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