From 0356540e7b73c22d0cc4b7a1726d0a773d6da935 Mon Sep 17 00:00:00 2001 From: Philippe Pittoli Date: Wed, 25 Jan 2023 04:47:47 +0100 Subject: [PATCH] Pongd test code for Crystal bindings. --- .../crystal/some-crystal-app/src/pongd.cr | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 zig-impl/crystal/some-crystal-app/src/pongd.cr diff --git a/zig-impl/crystal/some-crystal-app/src/pongd.cr b/zig-impl/crystal/some-crystal-app/src/pongd.cr new file mode 100644 index 0000000..c8bb255 --- /dev/null +++ b/zig-impl/crystal/some-crystal-app/src/pongd.cr @@ -0,0 +1,38 @@ +require "./some-crystal-app.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