From 19fcec84d8d7d21e796c7624e521b60d28ee21ed Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 20:45:59 +0200 Subject: Adding upstream version 16.2.11+ds. Signed-off-by: Daniel Baumann --- .../jaeger-client-cpp/crossdock/Server.h | 87 ++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 src/jaegertracing/jaeger-client-cpp/crossdock/Server.h (limited to 'src/jaegertracing/jaeger-client-cpp/crossdock/Server.h') diff --git a/src/jaegertracing/jaeger-client-cpp/crossdock/Server.h b/src/jaegertracing/jaeger-client-cpp/crossdock/Server.h new file mode 100644 index 000000000..e02d32294 --- /dev/null +++ b/src/jaegertracing/jaeger-client-cpp/crossdock/Server.h @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2017 Uber Technologies, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef JAEGERTRACING_CROSSDOCK_SERVER_H +#define JAEGERTRACING_CROSSDOCK_SERVER_H + +#include + +#include + +#include "jaegertracing/thrift-gen/tracetest_types.h" + +namespace jaegertracing { +namespace logging { + +class Logger; + +} // namespace logging + +namespace net { + +class IPAddress; + +namespace http { + +class Request; + +} // namespace http +} // namespace net + +namespace crossdock { + +class Server { + public: + Server(const net::IPAddress& clientIP, + const net::IPAddress& serverIP, + const std::string& agentHostPort, + const std::string& collectorEndpoint, + const std::string& samplingServerURL); + + ~Server(); + + void serve(); + + private: + template + std::string handleJSON( + const net::http::Request& request, + std::function handler); + + std::string handleRequest(const net::http::Request& request); + + thrift::TraceResponse startTrace(const thrift::StartTraceRequest& request); + + thrift::TraceResponse joinTrace(const thrift::JoinTraceRequest& request, + const opentracing::SpanContext& ctx); + + std::string generateTraces(const net::http::Request& request); + + class SocketListener; + class EndToEndHandler; + + std::shared_ptr _logger; + std::shared_ptr _tracer; + std::unique_ptr _clientListener; + std::unique_ptr _serverListener; + std::unique_ptr _handler; +}; + +} // namespace crossdock +} // namespace jaegertracing + +#endif // JAEGERTRACING_CROSSDOCK_SERVER_H -- cgit v1.2.3