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

Adapts an existing server::Transport to transport::ServerTransport. More...

#include <transport_adapter.hpp>

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

Public Member Functions

 TransportContractAdapter (mcp::server::Transport &transport)
 
 TransportContractAdapter (std::unique_ptr< mcp::server::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 server::Transport to transport::ServerTransport.

Outbound request responses are queued for receive(). Inbound client messages 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::server::TransportContractAdapter::close ( )
inlineoverridevirtual

Closes the transport and unblocks receive() where possible.

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

◆ name()

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

Human-readable transport name for diagnostics.

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

◆ receive()

core::Result< std::optional< RxMessage > > mcp::server::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: