Class: PacketGen::Header::Dot11::SubMngt Abstract
- Inherits:
-
Base
- Object
- Types::Fields
- Base
- PacketGen::Header::Dot11::SubMngt
- Defined in:
- lib/packetgen/header/dot11/sub_mngt.rb
Overview
Base class for all subtype management frames
Subclasses of this class are used to specialize Management. A SubMngt class set subtype field in Dot11 header and may add some fields.
All SubMngt subclasses have ability to have Element. These elements may be accessed through #elements.
Instance Attribute Summary collapse
Instance Method Summary collapse
-
#add_element(type:, value:) ⇒ self
Add an Element to header.
-
#initialize(options = {}) ⇒ SubMngt
constructor
A new instance of SubMngt.
- #inspect ⇒ String
-
#read(str) ⇒ SubMngt
Populate object from binary string.
- #to_s ⇒ String
Methods inherited from Base
bind, calculate_and_set_length, #header_id, inherited, #ip_header, known_headers, #ll_header
Methods included from PacketGen::Headerable
#added_to_packet, included, #method_name, #packet, #packet=, #parse?, #protocol_name
Methods inherited from Types::Fields
#[], #[]=, #bits_on, define_bit_fields_on, define_field, define_field_after, define_field_before, #fields, fields, inherited, #offset_of, #optional?, #optional_fields, #present?, remove_bit_fields_on, remove_field, #sz, #to_h, update_field
Constructor Details
#initialize(options = {}) ⇒ SubMngt
Returns a new instance of SubMngt.
26 27 28 29 |
# File 'lib/packetgen/header/dot11/sub_mngt.rb', line 26 def initialize(={}) super @elements = [] end |
Instance Attribute Details
#elements ⇒ Array<Element>
22 23 24 |
# File 'lib/packetgen/header/dot11/sub_mngt.rb', line 22 def elements @elements end |
Instance Method Details
#add_element(type:, value:) ⇒ self
Add an Element to header
60 61 62 63 64 |
# File 'lib/packetgen/header/dot11/sub_mngt.rb', line 60 def add_element(type:, value:) element = Element.new(type: type, value: value) @elements << element self end |
#inspect ⇒ String
46 47 48 49 50 51 52 53 |
# File 'lib/packetgen/header/dot11/sub_mngt.rb', line 46 def inspect str = super str << Inspect.dashed_line('Dot11 Elements', 2) @elements.each do |el| str << Inspect.shift_level(2) << el.to_human << "\n" end str end |
#read(str) ⇒ SubMngt
Populate object from binary string
34 35 36 37 38 |
# File 'lib/packetgen/header/dot11/sub_mngt.rb', line 34 def read(str) super read_elements str[sz, str.size] || '' self end |
#to_s ⇒ String
41 42 43 |
# File 'lib/packetgen/header/dot11/sub_mngt.rb', line 41 def to_s super + @elements.map(&:to_s).join end |