]> git.ipfire.org Git - thirdparty/squid.git/blob - src/snmp/Var.h
Merged from trunk
[thirdparty/squid.git] / src / snmp / Var.h
1 /*
2 * $Id$
3 *
4 * DEBUG: section 49 SNMP Interface
5 *
6 */
7
8 #ifndef SQUID_SNMPX_VAR_H
9 #define SQUID_SNMPX_VAR_H
10
11 #include "ipc/forward.h"
12 #include "Range.h"
13 #include "snmp_vars.h"
14
15 namespace Snmp
16 {
17
18 /// variable_list wrapper implement the feature to change
19 /// the name/value of variable and to pack/unpack message
20 class Var: public variable_list
21 {
22 public:
23 Var();
24 Var(const Var& var);
25 Var& operator = (const Var& var);
26 ~Var();
27
28 Var& operator += (const Var& var);
29 Var& operator /= (int num);
30 bool operator < (const Var& var) const;
31 bool operator > (const Var& var) const;
32
33 void pack(Ipc::TypedMsgHdr& msg) const; ///< prepare for sendmsg()
34 void unpack(const Ipc::TypedMsgHdr& msg); ///< restore struct from the message
35
36 Range<const oid*> getName() const; ///< returns variable name
37 void setName(const Range<const oid*>& aName); ///< set new variable name
38 void clearName(); ///< clear variable name
39
40 bool isNull() const;
41
42 int asInt() const; ///< returns variable value as integer
43 unsigned int asGauge() const; ///< returns variable value as unsigned int
44 int asCounter() const; ///< returns variable value as Counter32
45 long long int asCounter64() const; ///< returns variable value as Counter64
46 unsigned int asTimeTicks() const; ///< returns variable value as time ticks
47 Range<const oid*> asObject() const; ///< returns variable value as object oid
48 Range<const u_char*> asString() const; ///< returns variable value as chars string
49
50 void setInt(int value); ///< assign int value to variable
51 void setCounter(int value); ///< assign Counter32 value to variable
52 void setGauge(unsigned int value); ///< assign unsigned int value to variable
53 void setString(const Range<const u_char*>& string); ///< assign string to variable
54 void setObject(const Range<const oid*>& object); ///< assign object oid to variable
55 void setTimeTicks(unsigned int ticks); ///<assign unsigned int (time) value to variable
56 void setCounter64(long long int counter); ///< assign Counter64 value to variable
57
58 void copyValue(const Var& var); ///< copy variable from another one
59 void clearValue(); ///< clear .val member
60 void clear(); ///< clear all internal members
61
62 private:
63 void init(); ///< initialize members
64 void assign(const Var& var); ///< perform full assignment
65 void setValue(const void* value, int length, int aType); ///< set new variable value
66 };
67
68 } // namespace Snmp
69
70 #endif /* SQUID_SNMPX_VAR_H */