class F4R::Definition::RecordHeader

Record header

| Bit | Value       | Description           |
|-----+-------------+-----------------------|
|   7 | 0           | Normal Header         |
|   6 | 0 or 1      | Message Type:         |
|     |             | 1: Definition         |
|     |             | 2: Data               |
|   5 | 0 (default) | Message Type Specific |
|   4 | 0           | Reserved              |
| 0-3 | 0-15        | Local Message Type    |

Public Instance Methods

compressed?() click to toggle source

@return [Boolean]

# File lib/f4r.rb, line 879
def compressed?
  normal.snapshot == 1
end
for_new_definition?() click to toggle source

@return [Boolean]

# File lib/f4r.rb, line 886
def for_new_definition?
  normal.snapshot.zero? && message_type.snapshot == 1
end
read(io) click to toggle source

Serves as first place for validating data.

@param [IO] io

Calls superclass method
# File lib/f4r.rb, line 857
def read(io)
  super

  if compressed?
    Log.error "Compressed Timestamp Headers are not supported. #{inspect}"
  end

  Log.decode [self.class, __method__], to_log_s
end
to_log_s() click to toggle source

Header format for log output

@example:

record_{data}_header: N: 0 MT: 1 DDF: 0 R: 0 LMT: 6

@return [String]

# File lib/f4r.rb, line 898
def to_log_s
  {
    "#{message_type.snapshot.zero? ? 'record_data' : 'record'}_header" => [
      ('%-8s' % "N:  #{normal.snapshot}"),
      ('%-8s' % "MT: #{message_type.snapshot}"),
      ('%-8s' % "DDF:#{developer_data_flag.snapshot}"),
      ('%-8s' % "R:  #{reserved.snapshot}"),
      ('%-8s' % "LMT:#{local_message_type.snapshot}"),
    ].join(' ')
  }
end
write(io) click to toggle source

@param [io] io

Calls superclass method
# File lib/f4r.rb, line 870
def write(io)
  super

  Log.encode [self.class, __method__], to_log_s
end
write_data_header(io, record) click to toggle source

Helper method for writing data headers

@param [IO] io @param [Record] record

# File lib/f4r.rb, line 916
def write_data_header(io, record)
  data_header = self.new
  data_header.normal = 0
  data_header.message_type = 0
  data_header.local_message_type = record[:local_message_number]
  data_header.write(io)
end