Sha256: ff30541fac5fd99291b9c8c7b341e92db07ae1a1dc6533f4870af810432763c1

Contents?: true

Size: 997 Bytes

Versions: 2

Compression:

Stored size: 997 Bytes

Contents

require 'appdash/span/id'

module Appdash
  class Span

    # @attr_reader :root_id returns the root span ID
    attr_reader :root_id

    # @attr_reader :id returns the current span ID
    attr_reader :id

    def initialize(client)
      @client  = client
      @packets = []
      @root_id = Appdash::Span::ID.new
      @id      = root_id
    end

    # Appends a new Appdash::Event::SpanName event
    def name(val)
      event Appdash::Event::SpanName.new(val)
    end

    # Appends a new Appdash::Event::Message event
    def message(msg)
      event Appdash::Event::Message.new(msg)
    end

    # Appends a new Appdash::Event::Log event
    def log(msg)
      event Appdash::Event::Log.new(msg)
    end

    # Appends a generic Appdash::Event event
    def event(evt)
      @packets.push Appdash::CollectPacket.build(evt, @id)
      @id = @id.child
    end

    def flush
      count = @packets.size
      @client.send :write, @packets
      @packets.clear
      count
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
appdash-0.6.3 lib/appdash/span.rb
appdash-0.6.2 lib/appdash/span.rb