Skip to documentation
SLOP

tiny.wayland.Transport

Reference tiny.wayland Transport

Defined in transport.

API (9)

Actions

Public operations.

Fields and members

Public fields and members.

No direct callersNo direct callstransportTransport
Static calls · unresolved targets: unknown · external targets: unknown.

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;
Called byCallstest sourcelib.wayland.src.testtest: interleaved requests preserve d...test sourcelib.wayland.src.transporttest: inbound byte max plus one prese...test sourcelib.wayland.src.transporttest: inbound descriptor max plus one...test sourcelib.wayland.src.transporttest: owned descriptor closes when in...test sourcelib.wayland.src.transporttest: received descriptors queue inde...test sourcelib.wayland.src.transporttest: transport preserves descriptor ...transport.Storageattachtransport.Storagedeinittransport.StorageinitTransportinitOwned
Static calls · unresolved targets: 1 · external targets: 0.
Called byCallsNo direct callersprivate sourcelib.wayland.src.transportcloseAllTransportreceive
Static calls · unresolved targets: 0 · external targets: 3.

Audit

Definitions7
Public names14
Members3
Version26.7.0
Revisiondaab053ee433