pub struct Server { /* private fields */ }
Expand description
An RPC Server hosts multiple server instances so they may be called.
Implementations§
source§impl Server
impl Server
sourcepub fn new(
options: ServerOptions,
services: ServiceRegistry
) -> Result<Self, Error>
pub fn new( options: ServerOptions, services: ServiceRegistry ) -> Result<Self, Error>
Create a new server from the options and service registry.
Examples found in repository?
examples/busyrpc-benchmark-server.rs (line 45)
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
fn main() {
let (options, free) =
BenchmarkOptions::from_command_line("Usage: busyrpc-benchmark-server [OPTIONS]");
if !free.is_empty() {
eprintln!("command takes no arguments");
std::process::exit(1);
}
std::thread::spawn(|| {
let mut collector = Collector::new();
busyrpc::register_biometrics(&mut collector);
let fout = File::create("/dev/stdout").unwrap();
let mut emit = PlainTextEmitter::new(fout);
loop {
let now = SystemTime::now()
.duration_since(SystemTime::UNIX_EPOCH)
.expect("clock should never fail")
.as_millis()
.try_into()
.expect("millis since epoch should fit u64");
if let Err(e) = collector.emit(&mut emit, now) {
eprintln!("collector error: {}", e);
}
std::thread::sleep(std::time::Duration::from_millis(249));
}
});
let services = ServiceRegistry::new();
let server = Server::new(options.server, services).as_z().pretty_unwrap();
server.serve().as_z().pretty_unwrap();
}
sourcepub fn serve(&self) -> Result<(), Error>
pub fn serve(&self) -> Result<(), Error>
Serve the server forever.
Examples found in repository?
examples/busyrpc-benchmark-server.rs (line 46)
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
fn main() {
let (options, free) =
BenchmarkOptions::from_command_line("Usage: busyrpc-benchmark-server [OPTIONS]");
if !free.is_empty() {
eprintln!("command takes no arguments");
std::process::exit(1);
}
std::thread::spawn(|| {
let mut collector = Collector::new();
busyrpc::register_biometrics(&mut collector);
let fout = File::create("/dev/stdout").unwrap();
let mut emit = PlainTextEmitter::new(fout);
loop {
let now = SystemTime::now()
.duration_since(SystemTime::UNIX_EPOCH)
.expect("clock should never fail")
.as_millis()
.try_into()
.expect("millis since epoch should fit u64");
if let Err(e) = collector.emit(&mut emit, now) {
eprintln!("collector error: {}", e);
}
std::thread::sleep(std::time::Duration::from_millis(249));
}
});
let services = ServiceRegistry::new();
let server = Server::new(options.server, services).as_z().pretty_unwrap();
server.serve().as_z().pretty_unwrap();
}
Auto Trait Implementations§
impl !RefUnwindSafe for Server
impl Send for Server
impl Sync for Server
impl Unpin for Server
impl !UnwindSafe for Server
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more