1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
mod addr;
mod ping;
mod sync;
use bytes::Bytes;
use message::Error;
use message::common::Command;
pub use self::addr::{AddrProtocol, SeednodeProtocol};
pub use self::ping::PingProtocol;
pub use self::sync::{SyncProtocol, InboundSyncConnection, InboundSyncConnectionRef, OutboundSyncConnection, OutboundSyncConnectionRef, LocalSyncNode, LocalSyncNodeRef};
pub trait Protocol: Send {
fn initialize(&mut self) {}
fn maintain(&mut self) {}
fn on_message(&mut self, command: &Command, payload: &Bytes) -> Result<(), Error>;
fn on_close(&mut self) {}
fn boxed(self) -> Box<Protocol> where Self: Sized + 'static {
Box::new(self)
}
}