MeshLib C++ Docs
Loading...
Searching...
No Matches
MRMCPGatewayMlTransport.h
Go to the documentation of this file.
1#pragma once
2
3#include "MRMcp/MRFastmcpp.h"
4
5#pragma warning(push)
6#pragma warning(disable: 4800)
7#include <httplib.h>
8#pragma warning(pop)
9
10#include <atomic>
11#include <condition_variable>
12#include <mutex>
13#include <string>
14
15namespace MR::McpGateway
16{
17
25class MLClientTransport final : public fastmcpp::client::ITransport
26{
27public:
29 MLClientTransport( const std::string& targetUrl,
30 const std::string& ssePath,
31 const std::string& messagesPath );
33
34 fastmcpp::Json request( const std::string& route, const fastmcpp::Json& payload ) override;
35
36private:
37 struct HostPort { std::string host; int port = 80; };
38 static HostPort parseHostPort( const std::string& url );
39
42 MLClientTransport( const HostPort& hp,
43 const std::string& ssePath,
44 const std::string& messagesPath );
45
46private:
53 httplib::Client httpForSse_;
54 httplib::sse::SSEClient sse_;
55 httplib::Client httpForPost_;
56
57 std::string messagesPath_;
58 mutable std::mutex sessionMutex_;
59 std::condition_variable sessionCv_;
60 std::string sessionId_;
61 std::atomic<int64_t> nextId_{ 1 };
62};
63
64}
fastmcpp::Json request(const std::string &route, const fastmcpp::Json &payload) override
MLClientTransport(const std::string &targetUrl, const std::string &ssePath, const std::string &messagesPath)
Implicit conversion from 'BrotliDecoderState *const ' to bool. Possible information loss (Visual Stud...
Definition MRMCPGatewayBackend.h:10