summaryrefslogtreecommitdiff
path: root/src/server/Client.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/Client.zig')
-rw-r--r--src/server/Client.zig26
1 files changed, 19 insertions, 7 deletions
diff --git a/src/server/Client.zig b/src/server/Client.zig
index 53a66b9..2827b6a 100644
--- a/src/server/Client.zig
+++ b/src/server/Client.zig
@@ -1,5 +1,6 @@
const Message = @import("message_parser.zig").Message;
const std = @import("std");
+const HotMessageManager = @import("message_parser.zig").HotMessageManager;
const Client = @This();
@@ -26,7 +27,7 @@ pub fn init(
}
pub fn deinit(self: *Client, alloc: std.mem.Allocator) void {
- if (self.connect) |c| {
+ if (self.connect) |*c| {
c.deinit(alloc);
}
self.* = undefined;
@@ -41,13 +42,20 @@ pub fn start(self: *Client, io: std.Io, alloc: std.mem.Allocator) !void {
for (0..len) |i| {
const msg = msgs[i];
defer switch (msg) {
- .msg => |m| m.deinit(alloc),
- .hmsg => |h| h.deinit(alloc),
+ .msg => {
+ msg.msg.deinit(alloc);
+ },
+ .hmsg => {
+ msg.hmsg.msg.deinit(alloc);
+ },
else => {},
};
errdefer for (msgs[i + 1 .. len]) |mg| switch (mg) {
- .msg => |m| {
- m.deinit(alloc);
+ .msg => {
+ mg.msg.deinit(alloc);
+ },
+ .hmsg => {
+ mg.hmsg.msg.deinit(alloc);
},
else => {},
};
@@ -103,8 +111,12 @@ pub fn send(self: *Client, io: std.Io, msg: Message) !void {
try self.recv_queue.putOne(io, msg);
}
-pub fn next(self: *Client, allocator: std.mem.Allocator) !Message {
- return Message.next(allocator, self.from_client);
+pub fn next(
+ self: *Client,
+ allocator: std.mem.Allocator,
+ hot_msg_manager: *HotMessageManager,
+) !Message {
+ return Message.next(allocator, self.from_client, hot_msg_manager);
}
test {