Module: OSPFv2::Tlv

Included in:
Link_Tlv, SubTlv, TrafficEngineering
Defined in:
lib/lsa/tlv/tlv.rb,
lib/lsa/tlv/tlv_factory.rb

Defined Under Namespace

Modules: Common

Class Method Summary collapse

Class Method Details

.factory(arg = {}) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/lsa/tlv/tlv_factory.rb', line 15

def self.factory(arg={})
  type=0
  case arg
  when Hash
    return nil unless arg.has_key?(:tlv_type)
    type = arg[:tlv_type]
  when String
    type = arg.unpack('n')[0]
    return nil unless type
  else
    raise
  end
  case type
  when 1 ; OSPFv2::RouterAddress_Tlv.new(arg.dup)
  when 2 ; OSPFv2::Link_Tlv.new(arg.dup)
  else
    raise
  end
end