implement a part of Client

This commit is contained in:
lumi 2017-02-19 00:01:39 +01:00
parent 9c035af4a3
commit bf7112ff39
2 changed files with 41 additions and 5 deletions

View file

@ -1,11 +1,46 @@
use jid::Jid;
use transport::SslTransport;
use error::Error;
pub struct XmppClient {
pub struct ClientBuilder {
jid: Jid,
host: Option<String>,
port: u16,
}
impl ClientBuilder {
pub fn new(jid: Jid) -> ClientBuilder {
ClientBuilder {
jid: jid,
host: None,
port: 5222,
}
}
pub fn host(mut self, host: String) -> ClientBuilder {
self.host = Some(host);
self
}
pub fn port(mut self, port: u16) -> ClientBuilder {
self.port = port;
self
}
pub fn connect(self) -> Result<Client, Error> {
let host = &self.host.unwrap_or(self.jid.domain.clone());
let transport = SslTransport::connect(host, self.port)?;
Ok(Client {
jid: self.jid,
transport: transport
})
}
}
pub struct Client {
jid: Jid,
transport: SslTransport,
}
impl XmppClient {
pub fn connect(jid: Jid) -> XmppClient {
unimplemented!();
}
impl Client {
}

View file

@ -5,3 +5,4 @@ pub mod ns;
pub mod transport;
pub mod error;
pub mod jid;
pub mod client;