filestoraged/src/server/network.cr

34 lines
722 B
Crystal

require "ipc"
require "ipc/json"
require "json"
class IPC
def schedule(fd : Int32, request : IPC::JSON)
m = IPCMessage::TypedMessage.new request.type.to_u8, request.to_json
schedule fd, m
end
end
module FileStorage
class_getter requests = [] of IPC::JSON.class
class_getter responses = [] of IPC::JSON.class
class_getter errors = [] of IPC::JSON.class
end
class FileStorage::Client < IPC
def initialize
super
fd = self.connect "filestorage"
if fd.nil?
raise "couldn't connect to 'auth' IPC service"
end
@server_fd = fd
end
end
require "../requests/login.cr"
require "../requests/transfer.cr"
require "../requests/upload.cr"
require "../requests/errors.cr"
require "../requests/download.cr"