class SNMP::ObjectId
Public Class Methods
Source
# File lib/snmp/varbind.rb, line 161 def self.decode(value_data, mib=nil) ObjectId.new(decode_object_id_value(value_data), mib) end
Source
# File lib/snmp/varbind.rb, line 173 def initialize(id=[], mib=nil) if id.nil? raise ArgumentError elsif id.respond_to? :to_str super(make_integers(id.to_str.split("."))) else super(make_integers(id.to_ary)) end @mib = mib rescue ArgumentError raise ArgumentError, "#{id.inspect}:#{id.class} not a valid object ID" end
Create an object id. The input is expected to be either a string in the format “n.n.n.n.n.n” or an array of integers.
Calls superclass method
Public Instance Methods
Source
# File lib/snmp/varbind.rb, line 245 def index(parent_tree) parent_tree = make_object_id(parent_tree) if not subtree_of?(parent_tree) raise ArgumentError, "#{self.to_s} not a subtree of #{parent_tree.to_s}" elsif self.length == parent_tree.length raise ArgumentError, "OIDs are the same" else ObjectId.new(self[parent_tree.length..-1]) end end
Returns an index based on the difference between this ObjectId
and the provided parent ObjectId
.
For example, ObjectId.new
(“1.3.6.1.5”).index(“1.3.6.1”) returns an ObjectId
of “5”.
Source
# File lib/snmp/varbind.rb, line 226 def subtree_of?(parent_tree) parent_tree = make_object_id(parent_tree) if parent_tree.length > self.length false else parent_tree.each_index do |i| return false if parent_tree[i] != self[i] end true end end
Returns true if this ObjectId
is a subtree of the provided parent tree ObjectId
. For example, “1.3.6.1.5” is a subtree of “1.3.6.1”.
Source
# File lib/snmp/varbind.rb, line 202 def to_s if @mib @mib.name(self) else to_str end end
Source
# File lib/snmp/varbind.rb, line 194 def to_varbind VarBind.new(self, Null) end
Source
# File lib/snmp/varbind.rb, line 189 def with_mib(mib) @mib = mib self end
Adds MIB
information to this object_id for use with to_s.
Private Instance Methods
Source
# File lib/snmp/varbind.rb, line 258 def make_integers(list) list.collect{|n| Integer(n)} end
Source
# File lib/snmp/varbind.rb, line 262 def make_object_id(oid) oid.kind_of?(ObjectId) ? oid : ObjectId.new(oid) end