Rename ClientState to Client

This commit is contained in:
2026-01-01 03:08:56 +00:00
parent 4fcb9e3943
commit f289ab7893
2 changed files with 59 additions and 60 deletions

View File

@@ -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");