Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

format #22

Merged
merged 1 commit into from
Aug 11, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
205 changes: 103 additions & 102 deletions api/include/opentelemetry/trace/propagation/http_trace_context.h
Original file line number Diff line number Diff line change
Expand Up @@ -156,20 +156,20 @@ class HttpTraceContext : public HTTPTextFormat<T>
}
}

// static void InjectTraceState(TraceState trace_state, T &carrier, Setter setter)
// {
// std::string trace_state_string = "";
// nostd::span<TraceState::Entries> entries = trace_state.Entries();
// TraceState::Entry *entry = entries.data();
// while (entry != entries.end())
// {
// if (entry != entries.begin())
// trace_state_string += ",";
// trace_state_string += std::string(entry->GetKey()) + "=" + std::string(entry->GetValue());
// entry++;
// }
// setter(carrier, kTraceState, trace_state_string);
// }
// static void InjectTraceState(TraceState trace_state, T &carrier, Setter setter)
// {
// std::string trace_state_string = "";
// nostd::span<TraceState::Entries> entries = trace_state.Entries();
// TraceState::Entry *entry = entries.data();
// while (entry != entries.end())
// {
// if (entry != entries.begin())
// trace_state_string += ",";
// trace_state_string += std::string(entry->GetKey()) + "=" + std::string(entry->GetValue());
// entry++;
// }
// setter(carrier, kTraceState, trace_state_string);
// }

static void InjectTraceParent(const SpanContext &span_context, T &carrier, Setter setter)
{
Expand Down Expand Up @@ -201,10 +201,10 @@ class HttpTraceContext : public HTTPTextFormat<T>
static void InjectImpl(Setter setter, T &carrier, const SpanContext &span_context)
{
InjectTraceParent(span_context, carrier, setter);
// if (!span_context.trace_state().empty())
// {
// InjectTraceState(span_context.trace_state(), carrier, setter);
// }
// if (!span_context.trace_state().empty())
// {
// InjectTraceState(span_context.trace_state(), carrier, setter);
// }
}

static SpanContext ExtractContextFromTraceParent(nostd::string_view trace_parent)
Expand Down Expand Up @@ -285,7 +285,7 @@ class HttpTraceContext : public HTTPTextFormat<T>
SpanId span_id_obj = GenerateSpanIdFromString(span_id);
TraceFlags trace_flags_obj = GenerateTraceFlagsFromString(trace_flags);
return SpanContext(trace_id_obj, span_id_obj, trace_flags_obj, true);
// return SpanContext(trace_id_obj, span_id_obj, trace_flags_obj, TraceState(), true);
// return SpanContext(trace_id_obj, span_id_obj, trace_flags_obj, TraceState(), true);
}
else
{
Expand All @@ -294,76 +294,76 @@ class HttpTraceContext : public HTTPTextFormat<T>
}
}

