pub struct RequestRouter { /* private fields */ }
Expand description
Request router for dispatching MCP requests to appropriate handlers
Implementations§
Source§impl RequestRouter
impl RequestRouter
Sourcepub fn new(registry: Arc<HandlerRegistry>) -> Self
pub fn new(registry: Arc<HandlerRegistry>) -> Self
Create a new request router
Sourcepub fn with_config(registry: Arc<HandlerRegistry>, config: RouterConfig) -> Self
pub fn with_config(registry: Arc<HandlerRegistry>, config: RouterConfig) -> Self
Create a router with configuration
Sourcepub fn set_server_request_dispatcher<D>(&mut self, dispatcher: D)where
D: ServerRequestDispatcher + 'static,
pub fn set_server_request_dispatcher<D>(&mut self, dispatcher: D)where
D: ServerRequestDispatcher + 'static,
Set the server request dispatcher for bidirectional communication
Sourcepub fn get_server_request_dispatcher(
&self,
) -> Option<&Arc<dyn ServerRequestDispatcher>>
pub fn get_server_request_dispatcher( &self, ) -> Option<&Arc<dyn ServerRequestDispatcher>>
Get the server request dispatcher
Sourcepub fn supports_bidirectional(&self) -> bool
pub fn supports_bidirectional(&self) -> bool
Check if bidirectional routing is enabled and supported
Sourcepub fn add_route<H>(&mut self, handler: H) -> ServerResult<()>where
H: RouteHandler + 'static,
pub fn add_route<H>(&mut self, handler: H) -> ServerResult<()>where
H: RouteHandler + 'static,
Add a custom route handler
Sourcepub async fn route(
&self,
request: JsonRpcRequest,
ctx: RequestContext,
) -> JsonRpcResponse
pub async fn route( &self, request: JsonRpcRequest, ctx: RequestContext, ) -> JsonRpcResponse
Route a JSON-RPC request to the appropriate handler
Sourcepub async fn route_batch(
&self,
requests: Vec<JsonRpcRequest>,
ctx: RequestContext,
) -> Vec<JsonRpcResponse>
pub async fn route_batch( &self, requests: Vec<JsonRpcRequest>, ctx: RequestContext, ) -> Vec<JsonRpcResponse>
Handle batch requests
Sourcepub async fn send_elicitation_to_client(
&self,
request: ElicitRequest,
ctx: RequestContext,
) -> ServerResult<ElicitResult>
pub async fn send_elicitation_to_client( &self, request: ElicitRequest, ctx: RequestContext, ) -> ServerResult<ElicitResult>
Send an elicitation request to the client (server-initiated)
Sourcepub async fn send_ping_to_client(
&self,
request: PingRequest,
ctx: RequestContext,
) -> ServerResult<PingResult>
pub async fn send_ping_to_client( &self, request: PingRequest, ctx: RequestContext, ) -> ServerResult<PingResult>
Send a ping request to the client (server-initiated)
Sourcepub async fn send_create_message_to_client(
&self,
request: CreateMessageRequest,
ctx: RequestContext,
) -> ServerResult<CreateMessageResult>
pub async fn send_create_message_to_client( &self, request: CreateMessageRequest, ctx: RequestContext, ) -> ServerResult<CreateMessageResult>
Send a create message request to the client (server-initiated)
Sourcepub async fn send_list_roots_to_client(
&self,
request: ListRootsRequest,
ctx: RequestContext,
) -> ServerResult<ListRootsResult>
pub async fn send_list_roots_to_client( &self, request: ListRootsRequest, ctx: RequestContext, ) -> ServerResult<ListRootsResult>
Send a list roots request to the client (server-initiated)
Trait Implementations§
Source§impl Clone for RequestRouter
impl Clone for RequestRouter
Source§impl Debug for RequestRouter
impl Debug for RequestRouter
Source§impl ServerCapabilities for RequestRouter
impl ServerCapabilities for RequestRouter
Source§fn create_message(
&self,
request: Value,
) -> BoxFuture<'_, Result<Value, Box<dyn Error + Send + Sync>>>
fn create_message( &self, request: Value, ) -> BoxFuture<'_, Result<Value, Box<dyn Error + Send + Sync>>>
Send a sampling/createMessage request to the client
Auto Trait Implementations§
impl Freeze for RequestRouter
impl !RefUnwindSafe for RequestRouter
impl Send for RequestRouter
impl Sync for RequestRouter
impl Unpin for RequestRouter
impl !UnwindSafe for RequestRouter
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more