init
This commit is contained in:
commit
62788c1b26
23 changed files with 1532 additions and 0 deletions
42
harsh-server/src/main.rs
Normal file
42
harsh-server/src/main.rs
Normal file
|
@ -0,0 +1,42 @@
|
|||
use telecomande::{Executor, SimpleExecutor};
|
||||
use tokio::net::TcpListener;
|
||||
|
||||
#[tokio::main]
|
||||
|
||||
async fn main() {
|
||||
println!("starting server ...");
|
||||
let client_handler = SimpleExecutor::new(SessionProc::default()).spawn();
|
||||
let storage = SimpleExecutor::new(StorageProc::new("./db")).spawn();
|
||||
let gateway =
|
||||
SimpleExecutor::new(GatewayProc::new(client_handler.remote(), storage.remote())).spawn();
|
||||
println!("spawned gateway");
|
||||
|
||||
let listener = TcpListener::bind("localhost:8080").await.unwrap();
|
||||
println!("listening on 'localhost:8080' ...");
|
||||
|
||||
let client_handler = client_handler.remote();
|
||||
loop {
|
||||
let (stream, address) = listener.accept().await.unwrap();
|
||||
println!("new connection from '{address:?}'");
|
||||
|
||||
client_handler
|
||||
.send(sessions::SessionCmd::AddSession(
|
||||
stream,
|
||||
address,
|
||||
gateway.remote(),
|
||||
))
|
||||
.unwrap();
|
||||
}
|
||||
}
|
||||
|
||||
mod utils;
|
||||
pub use utils::{Addr, Id};
|
||||
|
||||
mod gateway;
|
||||
pub use gateway::{GatewayCmd, GatewayProc};
|
||||
|
||||
mod sessions;
|
||||
pub use sessions::{SessionCmd, SessionProc};
|
||||
|
||||
pub use storage::{StorageCmd, StorageProc};
|
||||
mod storage;
|
Loading…
Add table
Add a link
Reference in a new issue