47 lines
1.3 KiB
Go
47 lines
1.3 KiB
Go
// Copyright The OpenTelemetry Authors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package internal // import "go.opentelemetry.io/collector/pdata/internal"
|
|
|
|
import (
|
|
otlpcollectortrace "go.opentelemetry.io/collector/pdata/internal/data/protogen/collector/trace/v1"
|
|
otlptrace "go.opentelemetry.io/collector/pdata/internal/data/protogen/trace/v1"
|
|
)
|
|
|
|
type Traces struct {
|
|
orig *otlpcollectortrace.ExportTraceServiceRequest
|
|
state *State
|
|
}
|
|
|
|
func GetOrigTraces(ms Traces) *otlpcollectortrace.ExportTraceServiceRequest {
|
|
return ms.orig
|
|
}
|
|
|
|
func GetTracesState(ms Traces) *State {
|
|
return ms.state
|
|
}
|
|
|
|
func SetTracesState(ms Traces, state State) {
|
|
*ms.state = state
|
|
}
|
|
|
|
func NewTraces(orig *otlpcollectortrace.ExportTraceServiceRequest, state *State) Traces {
|
|
return Traces{orig: orig, state: state}
|
|
}
|
|
|
|
// TracesToProto internal helper to convert Traces to protobuf representation.
|
|
func TracesToProto(l Traces) otlptrace.TracesData {
|
|
return otlptrace.TracesData{
|
|
ResourceSpans: l.orig.ResourceSpans,
|
|
}
|
|
}
|
|
|
|
// TracesFromProto internal helper to convert protobuf representation to Traces.
|
|
// This function set exclusive state assuming that it's called only once per Traces.
|
|
func TracesFromProto(orig otlptrace.TracesData) Traces {
|
|
state := StateMutable
|
|
return NewTraces(&otlpcollectortrace.ExportTraceServiceRequest{
|
|
ResourceSpans: orig.ResourceSpans,
|
|
}, &state)
|
|
}
|