implemented listeners for transfered event [CI SKIP]
This commit is contained in:
parent
ceb3d7b77d
commit
0301a53ac9
@ -24,10 +24,13 @@ case "$EVENT" in
|
|||||||
PREV_ENDPOINT=$8
|
PREV_ENDPOINT=$8
|
||||||
;;
|
;;
|
||||||
"added")
|
"added")
|
||||||
|
|
||||||
;;
|
;;
|
||||||
"removed")
|
"removed")
|
||||||
|
|
||||||
;;
|
;;
|
||||||
|
"transfered")
|
||||||
|
|
||||||
*)
|
*)
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
|
7
wg-event-gen/Cargo.lock
generated
7
wg-event-gen/Cargo.lock
generated
@ -132,6 +132,11 @@ name = "libc"
|
|||||||
version = "0.2.47"
|
version = "0.2.47"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "number_prefix"
|
||||||
|
version = "0.3.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "proc-macro2"
|
name = "proc-macro2"
|
||||||
version = "0.4.27"
|
version = "0.4.27"
|
||||||
@ -251,6 +256,7 @@ dependencies = [
|
|||||||
"base64 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"base64 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"derive_builder 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"derive_builder 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"number_prefix 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
"structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"structopt-derive 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
"structopt-derive 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
"time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -292,6 +298,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
"checksum hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77"
|
"checksum hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77"
|
||||||
"checksum ident_case 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
|
"checksum ident_case 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
|
||||||
"checksum libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)" = "48450664a984b25d5b479554c29cc04e3150c97aa4c01da5604a2d4ed9151476"
|
"checksum libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)" = "48450664a984b25d5b479554c29cc04e3150c97aa4c01da5604a2d4ed9151476"
|
||||||
|
"checksum number_prefix 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "17b02fc0ff9a9e4b35b3342880f48e896ebf69f2967921fe8646bf5b7125956a"
|
||||||
"checksum proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)" = "4d317f9caece796be1980837fd5cb3dfec5613ebdb04ad0956deea83ce168915"
|
"checksum proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)" = "4d317f9caece796be1980837fd5cb3dfec5613ebdb04ad0956deea83ce168915"
|
||||||
"checksum quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "53fa22a1994bd0f9372d7a816207d8a2677ad0325b073f5c5332760f0fb62b5c"
|
"checksum quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "53fa22a1994bd0f9372d7a816207d8a2677ad0325b073f5c5332760f0fb62b5c"
|
||||||
"checksum redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)" = "52ee9a534dc1301776eff45b4fa92d2c39b1d8c3d3357e6eb593e0d795506fc2"
|
"checksum redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)" = "52ee9a534dc1301776eff45b4fa92d2c39b1d8c3d3357e6eb593e0d795506fc2"
|
||||||
|
@ -11,6 +11,7 @@ time = "0.1.42"
|
|||||||
structopt = "0.2.14"
|
structopt = "0.2.14"
|
||||||
structopt-derive = "0.2.14"
|
structopt-derive = "0.2.14"
|
||||||
derive_builder = "0.7.1"
|
derive_builder = "0.7.1"
|
||||||
|
number_prefix = "0.3.0"
|
||||||
|
|
||||||
[profile.release]
|
[profile.release]
|
||||||
lto = true
|
lto = true
|
||||||
|
@ -50,7 +50,7 @@ pub(crate) fn gen_events(
|
|||||||
}
|
}
|
||||||
if prev.traffic != cur.traffic {
|
if prev.traffic != cur.traffic {
|
||||||
if let ((p_tx, p_rx), (c_tx, c_rx)) = (prev.traffic, cur.traffic) {
|
if let ((p_tx, p_rx), (c_tx, c_rx)) = (prev.traffic, cur.traffic) {
|
||||||
listeners.fire(Event::Tranfered {
|
listeners.fire(Event::Transfered {
|
||||||
peer: &cur,
|
peer: &cur,
|
||||||
tx: c_tx - p_tx,
|
tx: c_tx - p_tx,
|
||||||
rx: c_rx - p_rx,
|
rx: c_rx - p_rx,
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
use crate::Peer;
|
use crate::Peer;
|
||||||
|
use number_prefix::{NumberPrefix, Prefixed, Standalone};
|
||||||
use std::net::SocketAddr;
|
use std::net::SocketAddr;
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
use std::process::Command;
|
use std::process::Command;
|
||||||
@ -13,14 +14,19 @@ pub enum Event<'a> {
|
|||||||
Connected(&'a Peer),
|
Connected(&'a Peer),
|
||||||
Disconnected(&'a Peer),
|
Disconnected(&'a Peer),
|
||||||
Roamed(&'a Peer, SocketAddr),
|
Roamed(&'a Peer, SocketAddr),
|
||||||
Tranfered { peer: &'a Peer, tx: u64, rx: u64 },
|
Transfered { peer: &'a Peer, tx: u64, rx: u64 },
|
||||||
}
|
}
|
||||||
|
|
||||||
pub trait EventListener {
|
pub trait EventListener {
|
||||||
|
fn name(&self) -> &'static str;
|
||||||
|
|
||||||
fn fire<'a>(&self, event: Event<'a>);
|
fn fire<'a>(&self, event: Event<'a>);
|
||||||
}
|
}
|
||||||
|
|
||||||
impl EventListener for Vec<Box<EventListener>> {
|
impl EventListener for Vec<Box<EventListener>> {
|
||||||
|
fn name(&self) -> &'static str {
|
||||||
|
"List of Listeners"
|
||||||
|
}
|
||||||
fn fire<'a>(&self, event: Event<'a>) {
|
fn fire<'a>(&self, event: Event<'a>) {
|
||||||
self.iter().for_each(|l| l.fire(event.clone()));
|
self.iter().for_each(|l| l.fire(event.clone()));
|
||||||
}
|
}
|
||||||
@ -29,6 +35,10 @@ impl EventListener for Vec<Box<EventListener>> {
|
|||||||
pub struct LogListener;
|
pub struct LogListener;
|
||||||
|
|
||||||
impl EventListener for LogListener {
|
impl EventListener for LogListener {
|
||||||
|
fn name(&self) -> &'static str {
|
||||||
|
"Log"
|
||||||
|
}
|
||||||
|
|
||||||
fn fire<'a>(&self, event: Event<'a>) {
|
fn fire<'a>(&self, event: Event<'a>) {
|
||||||
match event {
|
match event {
|
||||||
Event::Connected(peer) => println!("{} connected!", peer.key),
|
Event::Connected(peer) => println!("{} connected!", peer.key),
|
||||||
@ -41,9 +51,19 @@ impl EventListener for LogListener {
|
|||||||
previous_addr,
|
previous_addr,
|
||||||
peer.endpoint.unwrap()
|
peer.endpoint.unwrap()
|
||||||
),
|
),
|
||||||
Event::Tranfered { peer, tx, rx } => {
|
Event::Transfered { peer, tx, rx } => {
|
||||||
println!("{} transfered {} up, {} down", peer.key, tx, rx)
|
let prefix = |cnt: u64| match NumberPrefix::binary(cnt as f64) {
|
||||||
|
Standalone(bytes) => format!("{}B", bytes),
|
||||||
|
Prefixed(prefix, n) => format!("{:.0} {}B", n, prefix),
|
||||||
|
};
|
||||||
|
println!(
|
||||||
|
"{} transfered {} up, {} down",
|
||||||
|
peer.key,
|
||||||
|
prefix(tx),
|
||||||
|
prefix(rx)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
_ => unimplemented!(),
|
_ => unimplemented!(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -107,6 +127,9 @@ impl ScriptListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl EventListener for ScriptListener {
|
impl EventListener for ScriptListener {
|
||||||
|
fn name(&self) -> &'static str {
|
||||||
|
"Script"
|
||||||
|
}
|
||||||
fn fire<'a>(&self, event: Event<'a>) {
|
fn fire<'a>(&self, event: Event<'a>) {
|
||||||
match event {
|
match event {
|
||||||
Event::Connected(peer) => self.call_sub(vec!["connected", &self.peer_props(peer)]),
|
Event::Connected(peer) => self.call_sub(vec!["connected", &self.peer_props(peer)]),
|
||||||
@ -120,6 +143,12 @@ impl EventListener for ScriptListener {
|
|||||||
&self.peer_props(peer),
|
&self.peer_props(peer),
|
||||||
&previous_addr.to_string(),
|
&previous_addr.to_string(),
|
||||||
]),
|
]),
|
||||||
|
Event::Transfered { peer, tx, rx } => self.call_sub(vec![
|
||||||
|
"transfered",
|
||||||
|
&self.peer_props(peer),
|
||||||
|
&tx.to_string(),
|
||||||
|
&rx.to_string(),
|
||||||
|
]),
|
||||||
_ => unimplemented!(),
|
_ => unimplemented!(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user