Class: OpenCensus::Trace::Formatters::Binary
- Inherits:
-
Object
- Object
- OpenCensus::Trace::Formatters::Binary
- Defined in:
- lib/opencensus/trace/formatters/binary.rb
Overview
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).
Constant Summary collapse
- BINARY_FORMAT =
Internal format used to (un)pack binary data
"CCH32CH16CC".freeze
Instance Method Summary collapse
-
#deserialize(binary) ⇒ TraceContextData?
Deserialize a trace context header into a TraceContext object.
-
#serialize(trace_context) ⇒ String
Serialize a TraceContextData object.
Instance Method Details
#deserialize(binary) ⇒ TraceContextData?
Deserialize a trace context header into a TraceContext object.
37 38 39 40 41 42 43 44 |
# File 'lib/opencensus/trace/formatters/binary.rb', line 37 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) ⇒ String
Serialize a TraceContextData object.
52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/opencensus/trace/formatters/binary.rb', line 52 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. ].pack(BINARY_FORMAT) end |