// static TraceState ExtractTraceState(nostd::string_view &trace_state_header)
// {
// TraceState trace_state = TraceState();
// int start_pos = -1;
// int end_pos = -1;
// int ctr_pos = -1;
// int element_num = 0;
// nostd::string_view key;
// nostd::string_view val;
// for (int i = 0; i < int(trace_state_header.length()); i++)
// {
// if (trace_state_header[i] == '\t')
// continue;
// else if (trace_state_header[i] == ',')
// {
// if (start_pos == -1 && end_pos == -1)
// continue;
// element_num++;
// if (ctr_pos != -1)
// {
// key = trace_state_header.substr(start_pos, ctr_pos - start_pos + 1);
// val = trace_state_header.substr(ctr_pos + 1, end_pos - ctr_pos);
// if (key != "")
// trace_state.Set(key, val);
// }
// ctr_pos = -1;
// end_pos = -1;
// start_pos = -1;
// }
// else if (trace_state_header[i] == '=')
// {
// ctr_pos = i;
// }
// else
// {
// end_pos = i;
// if (start_pos == -1)
// start_pos = i;
// }
// }
// if (start_pos != -1 && end_pos != -1)
// {
// if (ctr_pos != -1)
// {
// key = trace_state_header.substr(start_pos, ctr_pos - start_pos + 1);
// val = trace_state_header.substr(ctr_pos + 1, end_pos - ctr_pos);
// if (key != "")
// trace_state.Set(key, val);
// }
// element_num++;
// }
//
// if (element_num >= kTraceStateMaxMembers)
// {
// return TraceState(); // too many k-v pairs will result in an invalid trace state
// }
// return trace_state;
// }
//
// static void AddNewMember(TraceState &trace_state, nostd::string_view member)
// {
// for (int i = 0; i < int(member.length()); i++)
// {
// if (member[i] == '=')
// {
// trace_state.Set(member.substr(0, i), member.substr(i + 1, member.length() - i - 1));
// return;
// }
// }
// }
// static TraceState ExtractTraceState(nostd::string_view &trace_state_header)
// {
// TraceState trace_state = TraceState();
// int start_pos = -1;
// int end_pos = -1;
// int ctr_pos = -1;
// int element_num = 0;
// nostd::string_view key;
// nostd::string_view val;
// for (int i = 0; i < int(trace_state_header.length()); i++)
// {
// if (trace_state_header[i] == '\t')
// continue;
// else if (trace_state_header[i] == ',')
// {
// if (start_pos == -1 && end_pos == -1)
// continue;
// element_num++;
// if (ctr_pos != -1)
// {
// key = trace_state_header.substr(start_pos, ctr_pos - start_pos + 1);
// val = trace_state_header.substr(ctr_pos + 1, end_pos - ctr_pos);
// if (key != "")
// trace_state.Set(key, val);
// }
// ctr_pos = -1;
// end_pos = -1;
// start_pos = -1;
// }
// else if (trace_state_header[i] == '=')
// {
// ctr_pos = i;
// }
// else
// {
// end_pos = i;
// if (start_pos == -1)
// start_pos = i;
// }
// }
// if (start_pos != -1 && end_pos != -1)
// {
// if (ctr_pos != -1)
// {
// key = trace_state_header.substr(start_pos, ctr_pos - start_pos + 1);
// val = trace_state_header.substr(ctr_pos + 1, end_pos - ctr_pos);
// if (key != "")
// trace_state.Set(key, val);
// }
// element_num++;
// }
//
// if (element_num >= kTraceStateMaxMembers)
// {
// return TraceState(); // too many k-v pairs will result in an invalid trace state
// }
// return trace_state;
// }
//
// static void AddNewMember(TraceState &trace_state, nostd::string_view member)
// {
// for (int i = 0; i < int(member.length()); i++)
// {
// if (member[i] == '=')
// {
// trace_state.Set(member.substr(0, i), member.substr(i + 1, member.length() - i - 1));
// return;
// }
// }
// }

static SpanContext ExtractImpl(Getter getter, const T &carrier)
{
Expand All @@ -373,21 +373,22 @@ class HttpTraceContext : public HTTPTextFormat<T>
return SpanContext(false, false);
}
SpanContext context_from_parent_header = ExtractContextFromTraceParent(trace_parent);
// if (!context_from_parent_header.IsValid())
// {
// if (!context_from_parent_header.IsValid())
// {
return context_from_parent_header;
// }
// }

// nostd::string_view trace_state_header = getter(carrier, kTraceState);
//
// if (trace_state_header == "" || trace_state_header.empty())
// {
// return context_from_parent_header;
// }
//
// TraceState trace_state = ExtractTraceState(trace_state_header);
// return SpanContext(context_from_parent_header.trace_id(), context_from_parent_header.span_id(),
// context_from_parent_header.trace_flags(), trace_state, true);
// nostd::string_view trace_state_header = getter(carrier, kTraceState);
//
// if (trace_state_header == "" || trace_state_header.empty())
// {
// return context_from_parent_header;
// }
//
// TraceState trace_state = ExtractTraceState(trace_state_header);
// return SpanContext(context_from_parent_header.trace_id(),
// context_from_parent_header.span_id(),
// context_from_parent_header.trace_flags(), trace_state, true);
}
};
} // namespace propagation
Expand Down
28 changes: 12 additions & 16 deletions api/include/opentelemetry/trace/span_context.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,52 +32,48 @@ class SpanContext final
// An invalid SpanContext.
SpanContext() noexcept
: trace_flags_(trace::TraceFlags((uint8_t) false)),
// trace_state_(new TraceState),
// trace_state_(new TraceState),
remote_parent_(false){};

