class PacketGen::Header::TCP::Options
Container for TCP
options in {TCP TCP
header}. @author Sylvain Daubert
Public Class Methods
option_classes()
click to toggle source
Get {Option} subclasses @return [Array<Class>]
# File lib/packetgen/header/tcp/options.rb, line 20 def self.option_classes return @klasses if defined? @klasses @klasses = [] Option.constants.each do |cst| next unless cst.to_s.end_with? '_KIND' optname = cst.to_s.sub(/_KIND/, '') @klasses[Option.const_get(cst)] = TCP.const_get(optname) end @klasses end
Private Instance Methods
real_type(opt)
click to toggle source
# File lib/packetgen/header/tcp/options.rb, line 49 def real_type(opt) klasses = self.class.option_classes klasses[opt.kind].nil? ? Option : klasses[opt.kind] end
record_from_hash(hsh)
click to toggle source
# File lib/packetgen/header/tcp/options.rb, line 35 def record_from_hash(hsh) if hsh.key? :opt klassname = hsh.delete(:opt) raise ArgumentError, 'opt should be a TCP::Option subclass' unless TCP.const_defined?(klassname) klass = TCP.const_get(klassname) raise ArgumentError, 'opt should be a TCP::Option subclass' unless klass < Option klass.new(hsh) else hsh end end