Struct rmp_rpc::Client [] [src]

pub struct Client { /* fields omitted */ }

A client that sends requests and notifications to a remote MessagePack-RPC server.

Methods

impl Client
[src]

[src]

Creates a new Client that can be used to send requests and notifications on the given stream.

extern crate futures;
extern crate rmp_rpc;
extern crate tokio_core;

use futures::Future;
use std::net::SocketAddr;
use rmp_rpc::Client;
use tokio_core::net::TcpStream;
use tokio_core::reactor::Core;

fn main() {
    let mut core = Core::new().unwrap();
    let addr: SocketAddr = "127.0.0.1:54321".parse().unwrap();
    let handle = core.handle();

    // Open a TCP connection.
    let connect = TcpStream::connect(&addr, &handle)
        .map_err(|e| println!("I/O error: {}", e))
        // Once we get the connection, start a new client on it.
        .and_then(move |stream| {
            let client = Client::new(stream, &handle);

            // Use the client to send a notification.
            // The future returned by client.notify() finishes when the notification
            // has been sent, in case we care about that. We can also just drop it.
            client.notify("hello", &[]);

            // Use the client to send a request with the method "dostuff", and two
            // parameters: the string "foo" and the integer "42".
            // The future returned by client.request() finishes when the response
            // is received.
            client
                .request("dostuff", &["foo".into(), 42.into()])
                .and_then(|response| {
                    println!("Response: {:?}", response);
                    Ok(())
                })
        });
    // Uncomment this to run the client, blocking until the response was received and the
    // message was printed.
    // core.run(connect).unwrap();
}

[src]

Send a MessagePack-RPC request

[src]

Send a MessagePack-RPC notification

Trait Implementations

impl Clone for Client
[src]

[src]

Returns a copy of the value. Read more

1.0.0
[src]

Performs copy-assignment from source. Read more

impl Future for Client
[src]

The type of value that this future will resolved with if it is successful. Read more

The type of error that this future will resolve with if it fails in a normal fashion. Read more

[src]

Query this future to see if its value has become available, registering interest if it is not. Read more

[src]

Block the current thread until this future is resolved. Read more

[src]

Map this future's result to a different type, returning a new future of the resulting type. Read more

[src]

Map this future's error to a different error, returning a new future. Read more

[src]

Map this future's error to any error implementing From for this future's Error, returning a new future. Read more

[src]

Chain on a computation for when a future finished, passing the result of the future to the provided closure f. Read more

[src]

Execute another future after this one has resolved successfully. Read more

[src]

Execute another future if this one resolves with an error. Read more

[src]

Waits for either one of two futures to complete. Read more

[src]

Waits for either one of two differently-typed futures to complete. Read more

[src]

Joins the result of two futures, waiting for them both to complete. Read more

[src]

Same as join, but with more futures.

[src]

Same as join, but with more futures.

[src]

Same as join, but with more futures.

[src]

Convert this future into a single element stream. Read more

[src]

Flatten the execution of this future when the successful result of this future is itself another future. Read more

[src]

Flatten the execution of this future when the successful result of this future is a stream. Read more

[src]

Fuse a future such that poll will never again be called once it has completed. Read more

[src]

Do something with the item of a future, passing it on. Read more

[src]

Catches unwinding panics while polling the future. Read more

[src]

Create a cloneable handle to this future where all handles will resolve to the same result. Read more

Auto Trait Implementations

impl Send for Client

impl Sync for Client