summaryrefslogtreecommitdiff
path: root/grpc/src/cpp/ext/filters/census/context.cc
diff options
context:
space:
mode:
Diffstat (limited to 'grpc/src/cpp/ext/filters/census/context.cc')
-rw-r--r--grpc/src/cpp/ext/filters/census/context.cc31
1 files changed, 16 insertions, 15 deletions
diff --git a/grpc/src/cpp/ext/filters/census/context.cc b/grpc/src/cpp/ext/filters/census/context.cc
index 2deeedfe..0650bd1b 100644
--- a/grpc/src/cpp/ext/filters/census/context.cc
+++ b/grpc/src/cpp/ext/filters/census/context.cc
@@ -20,6 +20,7 @@
#include "opencensus/tags/context_util.h"
#include "opencensus/trace/context_util.h"
+#include "opencensus/trace/propagation/grpc_trace_bin.h"
#include "src/cpp/ext/filters/census/context.h"
namespace grpc {
@@ -28,20 +29,16 @@ using ::opencensus::tags::TagMap;
using ::opencensus::trace::Span;
using ::opencensus::trace::SpanContext;
-void GenerateServerContext(absl::string_view tracing, absl::string_view stats,
- absl::string_view primary_role,
- absl::string_view method, CensusContext* context) {
+void GenerateServerContext(absl::string_view tracing, absl::string_view method,
+ CensusContext* context) {
// Destruct the current CensusContext to free the Span memory before
// overwriting it below.
context->~CensusContext();
- GrpcTraceContext trace_ctxt;
- if (TraceContextEncoding::Decode(tracing, &trace_ctxt) !=
- TraceContextEncoding::kEncodeDecodeFailure) {
- SpanContext parent_ctx = trace_ctxt.ToSpanContext();
- if (parent_ctx.IsValid()) {
- new (context) CensusContext(method, parent_ctx);
- return;
- }
+ SpanContext parent_ctx =
+ opencensus::trace::propagation::FromGrpcTraceBinHeader(tracing);
+ if (parent_ctx.IsValid()) {
+ new (context) CensusContext(method, parent_ctx);
+ return;
}
new (context) CensusContext(method, TagMap{});
}
@@ -72,12 +69,16 @@ void GenerateClientContext(absl::string_view method, CensusContext* ctxt,
size_t TraceContextSerialize(const ::opencensus::trace::SpanContext& context,
char* tracing_buf, size_t tracing_buf_size) {
- GrpcTraceContext trace_ctxt(context);
- return TraceContextEncoding::Encode(trace_ctxt, tracing_buf,
- tracing_buf_size);
+ if (tracing_buf_size <
+ opencensus::trace::propagation::kGrpcTraceBinHeaderLen) {
+ return 0;
+ }
+ opencensus::trace::propagation::ToGrpcTraceBinHeader(
+ context, reinterpret_cast<uint8_t*>(tracing_buf));
+ return opencensus::trace::propagation::kGrpcTraceBinHeaderLen;
}
-size_t StatsContextSerialize(size_t max_tags_len, grpc_slice* tags) {
+size_t StatsContextSerialize(size_t /*max_tags_len*/, grpc_slice* /*tags*/) {
// TODO(unknown): Add implementation. Waiting on stats tagging to be added.
return 0;
}