From 61186c9ea9e024bbaf06ac631e20fcd205678a54 Mon Sep 17 00:00:00 2001 From: Philippe Pittoli Date: Fri, 3 Feb 2023 05:41:25 +0100 Subject: [PATCH] Crystal bindings: pongd. --- zig-impl/crystal/some-crystal-app/shard.yml | 2 +- .../crystal/some-crystal-app/tests/pongd.cr | 38 +++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 zig-impl/crystal/some-crystal-app/tests/pongd.cr diff --git a/zig-impl/crystal/some-crystal-app/shard.yml b/zig-impl/crystal/some-crystal-app/shard.yml index 8f3ccbb..1bf6083 100644 --- a/zig-impl/crystal/some-crystal-app/shard.yml +++ b/zig-impl/crystal/some-crystal-app/shard.yml @@ -8,7 +8,7 @@ targets: main: main: src/main.cr pongd: - main: src/pongd.cr + main: tests/pongd.cr authd: main: authd/main.cr authc: diff --git a/zig-impl/crystal/some-crystal-app/tests/pongd.cr b/zig-impl/crystal/some-crystal-app/tests/pongd.cr new file mode 100644 index 0000000..4c334f5 --- /dev/null +++ b/zig-impl/crystal/some-crystal-app/tests/pongd.cr @@ -0,0 +1,38 @@ +require "../src/main.cr" + +# In 5 messages: quit +count = 5 + +ipc = IPC.new +fd = ipc.service_init("pong") + +ipc.loop do |event| + case event.type + when LibIPC::EventType::MessageRx + m = event.message + if m.nil? + puts "No message" + else + received = String.new(m.to_unsafe, m.size) + pp! received + ipc.schedule event.fd, m, m.size + end + + when LibIPC::EventType::MessageTx + puts "A message has been sent" + count -= 1 + if count == 0 + exit + end + + when LibIPC::EventType::Connection + puts "A client just connected #JOY" + + when LibIPC::EventType::Disconnection + puts "A client just disconnected #SAD" + + else + puts "Unexpected: #{event.type}" + exit 1 + end +end