mirror of
https://git.robbyzambito.me/zits
synced 2026-02-04 19:54:48 +00:00
Rename ClientState to Client
This commit is contained in:
@@ -1,59 +1,59 @@
|
||||
const Message = @import("message_parser.zig").Message;
|
||||
const std = @import("std");
|
||||
|
||||
pub const ClientState = struct {
|
||||
const Client = @This();
|
||||
|
||||
connect: ?Message.Connect,
|
||||
|
||||
write_lock: std.Io.Mutex,
|
||||
|
||||
from_client: *std.Io.Reader,
|
||||
to_client: *std.Io.Writer,
|
||||
|
||||
pub fn init(
|
||||
connect: ?Message.Connect,
|
||||
in: *std.Io.Reader,
|
||||
out: *std.Io.Writer,
|
||||
) Client {
|
||||
return .{
|
||||
.connect = connect,
|
||||
.write_lock = .init,
|
||||
.from_client = in,
|
||||
.to_client = out,
|
||||
};
|
||||
}
|
||||
|
||||
write_lock: std.Io.Mutex,
|
||||
/// Return true if the value was put in the clients buffer to process, else false.
|
||||
pub fn send(self: *Client, io: std.Io, msg: Message) !void {
|
||||
try self.write_lock.lock(io);
|
||||
defer self.write_lock.unlock(io);
|
||||
|
||||
from_client: *std.Io.Reader,
|
||||
to_client: *std.Io.Writer,
|
||||
|
||||
pub fn init(
|
||||
connect: ?Message.Connect,
|
||||
in: *std.Io.Reader,
|
||||
out: *std.Io.Writer,
|
||||
) ClientState {
|
||||
return .{
|
||||
.connect = connect,
|
||||
.write_lock = .init,
|
||||
.from_client = in,
|
||||
.to_client = out,
|
||||
};
|
||||
switch (msg) {
|
||||
.@"+ok" => {
|
||||
try writeOk(self.to_client);
|
||||
},
|
||||
.pong => {
|
||||
try writePong(self.to_client);
|
||||
},
|
||||
.info => |info| {
|
||||
try writeInfo(self.to_client, info);
|
||||
},
|
||||
.msg => |m| {
|
||||
try writeMsg(self.to_client, m);
|
||||
},
|
||||
else => {
|
||||
std.debug.panic("unimplemented write", .{});
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
/// Return true if the value was put in the clients buffer to process, else false.
|
||||
pub fn send(self: *ClientState, io: std.Io, msg: Message) !void {
|
||||
try self.write_lock.lock(io);
|
||||
defer self.write_lock.unlock(io);
|
||||
|
||||
switch (msg) {
|
||||
.@"+ok" => {
|
||||
try writeOk(self.to_client);
|
||||
},
|
||||
.pong => {
|
||||
try writePong(self.to_client);
|
||||
},
|
||||
.info => |info| {
|
||||
try writeInfo(self.to_client, info);
|
||||
},
|
||||
.msg => |m| {
|
||||
try writeMsg(self.to_client, m);
|
||||
},
|
||||
else => {
|
||||
std.debug.panic("unimplemented write", .{});
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
pub fn next(self: *ClientState, allocator: std.mem.Allocator) !Message {
|
||||
// std.debug.print("in client awaiting next message\n", .{});
|
||||
// errdefer std.debug.print("actually it was canceled\n", .{});
|
||||
// defer std.debug.print("client returning next message!\n", .{});
|
||||
return Message.next(allocator, self.from_client);
|
||||
// return self.send_queue.getOne(io);
|
||||
}
|
||||
};
|
||||
pub fn next(self: *Client, allocator: std.mem.Allocator) !Message {
|
||||
// std.debug.print("in client awaiting next message\n", .{});
|
||||
// errdefer std.debug.print("actually it was canceled\n", .{});
|
||||
// defer std.debug.print("client returning next message!\n", .{});
|
||||
return Message.next(allocator, self.from_client);
|
||||
// return self.send_queue.getOne(io);
|
||||
}
|
||||
|
||||
fn writeOk(out: *std.Io.Writer) !void {
|
||||
_ = try out.write("+OK\r\n");
|
||||
|
||||
Reference in New Issue
Block a user