summaryrefslogtreecommitdiffstats
path: root/ipfs-api/examples/get_stats.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ipfs-api/examples/get_stats.rs')
-rw-r--r--ipfs-api/examples/get_stats.rs82
1 files changed, 44 insertions, 38 deletions
diff --git a/ipfs-api/examples/get_stats.rs b/ipfs-api/examples/get_stats.rs
index fe9f84f..41f2a5c 100644
--- a/ipfs-api/examples/get_stats.rs
+++ b/ipfs-api/examples/get_stats.rs
@@ -6,52 +6,58 @@
// copied, modified, or distributed except according to those terms.
//
+extern crate futures;
+extern crate hyper;
extern crate ipfs_api;
-extern crate tokio_core;
+use futures::Future;
use ipfs_api::IpfsClient;
-use tokio_core::reactor::Core;
// Creates an Ipfs client, and gets some stats about the Ipfs server.
//
fn main() {
println!("connecting to localhost:5001...");
- let mut core = Core::new().expect("expected event loop");
- let client = IpfsClient::default(&core.handle());
-
- let bitswap_stats = client.stats_bitswap();
- let bitswap_stats = core.run(bitswap_stats).expect("expected a valid response");
-
- let bw_stats = client.stats_bw();
- let bw_stats = core.run(bw_stats).expect("expected a valid response");
-
- let repo_stats = client.stats_repo();
- let repo_stats = core.run(repo_stats).expect("expected a valid response");
-
- println!("bitswap stats:");
- println!(" blocks recv: {}", bitswap_stats.blocks_received);
- println!(" data recv: {}", bitswap_stats.data_received);
- println!(" blocks sent: {}", bitswap_stats.blocks_sent);
- println!(" data sent: {}", bitswap_stats.data_sent);
- println!(
- " peers: {}",
- bitswap_stats.peers.join("\n ")
- );
- println!(
- " wantlist: {}",
- bitswap_stats.wantlist.join("\n ")
+ let client = IpfsClient::default();
+
+ let bitswap_stats = client.stats_bitswap().map(|bitswap_stats| {
+ println!("bitswap stats:");
+ println!(" blocks recv: {}", bitswap_stats.blocks_received);
+ println!(" data recv: {}", bitswap_stats.data_received);
+ println!(" blocks sent: {}", bitswap_stats.blocks_sent);
+ println!(" data sent: {}", bitswap_stats.data_sent);
+ println!(
+ " peers: {}",
+ bitswap_stats.peers.join("\n ")
+ );
+ println!(
+ " wantlist: {}",
+ bitswap_stats.wantlist.join("\n ")
+ );
+ println!();
+ });
+
+ let bw_stats = client.stats_bw().map(|bw_stats| {
+ println!("bandwidth stats:");
+ println!(" total in: {}", bw_stats.total_in);
+ println!(" total out: {}", bw_stats.total_out);
+ println!(" rate in: {}", bw_stats.rate_in);
+ println!(" rate out: {}", bw_stats.rate_out);
+ println!();
+ });
+
+ let repo_stats = client.stats_repo().map(|repo_stats| {
+ println!("repo stats:");
+ println!(" num objs: {}", repo_stats.num_objects);
+ println!(" repo size: {}", repo_stats.repo_size);
+ println!(" repo path: {}", repo_stats.repo_path);
+ println!(" version : {}", repo_stats.version);
+ });
+
+ hyper::rt::run(
+ bitswap_stats
+ .and_then(|_| bw_stats)
+ .and_then(|_| repo_stats)
+ .map_err(|e| eprintln!("{}", e)),
);
- println!();
- println!("bandwidth stats:");
- println!(" total in: {}", bw_stats.total_in);
- println!(" total out: {}", bw_stats.total_out);
- println!(" rate in: {}", bw_stats.rate_in);
- println!(" rate out: {}", bw_stats.rate_out);
- println!();
- println!("repo stats:");
- println!(" num objs: {}", repo_stats.num_objects);
- println!(" repo size: {}", repo_stats.repo_size);
- println!(" repo path: {}", repo_stats.repo_path);
- println!(" version : {}", repo_stats.version);
}