aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs35
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));
}
}