Single place where RPC apis are created.

This commit is contained in:
Tomasz Drwięga
2016-05-28 13:42:53 +02:00
parent 129ad0bbcb
commit 07399d377f
9 changed files with 201 additions and 129 deletions

View File

@@ -25,6 +25,7 @@ use std::sync::Arc;
use std::net::SocketAddr;
use util::panics::{PanicHandler, OnPanicListener, MayPanic};
use jsonrpc_core::{IoHandler, IoDelegate};
use rpc::Extendable;
mod session;
@@ -57,6 +58,12 @@ impl Default for ServerBuilder {
}
}
impl Extendable for ServerBuilder {
fn add_delegate<D: Send + Sync + 'static>(&self, delegate: IoDelegate<D>) {
self.handler.add_delegate(delegate);
}
}
impl ServerBuilder {
/// Creates new `ServerBuilder`
pub fn new() -> Self {
@@ -65,11 +72,6 @@ impl ServerBuilder {
}
}
/// Adds rpc delegate
pub fn add_delegate<D>(&self, delegate: IoDelegate<D>) where D: Send + Sync + 'static {
self.handler.add_delegate(delegate);
}
/// Starts a new `WebSocket` server in separate thread.
/// Returns a `Server` handle which closes the server when droped.
pub fn start(self, addr: SocketAddr) -> Result<Server, ServerError> {