1 module libwasm.bindings.WebSocket; 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 enum BinaryType { 14 blob, 15 arraybuffer 16 } 17 struct WebSocket { 18 nothrow: 19 libwasm.bindings.EventTarget.EventTarget _parent; 20 alias _parent this; 21 this(Handle h) { 22 _parent = .EventTarget(h); 23 } 24 string url()() { 25 return Object_Getter__string(this._parent, "url"); 26 } 27 enum ushort CONNECTING = 0; 28 enum ushort OPEN = 1; 29 enum ushort CLOSING = 2; 30 enum ushort CLOSED = 3; 31 ushort readyState()() { 32 return Object_Getter__ushort(this._parent, "readyState"); 33 } 34 uint bufferedAmount()() { 35 return Object_Getter__uint(this._parent, "bufferedAmount"); 36 } 37 void onopen(T0)(scope auto ref Optional!(T0) onopen) if (isTOrPointer!(T0, EventHandlerNonNull)) { 38 Object_Call_EventHandler__void(this._parent, "onopen", !onopen.empty, onopen.front); 39 } 40 EventHandler onopen()() { 41 return Object_Getter__EventHandler(this._parent, "onopen"); 42 } 43 void onerror(T0)(scope auto ref Optional!(T0) onerror) if (isTOrPointer!(T0, EventHandlerNonNull)) { 44 Object_Call_EventHandler__void(this._parent, "onerror", !onerror.empty, onerror.front); 45 } 46 EventHandler onerror()() { 47 return Object_Getter__EventHandler(this._parent, "onerror"); 48 } 49 void onclose(T0)(scope auto ref Optional!(T0) onclose) if (isTOrPointer!(T0, EventHandlerNonNull)) { 50 Object_Call_EventHandler__void(this._parent, "onclose", !onclose.empty, onclose.front); 51 } 52 EventHandler onclose()() { 53 return Object_Getter__EventHandler(this._parent, "onclose"); 54 } 55 string extensions()() { 56 return Object_Getter__string(this._parent, "extensions"); 57 } 58 string protocol()() { 59 return Object_Getter__string(this._parent, "protocol"); 60 } 61 void close()(ushort code, string reason) { 62 Serialize_Object_VarArgCall!void(this._parent, "close", "ushort;string", tuple(code, reason)); 63 } 64 void close()(ushort code) { 65 Serialize_Object_VarArgCall!void(this._parent, "close", "ushort", tuple(code)); 66 } 67 void close()() { 68 Object_Call__void(this._parent, "close"); 69 } 70 void onmessage(T0)(scope auto ref Optional!(T0) onmessage) if (isTOrPointer!(T0, EventHandlerNonNull)) { 71 Object_Call_EventHandler__void(this._parent, "onmessage", !onmessage.empty, onmessage.front); 72 } 73 EventHandler onmessage()() { 74 return Object_Getter__EventHandler(this._parent, "onmessage"); 75 } 76 void binaryType()(BinaryType binaryType) { 77 Object_Call_int__void(this._parent, "binaryType", binaryType); 78 } 79 BinaryType binaryType()() { 80 return Object_Getter__int(this._parent, "binaryType"); 81 } 82 void send()(string data) { 83 Object_Call_string__void(this._parent, "send", data); 84 } 85 void send()(scope ref Blob data) { 86 Object_Call_Handle__void(this._parent, "send", data.handle); 87 } 88 void send()(scope ref ArrayBuffer data) { 89 Object_Call_Handle__void(this._parent, "send", data.handle); 90 } 91 void send()(scope ref ArrayBufferView data) { 92 Object_Call_Handle__void(this._parent, "send", data.handle); 93 } 94 auto createServerWebSocket()(string url, scope ref Sequence!(string) protocols, scope ref nsITransportProvider transportProvider, string negotiatedExtensions) { 95 return WebSocket(Serialize_Object_VarArgCall!Handle(this._parent, "createServerWebSocket", "string;Handle;Handle;string", tuple(url, cast(Handle)protocols.handle, cast(Handle)transportProvider.handle, negotiatedExtensions))); 96 } 97 } 98 99