Jump To …

RandomAccessLoggable.coffee

fs = require 'fs'
Loggable = (require './Loggable.coffee').Loggable

class RandomAccessLoggable extends Loggable

@private

  address: undefined

@private

  type: undefined

@private

  headerLength: undefined

@private

  length_: undefined

@private

  data: undefined

@private

  structureId: undefined

Constructor.

@param address @param type @param length @param data @param dataLength @param structureId

  @create$Addr64$int$int$RandomAccessByteIterable$int$int: (address, type, length, data, dataLength, structureId, o) ->
    if !o? then o = new RandomAccessLoggable
    o.address = address
    o.type = type
    o.headerLength = length - dataLength
    o.length_ = length
    o.data = data
    o.structureId = structureId
    return o

Constructor.

@param prototype another random access loggable that this one will be copied from.

  @create$RandomAccessLoggable: (prototype) ->
    o = new RandomAccessLoggable
    o.address = prototype.address
    o.type = prototype.type
    o.headerLength = prototype.headerLength
    o.length_ = prototype.length_
    o.data = prototype.getData().clone(0)
    o.structureId = prototype.structureId
    return o

  getAddress: () ->
    return @address

  getType: () ->
    return @type

  length: () ->
    return @length_

  getData: () ->
    return @data

  getDataLength: () ->
    return @length_ - @headerLength

  getStructureId: () ->
    return @structureId

exports.RandomAccessLoggable = RandomAccessLoggable