aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
authormetamuffin <yvchraiqi@protonmail.com>2022-06-06 22:48:55 +0200
committermetamuffin <yvchraiqi@protonmail.com>2022-06-06 22:48:55 +0200
commitbce701919dad8fb3ce0e06ada4d4892240d483e2 (patch)
tree8650bb6076b851dc828b4ae10472893512c06330 /src/main.rs
parentdf31b14b3736a1e71dd8c08297f84e3fba228e39 (diff)
downloadkarlender-bce701919dad8fb3ce0e06ada4d4892240d483e2.tar
karlender-bce701919dad8fb3ce0e06ada4d4892240d483e2.tar.bz2
karlender-bce701919dad8fb3ce0e06ada4d4892240d483e2.tar.zst
a
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));
}
}