MCPcopy Create free account
hub / github.com/apache/qpid-proton / send_request

Method send_request

cpp/examples/tracing_client.cpp:78–99  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

76 }
77
78 void send_request() {
79 proton::message req;
80 req.body(requests.front());
81 req.reply_to(receiver.source().address());
82 req.id(id_counter);
83
84 opentelemetry::trace::StartSpanOptions options;
85 options.kind = opentelemetry::trace::SpanKind::kClient;
86
87 // Start a span here before send
88 opentelemetry::nostd::shared_ptr<opentelemetry::trace::Tracer> tracer = provider->GetTracer("qpid-tracer", OPENTELEMETRY_SDK_VERSION);
89 opentelemetry::nostd::shared_ptr<opentelemetry::trace::Span> span = tracer->StartSpan("send_request",
90 {{"reply_to", req.reply_to()}, {"message", to_string(req.body())}},
91 options);
92 opentelemetry::trace::Scope scope = tracer->WithActiveSpan(span);
93
94 // Storing the 'scope' in a map to keep it alive and erasing it when a response is received.
95 scope_map[req.id()] = std::make_shared<opentelemetry::trace::Scope>(std::move(scope));
96 id_counter++;
97
98 sender.send(req);
99 }
100
101 void on_receiver_open(proton::receiver &) override {
102 send_request();

Callers

nothing calls this directly

Calls 7

bodyMethod · 0.80
to_stringFunction · 0.50
reply_toMethod · 0.45
addressMethod · 0.45
sourceMethod · 0.45
idMethod · 0.45
sendMethod · 0.45

Tested by

no test coverage detected