diff options
author | metamuffin <yvchraiqi@protonmail.com> | 2022-06-06 22:48:55 +0200 |
---|---|---|
committer | metamuffin <yvchraiqi@protonmail.com> | 2022-06-06 22:48:55 +0200 |
commit | bce701919dad8fb3ce0e06ada4d4892240d483e2 (patch) | |
tree | 8650bb6076b851dc828b4ae10472893512c06330 /src/main.rs | |
parent | df31b14b3736a1e71dd8c08297f84e3fba228e39 (diff) | |
download | karlender-bce701919dad8fb3ce0e06ada4d4892240d483e2.tar karlender-bce701919dad8fb3ce0e06ada4d4892240d483e2.tar.bz2 karlender-bce701919dad8fb3ce0e06ada4d4892240d483e2.tar.zst |
a
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 35 |
1 files changed, 15 insertions, 20 deletions
diff --git a/src/main.rs b/src/main.rs index a26a1dd..fb975d6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,27 +1,22 @@ +use std::time::Duration; -use std::io::{BufRead, BufReader}; -use std::os::unix::net::{UnixListener, UnixStream}; -use std::thread; - -fn handle_client(stream: UnixStream) { - let stream = BufReader::new(stream); - for line in stream.lines() { - println!("{}", line.unwrap()); - } -} +use calender_thing::{ + interface::network_loop, + protocol::{ClientboundPacket, ServerboundPacket}, +}; +use crossbeam_channel::{Receiver, Sender}; fn main() { - let listener = UnixListener::bind("/run/user/1000/calendar").unwrap(); + let (s, r) = crossbeam_channel::unbounded(); + std::thread::spawn(move || network_loop(s)); + main_loop(r) +} - for stream in listener.incoming() { - match stream { - Ok(stream) => { - thread::spawn(|| handle_client(stream)); - } - Err(err) => { - println!("Error: {}", err); - break; - } +fn main_loop(packets: Receiver<(u32, ServerboundPacket, Sender<ClientboundPacket>)>) { + loop { + for (client_id, packet, responder) in packets.try_iter() { + println!("{:?}, {:?}, {:?}", client_id, packet, responder); } + std::thread::sleep(Duration::from_secs_f64(10.0 / 30.0)); } } |