module Pio::OpenFlow::ErrorMessage
Error message parser
Public Instance Methods
error_classes()
click to toggle source
rubocop:enable AbcSize
# File lib/pio/open_flow/error_message.rb, line 27 def error_classes OpenFlow::Message.descendants.select do |each| each.parents.include? parent.const_get(:Error) end end
read(binary)
click to toggle source
rubocop:disable AbcSize
# File lib/pio/open_flow/error_message.rb, line 13 def read(binary) body = OpenFlow::Header.read(binary).body error = const_get(:BodyParser).read(body) klass = error_classes.find do |each| each.name.split('::').last.underscore == error.error_type.to_s end unless klass raise 'Unknown error message '\ "(type=#{error.error_type}, code=#{error.error_code})" end klass.read binary end