Crystal bindings: pongd.

master
Philippe Pittoli 2023-02-03 05:41:25 +01:00
parent bf4d5c803f
commit 61186c9ea9
2 changed files with 39 additions and 1 deletions

View File

@ -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:

View File

@ -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