]>
git.ipfire.org Git - thirdparty/squid.git/blob - src/snmp/Var.h
2 * Copyright (C) 1996-2014 The Squid Software Foundation and contributors
4 * Squid software is distributed under GPLv2+ license and includes
5 * contributions from numerous individuals and organizations.
6 * Please see the COPYING and CONTRIBUTORS files for details.
9 /* DEBUG: section 49 SNMP Interface */
11 #ifndef SQUID_SNMPX_VAR_H
12 #define SQUID_SNMPX_VAR_H
14 #include "ipc/forward.h"
16 #include "snmp_vars.h"
21 /// variable_list wrapper implement the feature to change
22 /// the name/value of variable and to pack/unpack message
23 class Var
: public variable_list
28 Var
& operator = (const Var
& var
);
31 Var
& operator += (const Var
& var
);
32 Var
& operator /= (int num
);
33 bool operator < (const Var
& var
) const;
34 bool operator > (const Var
& var
) const;
36 void pack(Ipc::TypedMsgHdr
& msg
) const; ///< prepare for sendmsg()
37 void unpack(const Ipc::TypedMsgHdr
& msg
); ///< restore struct from the message
39 Range
<const oid
*> getName() const; ///< returns variable name
40 void setName(const Range
<const oid
*>& aName
); ///< set new variable name
41 void clearName(); ///< clear variable name
45 int asInt() const; ///< returns variable value as integer
46 unsigned int asGauge() const; ///< returns variable value as unsigned int
47 int asCounter() const; ///< returns variable value as Counter32
48 long long int asCounter64() const; ///< returns variable value as Counter64
49 unsigned int asTimeTicks() const; ///< returns variable value as time ticks
50 Range
<const oid
*> asObject() const; ///< returns variable value as object oid
51 Range
<const u_char
*> asString() const; ///< returns variable value as chars string
53 void setInt(int value
); ///< assign int value to variable
54 void setCounter(int value
); ///< assign Counter32 value to variable
55 void setGauge(unsigned int value
); ///< assign unsigned int value to variable
56 void setString(const Range
<const u_char
*>& string
); ///< assign string to variable
57 void setObject(const Range
<const oid
*>& object
); ///< assign object oid to variable
58 void setTimeTicks(unsigned int ticks
); ///<assign unsigned int (time) value to variable
59 void setCounter64(long long int counter
); ///< assign Counter64 value to variable
61 void copyValue(const Var
& var
); ///< copy variable from another one
62 void clearValue(); ///< clear .val member
63 void clear(); ///< clear all internal members
66 void init(); ///< initialize members
67 void assign(const Var
& var
); ///< perform full assignment
68 void setValue(const void* value
, int length
, int aType
); ///< set new variable value
73 #endif /* SQUID_SNMPX_VAR_H */