class OpenCensus::Trace::Formatters::Binary

This formatter serializes and deserializes span context according to the OpenCensus' BinaryEncoding specification. See [documentation](github.com/census-instrumentation/opencensus-specs/blob/master/encodings/BinaryEncoding.md).

Constants

BINARY_FORMAT

Internal format used to (un)pack binary data

@private

Public Instance Methods

deserialize(binary) click to toggle source

Deserialize a trace context header into a TraceContext object.

@param [String] binary @return [TraceContextData, nil]

# File lib/opencensus/trace/formatters/binary.rb, line 38
def deserialize binary
  data = binary.unpack(BINARY_FORMAT)
  if data[0].zero? && data[1].zero? && data[3] == 1 && data[5] == 2
    TraceContextData.new data[2], data[4], data[6]
  else
    nil
  end
end
serialize(trace_context) click to toggle source

Serialize a TraceContextData object.

@param [TraceContextData] trace_context @return [String]

# File lib/opencensus/trace/formatters/binary.rb, line 53
def serialize trace_context
  [
    0, # version
    0, # field 0
    trace_context.trace_id,
    1, # field 1
    trace_context.span_id,
    2, # field 2
    trace_context.trace_options
  ].pack(BINARY_FORMAT)
end