Struct varlink::VarlinkService [−][src]
pub struct VarlinkService { /* fields omitted */ }
VarlinkService handles all the I/O and dispatches method calls to the registered interfaces.
Methods
impl VarlinkService
[src]
impl VarlinkService
pub fn new<S: Into<Cow<'static, str>>>(
vendor: S,
product: S,
version: S,
url: S,
interfaces: Vec<Box<Interface + Send + Sync>>
) -> Self
[src]
pub fn new<S: Into<Cow<'static, str>>>(
vendor: S,
product: S,
version: S,
url: S,
interfaces: Vec<Box<Interface + Send + Sync>>
) -> Self
Create a new VarlinkService
.
See the Service section of the
varlink wiki about the vendor
, product
, version
and url
.
The interfaces
vector is an array of varlink Interfaces
this service provides.
Examples
let service = varlink::VarlinkService::new( "org.varlink", "test service", "0.1", "http://varlink.org", vec![ Box::new(interface_foo), Box::new(interface_bar), Box::new(interface_baz), ], );
Trait Implementations
impl Interface for VarlinkService
[src]
impl Interface for VarlinkService
fn get_description(&self) -> &'static str
[src]
fn get_description(&self) -> &'static str
fn get_name(&self) -> &'static str
[src]
fn get_name(&self) -> &'static str
fn call_upgraded(
&self,
call: &mut Call,
_bufreader: &mut BufRead
) -> Result<Vec<u8>>
[src]
fn call_upgraded(
&self,
call: &mut Call,
_bufreader: &mut BufRead
) -> Result<Vec<u8>>
fn call(&self, call: &mut Call) -> Result<()>
[src]
fn call(&self, call: &mut Call) -> Result<()>
impl ConnectionHandler for VarlinkService
[src]
impl ConnectionHandler for VarlinkService
fn handle(
&self,
bufreader: &mut BufRead,
writer: &mut Write,
upgraded_iface: Option<String>
) -> Result<(Vec<u8>, Option<String>)>
[src]
fn handle(
&self,
bufreader: &mut BufRead,
writer: &mut Write,
upgraded_iface: Option<String>
) -> Result<(Vec<u8>, Option<String>)>
handle()
consumes every null terminated message from reader
and writes the reply to writer
.
This method can be used to implement your own server.
Pass it one or more null terminated received messages in a BufReader
and reply to the
sender with the filled writer
buffer.
Returns Ok(true), if the connection is upgraded
. For upgraded
connections
messages are in legacy format and
Examples
use varlink::{ConnectionHandler, VarlinkService}; let service = VarlinkService::new( "org.varlink", "test service", "0.1", "http://varlink.org", vec![], // more interfaces ... ); let mut in_buf = io::BufReader::new("received null terminated message(s) go here \000".as_bytes()); let mut out: Vec<u8> = Vec::new(); assert!(service.handle(&mut in_buf, &mut out, None).is_ok());
Auto Trait Implementations
impl Send for VarlinkService
impl Send for VarlinkService
impl Sync for VarlinkService
impl Sync for VarlinkService