tiny.wayland.Transport
Defined in transport.
API (9)
Actions
Public operations.
Fields and members
Public fields and members.
Source
Source: lib/wayland/src/transport.zig:59
zig
pub const Transport = struct { descriptor: sys.fd.Descriptor, inbox: wayland.stream.Inbox, outbox: wayland.stream.Outbox, pub fn initOwned( session_allocator: std.mem.Allocator, descriptor: sys.fd.Descriptor, capacity: Capacity, ) (sys.fd.FlagError || std.mem.Allocator.Error)!Transport { var storage = Storage.init(session_allocator, capacity) catch |err| { sys.fd.close(descriptor); return err; }; errdefer storage.deinit(); return storage.attach(descriptor); } pub fn deinit(self: *Transport) void { self.inbox.deinit(); self.outbox.deinit(); sys.fd.close(self.descriptor); self.* = undefined; } pub fn queueOwned( self: *Transport, object_id: u32, opcode: u16, payload: []const u8, descriptors: []const sys.fd.Descriptor, ) !void { try self.outbox.queueOwned(object_id, opcode, payload, descriptors); } pub fn flush(self: *Transport) !wayland.stream.FlushStatus { return self.outbox.flush(self.descriptor); } pub fn receive(self: *Transport) !ReceiveStatus { const bytes = try self.inbox.prepareReceive(16 * 1024); var descriptors: [sys.ancillary.maximum_descriptors]sys.fd.Descriptor = undefined; const received = sys.ancillary.receive(self.descriptor, bytes, &descriptors) catch |err| switch (err) { error.WouldBlock => return .pending, else => return err, }; if (received.byte_count == 0) { std.debug.assert(received.descriptor_count == 0); return .closed; } self.inbox.commitReceived( received.byte_count, descriptors[0..received.descriptor_count], ) catch |err| { closeAll(descriptors[0..received.descriptor_count]); return err; }; return .data; } pub fn status(self: *const Transport) Status { const inbound = self.inbox.status(); const outbound = self.outbox.status(); return .{ .inbound_byte_capacity_rejection_count = inbound.inbound_byte_capacity_rejection_count, .inbound_descriptor_capacity_rejection_count = inbound.inbound_descriptor_capacity_rejection_count, .outbound_byte_capacity_rejection_count = outbound.outbound_byte_capacity_rejection_count, .outbound_descriptor_capacity_rejection_count = outbound.outbound_descriptor_capacity_rejection_count, }; }};Source: lib/wayland/src/root.zig:71
zig
pub const Transport = transport.Transport;Audit
| Definitions | 7 |
|---|---|
| Public names | 14 |
| Members | 3 |
| Version | 26.7.0 |
| Revision | daab053ee433 |