]>
git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/opentelemetry-cpp/examples/http/server.h
1 // Copyright The OpenTelemetry Authors
2 // SPDX-License-Identifier: Apache-2.0
7 #include "opentelemetry/ext/http/server/http_server.h"
12 class HttpServer
: public HTTP_SERVER_NS::HttpRequestCallback
16 HTTP_SERVER_NS::HttpServer server_
;
17 std::string server_url_
;
19 std::atomic
<bool> is_running_
{false};
22 HttpServer(std::string server_name
= "test_server", uint16_t port
= 8800) : port_(port
)
24 server_
.setServerName(server_name
);
25 server_
.setKeepalive(false);
28 void AddHandler(std::string path
, HTTP_SERVER_NS::HttpRequestCallback
*request_handler
)
30 server_
.addHandler(path
, *request_handler
);
35 if (!is_running_
.exchange(true))
37 server_
.addListeningPort(port_
);
44 if (is_running_
.exchange(false))
50 ~HttpServer() { Stop(); }