SpanContext(bool sampled_flag, bool has_remote_parent) noexcept
: trace_flags_(trace::TraceFlags((uint8_t)sampled_flag)),
// trace_state_(new TraceState),
// trace_state_(new TraceState),
remote_parent_(has_remote_parent){};
SpanContext(TraceId trace_id,
SpanId span_id,
TraceFlags trace_flags,
// TraceState trace_state,
// TraceState trace_state,
bool has_remote_parent) noexcept
{
trace_id_ = trace_id;
span_id_ = span_id;
trace_flags_ = trace_flags;
// trace_state_.reset(new TraceState(trace_state));
// trace_state_.reset(new TraceState(trace_state));
remote_parent_ = has_remote_parent;
}
SpanContext(SpanContext &&ctx)
: trace_id_(ctx.trace_id()),
span_id_(ctx.span_id()),
trace_flags_(ctx.trace_flags())
// trace_state_(std::move(ctx.trace_state_))
: trace_id_(ctx.trace_id()), span_id_(ctx.span_id()), trace_flags_(ctx.trace_flags())
// trace_state_(std::move(ctx.trace_state_))
{}
SpanContext(const SpanContext &ctx)
: trace_id_(ctx.trace_id()),
span_id_(ctx.span_id()),
trace_flags_(ctx.trace_flags())
// trace_state_(new TraceState(ctx.trace_state()))
: trace_id_(ctx.trace_id()), span_id_(ctx.span_id()), trace_flags_(ctx.trace_flags())
// trace_state_(new TraceState(ctx.trace_state()))
{}

SpanContext &operator=(const SpanContext &ctx)
{
trace_id_ = ctx.trace_id_;
span_id_ = ctx.span_id_;
trace_flags_ = ctx.trace_flags_;
// trace_state_.reset(new TraceState(*(ctx.trace_state_.get())));
// trace_state_.reset(new TraceState(*(ctx.trace_state_.get())));
return *this;
};
SpanContext &operator=(SpanContext &&ctx)
{
trace_id_ = ctx.trace_id_;
span_id_ = ctx.span_id_;
trace_flags_ = ctx.trace_flags_;
// trace_state_.reset(new TraceState(*(ctx.trace_state_.get())));
// trace_state_.reset(new TraceState(*(ctx.trace_state_.get())));
return *this;
};
// TODO
Expand All @@ -88,7 +84,7 @@ class SpanContext final
const TraceId &trace_id() const noexcept { return trace_id_; }
const SpanId &span_id() const noexcept { return span_id_; }
const TraceFlags &trace_flags() const noexcept { return trace_flags_; }
// const TraceState &trace_state() const noexcept { return *trace_state_; }
// const TraceState &trace_state() const noexcept { return *trace_state_; }

bool IsValid() const noexcept { return trace_id_.IsValid() && span_id_.IsValid(); }

Expand All @@ -102,7 +98,7 @@ class SpanContext final
TraceId trace_id_;
SpanId span_id_;
TraceFlags trace_flags_;
// nostd::unique_ptr<TraceState> trace_state_; // Never nullptr.
// nostd::unique_ptr<TraceState> trace_state_; // Never nullptr.
bool remote_parent_ = false;
};

Expand Down
15 changes: 8 additions & 7 deletions api/include/opentelemetry/trace/trace_state.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,21 +21,22 @@
//#include "opentelemetry/nostd/string_view.h"
//#include "opentelemetry/nostd/unique_ptr.h"
//
//OPENTELEMETRY_BEGIN_NAMESPACE
//namespace trace
// OPENTELEMETRY_BEGIN_NAMESPACE
// namespace trace
//{
//
///**
// * TraceState carries tracing-system specific context in a list of key-value pairs. TraceState
// * allows different vendors to propagate additional information and inter-operate with their legacy
// * allows different vendors to propagate additional information and inter-operate with their
// legacy
// * id formats.
// *
// * For more information, see the W3C Trace Context specification:
// * https://www.w3.org/TR/trace-context
// */
//class TraceState
// class TraceState
//{
//public:
// public:
// static constexpr int kKeyMaxSize = 256;
// static constexpr int kValueMaxSize = 256;
// static constexpr int kMaxKeyValuePairs = 32;
Expand Down Expand Up @@ -83,7 +84,7 @@
// // Returns whether value is a valid value. See https://www.w3.org/TR/trace-context/#value
// static bool IsValidValue(nostd::string_view value);
//
//private:
// private:
// // Store entries in a C-style array to avoid using std::array or std::vector.
// Entry entries_[kMaxKeyValuePairs];
//
Expand All @@ -92,4 +93,4 @@
//};
//
//} // namespace trace
//OPENTELEMETRY_END_NAMESPACE
// OPENTELEMETRY_END_NAMESPACE
Loading