1 module libwasm.bindings.RTCDataChannel;
2 
3 import libwasm.types;
4 
5 import memutils.ct: tuple;
6 import libwasm.bindings.Blob;
7 import libwasm.bindings.EventHandler;
8 import libwasm.bindings.EventTarget;
9 
10 @safe:
11 nothrow:
12 
13 struct RTCDataChannel {
14   nothrow:
15   libwasm.bindings.EventTarget.EventTarget _parent;
16   alias _parent this;
17   this(Handle h) {
18     _parent = .EventTarget(h);
19   }
20   string label()() {
21     return Object_Getter__string(this._parent, "label");
22   }
23   bool reliable()() {
24     return Object_Getter__bool(this._parent, "reliable");
25   }
26   Optional!(ushort) maxPacketLifeTime()() {
27     return RTCDataChannel_maxPacketLifeTime_Get(this._parent);
28   }
29   Optional!(ushort) maxRetransmits()() {
30     return RTCDataChannel_maxRetransmits_Get(this._parent);
31   }
32   RTCDataChannelState readyState()() {
33     return Object_Getter__int(this._parent, "readyState");
34   }
35   uint bufferedAmount()() {
36     return Object_Getter__uint(this._parent, "bufferedAmount");
37   }
38   void bufferedAmountLowThreshold()(uint bufferedAmountLowThreshold) {
39     Object_Call_uint__void(this._parent, "bufferedAmountLowThreshold", bufferedAmountLowThreshold);
40   }
41   uint bufferedAmountLowThreshold()() {
42     return Object_Getter__uint(this._parent, "bufferedAmountLowThreshold");
43   }
44   void onopen(T0)(scope auto ref Optional!(T0) onopen) if (isTOrPointer!(T0, EventHandlerNonNull)) {
45     Object_Call_EventHandler__void(this._parent, "onopen", !onopen.empty, onopen.front);
46   }
47   EventHandler onopen()() {
48     return Object_Getter__EventHandler(this._parent, "onopen");
49   }
50   void onerror(T0)(scope auto ref Optional!(T0) onerror) if (isTOrPointer!(T0, EventHandlerNonNull)) {
51     Object_Call_EventHandler__void(this._parent, "onerror", !onerror.empty, onerror.front);
52   }
53   EventHandler onerror()() {
54     return Object_Getter__EventHandler(this._parent, "onerror");
55   }
56   void onclose(T0)(scope auto ref Optional!(T0) onclose) if (isTOrPointer!(T0, EventHandlerNonNull)) {
57     Object_Call_EventHandler__void(this._parent, "onclose", !onclose.empty, onclose.front);
58   }
59   EventHandler onclose()() {
60     return Object_Getter__EventHandler(this._parent, "onclose");
61   }
62   void close()() {
63     Object_Call__void(this._parent, "close");
64   }
65   void onmessage(T0)(scope auto ref Optional!(T0) onmessage) if (isTOrPointer!(T0, EventHandlerNonNull)) {
66     Object_Call_EventHandler__void(this._parent, "onmessage", !onmessage.empty, onmessage.front);
67   }
68   EventHandler onmessage()() {
69     return Object_Getter__EventHandler(this._parent, "onmessage");
70   }
71   void onbufferedamountlow(T0)(scope auto ref Optional!(T0) onbufferedamountlow) if (isTOrPointer!(T0, EventHandlerNonNull)) {
72     Object_Call_EventHandler__void(this._parent, "onbufferedamountlow", !onbufferedamountlow.empty, onbufferedamountlow.front);
73   }
74   EventHandler onbufferedamountlow()() {
75     return Object_Getter__EventHandler(this._parent, "onbufferedamountlow");
76   }
77   void binaryType()(RTCDataChannelType binaryType) {
78     Object_Call_int__void(this._parent, "binaryType", binaryType);
79   }
80   RTCDataChannelType binaryType()() {
81     return Object_Getter__int(this._parent, "binaryType");
82   }
83   void send()(string data) {
84     Object_Call_string__void(this._parent, "send", data);
85   }
86   void send()(scope ref Blob data) {
87     Object_Call_Handle__void(this._parent, "send", data.handle);
88   }
89   void send()(scope ref ArrayBuffer data) {
90     Object_Call_Handle__void(this._parent, "send", data.handle);
91   }
92   void send()(scope ref ArrayBufferView data) {
93     Object_Call_Handle__void(this._parent, "send", data.handle);
94   }
95   string protocol()() {
96     return Object_Getter__string(this._parent, "protocol");
97   }
98   bool ordered()() {
99     return Object_Getter__bool(this._parent, "ordered");
100   }
101   ushort id()() {
102     return Object_Getter__ushort(this._parent, "id");
103   }
104 }
105 enum RTCDataChannelState {
106   connecting,
107   open,
108   closing,
109   closed
110 }
111 enum RTCDataChannelType {
112   arraybuffer,
113   blob
114 }
115 
116 
117 extern (C) Optional!(ushort) RTCDataChannel_maxPacketLifeTime_Get(Handle);
118 extern (C) Optional!(ushort) RTCDataChannel_maxRetransmits_Get(Handle);