Archived
3
0

removing context.fd, pongc++

This commit is contained in:
Karchnu 2020-07-20 15:37:50 +02:00
parent d791528008
commit 25058bc708
2 changed files with 60 additions and 7 deletions

View File

@ -130,11 +130,6 @@ class IPC::Context
pointerof(@context) pointerof(@context)
end end
# sanitizer
def fd
@connection.fd
end
def close def close
return if @closed return if @closed
r = LibIPC.ipc_close_all(self.pointer) r = LibIPC.ipc_close_all(self.pointer)

View File

@ -1,6 +1,54 @@
require "../src/ipc.cr" require "../src/ipc.cr"
client = IPC::Client.new "pong" class CLI
class_property service_name = "pong"
class_property message : String? = nil
class_property type = 1
class_property user_type = 42
class_property verbosity = 1
class_property rounds = 1
end
OptionParser.parse do |parser|
parser.on "-s service_name", "--service-name service_name", "URI" do |optsn|
CLI.service_name = optsn
end
parser.on "-v verbosity", "--verbosity verbosity", "Verbosity (0 = nothing is printed, 1 = only events, 2 = events and messages). Default: 1" do |optsn|
CLI.verbosity = optsn.to_i
end
parser.on "-t message_type",
"--type message_type",
"(internal) message type." do |opt|
CLI.type = opt.to_i
end
parser.on "-u user_message_type",
"--user-type user_message_type",
"Message type." do |opt|
CLI.user_type = opt.to_i
end
parser.on "-r rounds", "--rounds count", "Number of messages sent." do |opt|
CLI.rounds = opt.to_i
end
parser.on "-m message", "--message m", "Message to sent." do |opt|
CLI.message = opt
end
parser.on "-h", "--help", "Show this help" do
puts parser
exit 0
end
end
client = IPC::Client.new service_name
client.base_timer = 30_000 # 30 seconds
client.timer = 30_000 # 30 seconds
server_fd = client.server_fd server_fd = client.server_fd
@ -9,12 +57,22 @@ if server_fd.nil?
exit 1 exit 1
end end
message = IPC::Message.new server_fd, 1, 42.to_u8, "salut ça va ?" def info(message : String)
puts message unless CLI.verbosity
end
message = IPC::Message.new server_fd, CLI.type.to_u8, CLI.user_type.to_u8, CLI.message
client.send message client.send message
client << 0
client.loop do |event| client.loop do |event|
case event case event
when IPC::Event::ExtraSocket
info "reading on #{event.fd}"
if event.fd == 0
puts "reading on STDIN"
end
when IPC::Event::MessageReceived when IPC::Event::MessageReceived
puts "\033[32mthere is a message\033[00m" puts "\033[32mthere is a message\033[00m"
puts event.message.to_s puts event.message.to_s