Class: Net::SNMP::OID
- Inherits:
-
Object
- Object
- Net::SNMP::OID
- Defined in:
- lib/net/snmp/oid.rb
Instance Attribute Summary collapse
-
#length_pointer ⇒ Object
readonly
Returns the value of attribute length_pointer.
-
#oid ⇒ Object
readonly
Returns the value of attribute oid.
-
#pointer ⇒ Object
readonly
Returns the value of attribute pointer.
Instance Method Summary collapse
- #<=>(o) ⇒ Object
- #_packed ⇒ Object
- #from_pointer(ptr, len) ⇒ Object
- #index ⇒ Object
-
#initialize(oid) ⇒ OID
constructor
A new instance of OID.
- #label ⇒ Object
- #length ⇒ Object
- #name ⇒ Object
- #node ⇒ Object
- #parent_of?(o) ⇒ Boolean
- #size ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(oid) ⇒ OID
Returns a new instance of OID.
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/net/snmp/oid.rb', line 9 def initialize(oid) @oid = oid @pointer = FFI::MemoryPointer.new(:ulong, Constants::MAX_OID_LEN) @length_pointer = FFI::MemoryPointer.new(:size_t) @length_pointer.write_int(Constants::MAX_OID_LEN) if @oid =~ /^[\d\.]*$/ if Wrapper.read_objid(@oid, @pointer, @length_pointer) == 0 Wrapper.snmp_perror(@oid) end else if Wrapper.get_node(@oid, @pointer, @length_pointer) == 0 Wrapper.snmp_perror(@oid) end @oid = to_s end end |
Instance Attribute Details
#length_pointer ⇒ Object (readonly)
Returns the value of attribute length_pointer.
4 5 6 |
# File 'lib/net/snmp/oid.rb', line 4 def length_pointer @length_pointer end |
#oid ⇒ Object (readonly)
Returns the value of attribute oid.
4 5 6 |
# File 'lib/net/snmp/oid.rb', line 4 def oid @oid end |
#pointer ⇒ Object (readonly)
Returns the value of attribute pointer.
4 5 6 |
# File 'lib/net/snmp/oid.rb', line 4 def pointer @pointer end |
Instance Method Details
#<=>(o) ⇒ Object
58 59 60 61 62 |
# File 'lib/net/snmp/oid.rb', line 58 def <=>(o) a = self._packed b = o._packed a <=> b end |
#_packed ⇒ Object
64 65 66 67 68 69 |
# File 'lib/net/snmp/oid.rb', line 64 def _packed i = self.to_s.dip i.sub!(/^\./,'') i.gsub!(/ /, '.0') i.replace(i.split('.').map(&:to_i).pack('N*')) end |
#from_pointer(ptr, len) ⇒ Object
6 7 8 |
# File 'lib/net/snmp/oid.rb', line 6 def from_pointer(ptr, len) end |
#index ⇒ Object
50 51 52 |
# File 'lib/net/snmp/oid.rb', line 50 def index oid.sub(node.oid.name + ".","") end |
#label ⇒ Object
54 55 56 |
# File 'lib/net/snmp/oid.rb', line 54 def label node.label + "." + index end |
#length ⇒ Object
31 32 33 |
# File 'lib/net/snmp/oid.rb', line 31 def length @length_pointer.read_int end |
#name ⇒ Object
38 39 40 |
# File 'lib/net/snmp/oid.rb', line 38 def name @oid end |
#parent_of?(o) ⇒ Boolean
71 72 73 |
# File 'lib/net/snmp/oid.rb', line 71 def parent_of?(o) o.to_s =~ /^#{self.to_s}\./ end |
#size ⇒ Object
27 28 29 |
# File 'lib/net/snmp/oid.rb', line 27 def size @length_pointer.read_int * 8 # XXX 8 = sizeof(oid) on my system. Not sure if it's different on others end |
#to_s ⇒ Object
42 43 44 |
# File 'lib/net/snmp/oid.rb', line 42 def to_s @pointer.read_array_of_long(length_pointer.read_int).join(".") end |