Pongd test code for Crystal bindings.

master
Philippe Pittoli 2023-01-25 04:47:47 +01:00
parent a958666060
commit 0356540e7b
1 changed files with 38 additions and 0 deletions

View File

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