SNMP 2.1.0
Loading...
Searching...
No Matches
BER.cpp
Go to the documentation of this file.
1#include "BER.h"
2
7namespace SNMP {
8
15BER* BER::create(const Type &type) {
16 switch (type) {
17 case Type::Boolean:
18 return new BooleanBER(false);
19 case Type::Integer:
20 return new IntegerBER(0);
22 return new OctetStringBER(nullptr, 0);
23 case Type::Null:
27 return new NullBER(type);
29 return new ObjectIdentifierBER(nullptr);
30 case Type::IPAddress:
31 return new IPAddressBER(IPAddress());
32 case Type::Counter32:
33 return new Counter32BER(0);
34 case Type::Gauge32:
35 return new Gauge32BER(0);
36 case Type::TimeTicks:
37 return new TimeTicksBER(0);
38 case Type::Opaque:
39 return new OpaqueBER(nullptr);
40 case Type::Counter64:
41 return new Counter64BER(0);
42 case Type::Float:
43 return new FloatBER(0);
45 return new OpaqueFloatBER(0);
46 case Type::Sequence:
51 case Type::Trap:
55 case Type::Report:
56 return new SequenceBER(type);
57 }
58 return nullptr;
59}
60
72OctetStringBER::OctetStringBER(const char *value, const uint32_t length) :
74 setValue(value, length);
75}
76
83 BER(Type::Opaque) {
84 _ber = ber;
85 if (ber) {
86 _length = _ber->getSize();
87 }
88}
89
90} // namespace SNMP
BER * create(const Type &type)
Creates a BER of given type.
Definition BER.cpp:15
Length _length
Definition BER.h:1029
BER(const unsigned int type)
Creates a BER object.
Definition BER.h:800
BER object to handle boolean.
Definition BER.h:1057
BER object to handle 32-bit counter.
Definition BER.h:2201
BER object to handle 64-bit counter.
Definition BER.h:2228
BER object to handle float.
Definition BER.h:2474
BER object to handle 32-bit gauge.
Definition BER.h:2255
BER object to handle IP address.
Definition BER.h:2054
BER object to handle integer.
Definition BER.h:1179
BER object to handle null.
Definition BER.h:1461
BER object to handle OID.
Definition BER.h:1488
BER object to handle octet string.
Definition BER.h:1289
OctetStringBER(const char *value)
Creates an OctetStringBER object.
Definition BER.h:1301
void setValue(const char *value, const unsigned int length)
Sets the OctetStringBER value.
Definition BER.h:1404
BER object to handle embedded BER object.
Definition BER.h:2313
OpaqueBER(BER *ber)
Creates an OpaqueBER.
Definition BER.cpp:82
BER * _ber
Definition BER.h:2449
BER object to handle float.
Definition BER.h:2630
BER object to handle sequence of BER objects.
Definition BER.h:1953
BER object to handle time.
Definition BER.h:2284
Type of a BER object.
Definition BER.h:282
@ Trap
Definition BER.h:313
@ NoSuchObject
Definition BER.h:305
@ OpaqueFloat
Definition BER.h:321
@ GetNextRequest
Definition BER.h:310
@ Gauge32
Definition BER.h:299
@ EndOfMIBView
Definition BER.h:307
@ Boolean
Definition BER.h:289
@ Sequence
Definition BER.h:295
@ GetResponse
Definition BER.h:311
@ NoSuchInstance
Definition BER.h:306
@ TimeTicks
Definition BER.h:300
@ Integer
Definition BER.h:290
@ InformRequest
Definition BER.h:316
@ SNMPv2Trap
Definition BER.h:317
@ Counter64
Definition BER.h:302
@ ObjectIdentifier
Definition BER.h:294
@ Counter32
Definition BER.h:298
@ GetRequest
Definition BER.h:309
@ GetBulkRequest
Definition BER.h:315
@ Float
Definition BER.h:303
@ Report
Definition BER.h:319
@ SetRequest
Definition BER.h:312
@ IPAddress
Definition BER.h:297
@ Null
Definition BER.h:293
@ Opaque
Definition BER.h:301
@ OctetString
Definition BER.h:292
SNMP library namespace.