cxxmcp 1.1.6
C++ MCP SDK
Loading...
Searching...
No Matches
mcp::client::TransportContractAdapter Class Referencefinal

Adapts an existing client::Transport to transport::ClientTransport. More...

#include <transport_adapter.hpp>

Inheritance diagram for mcp::client::TransportContractAdapter:
mcp::transport::Transport< Role >

Public Member Functions

 TransportContractAdapter (mcp::client::Transport &transport)
 
 TransportContractAdapter (std::unique_ptr< mcp::client::Transport > transport)
 
 TransportContractAdapter (const TransportContractAdapter &)=delete
 
TransportContractAdapteroperator= (const TransportContractAdapter &)=delete
 
 TransportContractAdapter (TransportContractAdapter &&other) noexcept
 
TransportContractAdapteroperator= (TransportContractAdapter &&other) noexcept
 
std::string_view name () const noexcept override
 Human-readable transport name for diagnostics.
 
core::Result< core::Unitsend (TxMessage message) override
 
core::Result< std::optional< RxMessage > > receive () override
 Receives the next JSON-RPC message from the peer.
 
core::Result< core::Unitclose () override
 Closes the transport and unblocks receive() where possible.
 
- Public Member Functions inherited from mcp::transport::Transport< Role >
virtual protocol::Json diagnostics () const
 Structured implementation diagnostics.
 
virtual core::Result< core::Unitsend (TxMessage message)=0
 Sends one JSON-RPC message to the peer.
 
virtual void wait_until_ready ()
 Blocks until the transport is ready to process messages.
 

Additional Inherited Members

- Public Types inherited from mcp::transport::Transport< Role >
using TxMessage = typename MessageTraits< Role >::TxMessage
 
using RxMessage = typename MessageTraits< Role >::RxMessage
 

Detailed Description

Adapts an existing client::Transport to transport::ClientTransport.

Request responses are queued for receive(). Inbound server-to-client requests and notifications still belong to the concrete transport's start() callback model and are not synthesized by this adapter. This compatibility adapter is not internally synchronized; callers must serialize send(), receive(), and close() access unless the wrapped transport and caller add their own synchronization.

Member Function Documentation

◆ close()

core::Result< core::Unit > mcp::client::TransportContractAdapter::close ( )
inlineoverridevirtual

Closes the transport and unblocks receive() where possible.

Implements mcp::transport::Transport< Role >.

◆ name()

std::string_view mcp::client::TransportContractAdapter::name ( ) const
inlineoverridevirtualnoexcept

Human-readable transport name for diagnostics.

Implements mcp::transport::Transport< Role >.

◆ receive()

core::Result< std::optional< RxMessage > > mcp::client::TransportContractAdapter::receive ( )
inlineoverridevirtual

Receives the next JSON-RPC message from the peer.

receive() is the sequential inbound side. A successful std::nullopt return is an orderly end-of-stream signal, not a parse or transport error.

Implements mcp::transport::Transport< Role >.


The documentation for this class was generated from the following file: