Class: SNMP::ObjectId
- Inherits:
-
Array
- Object
- Array
- SNMP::ObjectId
- Extended by:
- BER::Decode
- Includes:
- Comparable, BER::Encode
- Defined in:
- lib/snmp/varbind.rb
Direct Known Subclasses
Class Method Summary collapse
Instance Method Summary collapse
- #asn1_type ⇒ Object
- #encode ⇒ Object
-
#index(parent_tree) ⇒ Object
Returns an index based on the difference between this ObjectId and the provided parent ObjectId.
-
#initialize(id = [], mib = nil) ⇒ ObjectId
constructor
Create an object id.
- #inspect ⇒ Object
-
#subtree_of?(parent_tree) ⇒ Boolean
Returns true if this ObjectId is a subtree of the provided parent tree ObjectId.
- #to_oid ⇒ Object
- #to_s ⇒ Object
- #to_str ⇒ Object
- #to_varbind ⇒ Object
-
#with_mib(mib) ⇒ Object
Adds MIB information to this object_id for use with to_s.
Methods included from BER::Decode
assert_no_remainder, build_integer, decode_integer, decode_integer_value, decode_ip_address, decode_object_id, decode_object_id_value, decode_octet_string, decode_sequence, decode_timeticks, decode_tlv, decode_uinteger_value
Methods included from BER::Encode
#encode_exception, #encode_integer, #encode_length, #encode_null, #encode_object_id, #encode_octet_string, #encode_sequence, #encode_tagged_integer, #encode_tlv, #integer_to_octets
Constructor Details
#initialize(id = [], mib = nil) ⇒ ObjectId
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.
173 174 175 176 177 178 179 180 181 182 183 184 |
# 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 |
Class Method Details
Instance Method Details
#asn1_type ⇒ Object
165 166 167 |
# File 'lib/snmp/varbind.rb', line 165 def asn1_type "OBJECT IDENTIFIER" end |
#encode ⇒ Object
218 219 220 |
# File 'lib/snmp/varbind.rb', line 218 def encode encode_object_id(self) end |
#index(parent_tree) ⇒ Object
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”.
245 246 247 248 249 250 251 252 253 254 |
# 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 |
#inspect ⇒ Object
214 215 216 |
# File 'lib/snmp/varbind.rb', line 214 def inspect "[#{to_str}]" end |
#subtree_of?(parent_tree) ⇒ Boolean
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”.
226 227 228 229 230 231 232 233 234 235 236 |
# 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 |
#to_oid ⇒ Object
198 199 200 |
# File 'lib/snmp/varbind.rb', line 198 def to_oid self end |
#to_s ⇒ Object
202 203 204 205 206 207 208 |
# File 'lib/snmp/varbind.rb', line 202 def to_s if @mib @mib.name(self) else to_str end end |
#to_str ⇒ Object
210 211 212 |
# File 'lib/snmp/varbind.rb', line 210 def to_str self.join('.') end |
#to_varbind ⇒ Object
194 195 196 |
# File 'lib/snmp/varbind.rb', line 194 def to_varbind VarBind.new(self, Null) end |
#with_mib(mib) ⇒ Object
Adds MIB information to this object_id for use with to_s.
189 190 191 192 |
# File 'lib/snmp/varbind.rb', line 189 def with_mib(mib) @mib = mib self end |