35 lines
654 B
Crystal
35 lines
654 B
Crystal
require "ipc"
|
|
require "cbor"
|
|
require "ipc/cbor"
|
|
|
|
class IPC::CBOR
|
|
def handle(service : AuthD::Service, event : IPC::Event::Events)
|
|
raise "unimplemented"
|
|
end
|
|
end
|
|
|
|
module AuthD
|
|
class_getter requests = [] of IPC::CBOR.class
|
|
class_getter responses = [] of IPC::CBOR.class
|
|
end
|
|
|
|
class IPC::Context
|
|
def send(fd, response : AuthD::Response)
|
|
send fd, response.type.to_u8, response.to_cbor
|
|
end
|
|
end
|
|
|
|
class IPC::Client
|
|
def send(request : AuthD::Request)
|
|
unless (fd = @server_fd).nil?
|
|
send_now fd, request.type.to_u8, request.to_cbor
|
|
else
|
|
raise "Client not connected to the server"
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
require "./requests/*"
|
|
require "./responses/*"
|