Module: Rumai::IXP::Struct::Field::CounteeField

Methods for a field whose length is counted by another field.

Public Visibility

Public Instance Method Summary

#load_9p(aStream, aFieldValues)
#to_9p(aFieldValues)

Public Instance Method Details

load_9p

public load_9p(aStream, aFieldValues)
[View source]


201
202
203
204
205
206
207
208
209
210
# File 'lib/rumai/ixp/message.rb', line 201

def load_9p aStream, aFieldValues
  count = aFieldValues[@counter.name].to_i

  aFieldValues[@name] =
    if @format
      Array.new(count) { value_from_9p aStream }
    else
      aStream.read(count) # raw byte sequence
    end
end

to_9p

public to_9p(aFieldValues)
[View source]


191
192
193
194
195
196
197
198
199
# File 'lib/rumai/ixp/message.rb', line 191

def to_9p aFieldValues
  value = aFieldValues[@name]

  if @format
    value.map {|v| value_to_9p v}.join
  else
    value.to_s # raw byte sequence
  end
end