trema / pio

Packet parser and generator in Ruby
27 stars 11 forks source link

Remove message Format classes #247

Closed yasuhito closed 9 years ago

yasuhito commented 9 years ago

今までメッセージの実装にFormatクラスを書いていましたが、書かなくても動くようにします。そのほか、短く書ける仕組みもいくつか取り入れます。

# 変更前
module Pio
  module OpenFlow10
    class Hello < OpenFlow::Message
      class Format < BinData::Record
        extend OpenFlow::Format

        header version: 1, message_type: 0
        string :body

        def user_data
          body
        end
      end
    end
  end
end

# 変更後
module Pio
  module OpenFlow10
    class Hello < OpenFlow::Message
      open_flow_header version: 1, message_type: 0
      string :body, length: 0

      alias_method :user_data, :body
    end
  end
end

OpenFlow1.0:

OpenFlow1.3: