parity-zcash/p2p/src/net/channel.rs

48 lines
1.1 KiB
Rust
Raw Normal View History

2019-06-28 14:27:46 -07:00
use io::{read_any_message, ReadAnyMessage, SharedTcpStream};
use session::Session;
2019-06-28 14:27:46 -07:00
use tokio_io::io::{write_all, WriteAll};
2016-11-09 13:36:29 -08:00
use util::PeerInfo;
2016-10-14 01:55:28 -07:00
pub struct Channel {
2019-06-28 14:27:46 -07:00
stream: SharedTcpStream,
peer_info: PeerInfo,
session: Session,
2016-10-14 01:55:28 -07:00
}
impl Channel {
2019-06-28 14:27:46 -07:00
pub fn new(stream: SharedTcpStream, peer_info: PeerInfo, session: Session) -> Self {
Channel {
stream: stream,
peer_info: peer_info,
session: session,
}
}
pub fn write_message<T>(&self, message: T) -> WriteAll<SharedTcpStream, T>
where
T: AsRef<[u8]>,
{
write_all(self.stream.clone(), message)
}
pub fn read_message(&self) -> ReadAnyMessage<SharedTcpStream> {
read_any_message(self.stream.clone(), self.peer_info.magic)
}
pub fn shutdown(&self) {
self.stream.shutdown();
}
pub fn version(&self) -> u32 {
self.peer_info.version
}
pub fn peer_info(&self) -> PeerInfo {
self.peer_info.clone()
}
pub fn session(&self) -> &Session {
&self.session
}
2016-10-14 01:55:28 -07:00
}