Class: SNMP::ObjectId
- Inherits:
-
Array
- Object
- Array
- SNMP::ObjectId
- Includes:
- Comparable
- 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.
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.
152 153 154 155 156 157 158 159 160 161 162 163 |
# File 'lib/snmp/varbind.rb', line 152 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
.decode(value_data, mib = nil) ⇒ Object
140 141 142 |
# File 'lib/snmp/varbind.rb', line 140 def self.decode(value_data, mib=nil) ObjectId.new(decode_object_id_value(value_data), mib) end |
Instance Method Details
#asn1_type ⇒ Object
144 145 146 |
# File 'lib/snmp/varbind.rb', line 144 def asn1_type "OBJECT IDENTIFIER" end |
#encode ⇒ Object
197 198 199 |
# File 'lib/snmp/varbind.rb', line 197 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”.
224 225 226 227 228 229 230 231 232 233 |
# File 'lib/snmp/varbind.rb', line 224 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
193 194 195 |
# File 'lib/snmp/varbind.rb', line 193 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”.
205 206 207 208 209 210 211 212 213 214 215 |
# File 'lib/snmp/varbind.rb', line 205 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
177 178 179 |
# File 'lib/snmp/varbind.rb', line 177 def to_oid self end |
#to_s ⇒ Object
181 182 183 184 185 186 187 |
# File 'lib/snmp/varbind.rb', line 181 def to_s if @mib @mib.name(self) else to_str end end |
#to_str ⇒ Object
189 190 191 |
# File 'lib/snmp/varbind.rb', line 189 def to_str self.join('.') end |
#to_varbind ⇒ Object
173 174 175 |
# File 'lib/snmp/varbind.rb', line 173 def to_varbind VarBind.new(self, Null) end |
#with_mib(mib) ⇒ Object
Adds MIB information to this object_id for use with to_s.
168 169 170 171 |
# File 'lib/snmp/varbind.rb', line 168 def with_mib(mib) @mib = mib self end |