@bytecodealliance/preview2-shim 0.17.7 → 0.17.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -18
- package/lib/browser/cli.js +71 -71
- package/lib/browser/clocks.js +34 -30
- package/lib/browser/config.js +3 -3
- package/lib/browser/environment.js +15 -15
- package/lib/browser/filesystem.js +382 -396
- package/lib/browser/http.js +683 -144
- package/lib/browser/index.js +7 -7
- package/lib/browser/io.js +199 -133
- package/lib/browser/random.js +42 -44
- package/lib/browser/sockets.js +52 -52
- package/lib/common/instantiation.js +147 -151
- package/lib/io/calls.js +7 -9
- package/lib/io/worker-http.js +167 -178
- package/lib/io/worker-io.js +338 -406
- package/lib/io/worker-socket-tcp.js +259 -271
- package/lib/io/worker-socket-udp.js +437 -491
- package/lib/io/worker-sockets.js +230 -251
- package/lib/io/worker-thread.js +774 -822
- package/lib/nodejs/cli.js +53 -65
- package/lib/nodejs/clocks.js +49 -52
- package/lib/nodejs/filesystem.js +726 -785
- package/lib/nodejs/http.js +651 -697
- package/lib/nodejs/index.js +7 -7
- package/lib/nodejs/io.js +1 -1
- package/lib/nodejs/random.js +32 -32
- package/lib/nodejs/sockets.js +468 -538
- package/lib/synckit/index.js +85 -94
- package/package.json +11 -10
package/lib/browser/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import * as clocks from
|
|
2
|
-
import * as filesystem from
|
|
3
|
-
import * as http from
|
|
4
|
-
import * as io from
|
|
5
|
-
import * as random from
|
|
6
|
-
import * as sockets from
|
|
7
|
-
import * as cli from
|
|
1
|
+
import * as clocks from "./clocks.js";
|
|
2
|
+
import * as filesystem from "./filesystem.js";
|
|
3
|
+
import * as http from "./http.js";
|
|
4
|
+
import * as io from "./io.js";
|
|
5
|
+
import * as random from "./random.js";
|
|
6
|
+
import * as sockets from "./sockets.js";
|
|
7
|
+
import * as cli from "./cli.js";
|
|
8
8
|
|
|
9
9
|
export { clocks, filesystem, http, io, random, sockets, cli };
|
package/lib/browser/io.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
let id = 0;
|
|
2
2
|
|
|
3
|
-
const symbolDispose = Symbol.dispose || Symbol.for(
|
|
3
|
+
const symbolDispose = Symbol.dispose || Symbol.for("dispose");
|
|
4
4
|
|
|
5
5
|
const IoError = class Error {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
constructor(msg) {
|
|
7
|
+
this.msg = msg;
|
|
8
|
+
}
|
|
9
|
+
toDebugString() {
|
|
10
|
+
return this.msg;
|
|
11
|
+
}
|
|
12
12
|
};
|
|
13
13
|
|
|
14
14
|
/**
|
|
@@ -40,157 +40,223 @@ const IoError = class Error {
|
|
|
40
40
|
**/
|
|
41
41
|
|
|
42
42
|
class InputStream {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
this.id = ++id;
|
|
51
|
-
this.handler = handler;
|
|
43
|
+
/**
|
|
44
|
+
* @param {InputStreamHandler} handler
|
|
45
|
+
*/
|
|
46
|
+
constructor(handler) {
|
|
47
|
+
if (!handler) {
|
|
48
|
+
console.trace("no handler");
|
|
52
49
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
50
|
+
this.id = ++id;
|
|
51
|
+
this.handler = handler;
|
|
52
|
+
}
|
|
53
|
+
read(len) {
|
|
54
|
+
if (this.handler.read) {
|
|
55
|
+
return this.handler.read(len);
|
|
58
56
|
}
|
|
59
|
-
blockingRead(len)
|
|
60
|
-
|
|
57
|
+
return this.handler.blockingRead.call(this, len);
|
|
58
|
+
}
|
|
59
|
+
blockingRead(len) {
|
|
60
|
+
return this.handler.blockingRead.call(this, len);
|
|
61
|
+
}
|
|
62
|
+
skip(len) {
|
|
63
|
+
if (this.handler.skip) {
|
|
64
|
+
return this.handler.skip.call(this, len);
|
|
61
65
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
66
|
-
if (this.handler.read) {
|
|
67
|
-
const bytes = this.handler.read.call(this, len);
|
|
68
|
-
return BigInt(bytes.byteLength);
|
|
69
|
-
}
|
|
70
|
-
return this.blockingSkip.call(this, len);
|
|
66
|
+
if (this.handler.read) {
|
|
67
|
+
const bytes = this.handler.read.call(this, len);
|
|
68
|
+
return BigInt(bytes.byteLength);
|
|
71
69
|
}
|
|
72
|
-
blockingSkip(len)
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
return BigInt(bytes.byteLength);
|
|
70
|
+
return this.blockingSkip.call(this, len);
|
|
71
|
+
}
|
|
72
|
+
blockingSkip(len) {
|
|
73
|
+
if (this.handler.blockingSkip) {
|
|
74
|
+
return this.handler.blockingSkip.call(this, len);
|
|
78
75
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
76
|
+
const bytes = this.handler.blockingRead.call(this, len);
|
|
77
|
+
return BigInt(bytes.byteLength);
|
|
78
|
+
}
|
|
79
|
+
subscribe() {
|
|
80
|
+
if (this.handler.subscribe) {
|
|
81
|
+
return this.handler.subscribe();
|
|
82
82
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
83
|
+
return new Pollable();
|
|
84
|
+
}
|
|
85
|
+
[symbolDispose]() {
|
|
86
|
+
if (this.handler.drop) {
|
|
87
|
+
this.handler.drop.call(this);
|
|
87
88
|
}
|
|
89
|
+
}
|
|
88
90
|
}
|
|
89
91
|
|
|
90
92
|
class OutputStream {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
}
|
|
98
|
-
this.id = ++id;
|
|
99
|
-
this.open = true;
|
|
100
|
-
this.handler = handler;
|
|
101
|
-
}
|
|
102
|
-
checkWrite(len) {
|
|
103
|
-
if (!this.open) {
|
|
104
|
-
return 0n;
|
|
105
|
-
}
|
|
106
|
-
if (this.handler.checkWrite) {
|
|
107
|
-
return this.handler.checkWrite.call(this, len);
|
|
108
|
-
}
|
|
109
|
-
return 1_000_000n;
|
|
93
|
+
/**
|
|
94
|
+
* @param {OutputStreamHandler} handler
|
|
95
|
+
*/
|
|
96
|
+
constructor(handler) {
|
|
97
|
+
if (!handler) {
|
|
98
|
+
console.trace("no handler");
|
|
110
99
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
/// This is a convenience wrapper around the use of `check-write`,
|
|
119
|
-
/// `subscribe`, `write`, and `flush`, and is implemented with the
|
|
120
|
-
/// following pseudo-code:
|
|
121
|
-
///
|
|
122
|
-
/// ```text
|
|
123
|
-
/// let pollable = this.subscribe();
|
|
124
|
-
/// while !contents.is_empty() {
|
|
125
|
-
/// // Wait for the stream to become writable
|
|
126
|
-
/// poll-one(pollable);
|
|
127
|
-
/// let Ok(n) = this.check-write(); // eliding error handling
|
|
128
|
-
/// let len = min(n, contents.len());
|
|
129
|
-
/// let (chunk, rest) = contents.split_at(len);
|
|
130
|
-
/// this.write(chunk ); // eliding error handling
|
|
131
|
-
/// contents = rest;
|
|
132
|
-
/// }
|
|
133
|
-
/// this.flush();
|
|
134
|
-
/// // Wait for completion of `flush`
|
|
135
|
-
/// poll-one(pollable);
|
|
136
|
-
/// // Check for any errors that arose during `flush`
|
|
137
|
-
/// let _ = this.check-write(); // eliding error handling
|
|
138
|
-
/// ```
|
|
139
|
-
this.handler.write.call(this, buf);
|
|
140
|
-
}
|
|
141
|
-
flush() {
|
|
142
|
-
if (this.handler.flush) {
|
|
143
|
-
this.handler.flush.call(this);
|
|
144
|
-
}
|
|
100
|
+
this.id = ++id;
|
|
101
|
+
this.open = true;
|
|
102
|
+
this.handler = handler;
|
|
103
|
+
}
|
|
104
|
+
checkWrite(len) {
|
|
105
|
+
if (!this.open) {
|
|
106
|
+
return 0n;
|
|
145
107
|
}
|
|
146
|
-
|
|
147
|
-
|
|
108
|
+
if (this.handler.checkWrite) {
|
|
109
|
+
return this.handler.checkWrite.call(this, len);
|
|
148
110
|
}
|
|
149
|
-
|
|
150
|
-
|
|
111
|
+
return 1_000_000n;
|
|
112
|
+
}
|
|
113
|
+
write(buf) {
|
|
114
|
+
this.handler.write.call(this, buf);
|
|
115
|
+
}
|
|
116
|
+
blockingWriteAndFlush(buf) {
|
|
117
|
+
/// Perform a write of up to 4096 bytes, and then flush the stream. Block
|
|
118
|
+
/// until all of these operations are complete, or an error occurs.
|
|
119
|
+
///
|
|
120
|
+
/// This is a convenience wrapper around the use of `check-write`,
|
|
121
|
+
/// `subscribe`, `write`, and `flush`, and is implemented with the
|
|
122
|
+
/// following pseudo-code:
|
|
123
|
+
///
|
|
124
|
+
/// ```text
|
|
125
|
+
/// let pollable = this.subscribe();
|
|
126
|
+
/// while !contents.is_empty() {
|
|
127
|
+
/// // Wait for the stream to become writable
|
|
128
|
+
/// poll-one(pollable);
|
|
129
|
+
/// let Ok(n) = this.check-write(); // eliding error handling
|
|
130
|
+
/// let len = min(n, contents.len());
|
|
131
|
+
/// let (chunk, rest) = contents.split_at(len);
|
|
132
|
+
/// this.write(chunk ); // eliding error handling
|
|
133
|
+
/// contents = rest;
|
|
134
|
+
/// }
|
|
135
|
+
/// this.flush();
|
|
136
|
+
/// // Wait for completion of `flush`
|
|
137
|
+
/// poll-one(pollable);
|
|
138
|
+
/// // Check for any errors that arose during `flush`
|
|
139
|
+
/// let _ = this.check-write(); // eliding error handling
|
|
140
|
+
/// ```
|
|
141
|
+
this.handler.write.call(this, buf);
|
|
142
|
+
}
|
|
143
|
+
flush() {
|
|
144
|
+
if (this.handler.flush) {
|
|
145
|
+
this.handler.flush.call(this);
|
|
151
146
|
}
|
|
152
|
-
|
|
153
|
-
|
|
147
|
+
}
|
|
148
|
+
blockingFlush() {
|
|
149
|
+
this.open = true;
|
|
150
|
+
}
|
|
151
|
+
writeZeroes(len) {
|
|
152
|
+
this.write.call(this, new Uint8Array(Number(len)));
|
|
153
|
+
}
|
|
154
|
+
blockingWriteZeroes(len) {
|
|
155
|
+
this.blockingWrite.call(this, new Uint8Array(Number(len)));
|
|
156
|
+
}
|
|
157
|
+
blockingWriteZeroesAndFlush(len) {
|
|
158
|
+
this.blockingWriteAndFlush.call(this, new Uint8Array(Number(len)));
|
|
159
|
+
}
|
|
160
|
+
splice(src, len) {
|
|
161
|
+
const spliceLen = Math.min(len, this.checkWrite.call(this));
|
|
162
|
+
const bytes = src.read(spliceLen);
|
|
163
|
+
this.write.call(this, bytes);
|
|
164
|
+
return bytes.byteLength;
|
|
165
|
+
}
|
|
166
|
+
blockingSplice(_src, _len) {
|
|
167
|
+
console.log(`[streams] Blocking splice ${this.id}`);
|
|
168
|
+
}
|
|
169
|
+
forward(_src) {
|
|
170
|
+
console.log(`[streams] Forward ${this.id}`);
|
|
171
|
+
}
|
|
172
|
+
subscribe() {
|
|
173
|
+
if (this.handler.subscribe) {
|
|
174
|
+
return this.handler.subscribe();
|
|
154
175
|
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
splice(src, len) {
|
|
159
|
-
const spliceLen = Math.min(len, this.checkWrite.call(this));
|
|
160
|
-
const bytes = src.read(spliceLen);
|
|
161
|
-
this.write.call(this, bytes);
|
|
162
|
-
return bytes.byteLength;
|
|
163
|
-
}
|
|
164
|
-
blockingSplice(_src, _len) {
|
|
165
|
-
console.log(`[streams] Blocking splice ${this.id}`);
|
|
166
|
-
}
|
|
167
|
-
forward(_src) {
|
|
168
|
-
console.log(`[streams] Forward ${this.id}`);
|
|
169
|
-
}
|
|
170
|
-
subscribe() {
|
|
171
|
-
console.log(`[streams] Subscribe to output stream ${this.id}`);
|
|
172
|
-
return new Pollable();
|
|
173
|
-
}
|
|
174
|
-
[symbolDispose]() {}
|
|
176
|
+
return new Pollable();
|
|
177
|
+
}
|
|
178
|
+
[symbolDispose]() {}
|
|
175
179
|
}
|
|
176
180
|
|
|
177
181
|
export const error = { Error: IoError };
|
|
178
182
|
|
|
179
183
|
export const streams = { InputStream, OutputStream };
|
|
180
184
|
|
|
181
|
-
class Pollable {
|
|
185
|
+
class Pollable {
|
|
186
|
+
#ready = false;
|
|
187
|
+
#promise = null;
|
|
188
|
+
|
|
189
|
+
constructor(promise) {
|
|
190
|
+
if (!promise) {
|
|
191
|
+
this.#ready = true;
|
|
192
|
+
} else {
|
|
193
|
+
this.#promise = promise.then(
|
|
194
|
+
() => {
|
|
195
|
+
this.#ready = true;
|
|
196
|
+
},
|
|
197
|
+
() => {
|
|
198
|
+
this.#ready = true;
|
|
199
|
+
},
|
|
200
|
+
);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
ready() {
|
|
205
|
+
return this.#ready;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
block() {
|
|
209
|
+
if (this.#ready) {
|
|
210
|
+
return Promise.resolve();
|
|
211
|
+
}
|
|
212
|
+
return this.#promise;
|
|
213
|
+
}
|
|
182
214
|
|
|
183
|
-
|
|
184
|
-
|
|
215
|
+
[symbolDispose]() {
|
|
216
|
+
this.#promise = null;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
function pollList(list) {
|
|
221
|
+
if (list.length === 0) {
|
|
222
|
+
throw new Error("poll list must not be empty");
|
|
223
|
+
}
|
|
224
|
+
if (list.length > 0xffffffff) {
|
|
225
|
+
throw new Error("poll list length exceeds u32 index range");
|
|
226
|
+
}
|
|
227
|
+
const ready = [];
|
|
228
|
+
for (let i = 0; i < list.length; i++) {
|
|
229
|
+
if (list[i].ready()) {
|
|
230
|
+
ready.push(i);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
if (ready.length > 0) {
|
|
234
|
+
return new Uint32Array(ready);
|
|
235
|
+
}
|
|
236
|
+
// None ready synchronously. Wait for the first to resolve via Promise.race,
|
|
237
|
+
// then sweep for any others that became ready concurrently.
|
|
238
|
+
return Promise.race(
|
|
239
|
+
list.map((p, i) =>
|
|
240
|
+
p.block().then(() => {
|
|
241
|
+
const result = [i];
|
|
242
|
+
for (let j = 0; j < list.length; j++) {
|
|
243
|
+
if (j !== i && list[j].ready()) {
|
|
244
|
+
result.push(j);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
return new Uint32Array(result);
|
|
248
|
+
}),
|
|
249
|
+
),
|
|
250
|
+
);
|
|
185
251
|
}
|
|
186
252
|
|
|
187
|
-
function pollOne(
|
|
188
|
-
|
|
253
|
+
function pollOne(poll) {
|
|
254
|
+
return poll.block();
|
|
189
255
|
}
|
|
190
256
|
|
|
191
257
|
export const poll = {
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
258
|
+
Pollable,
|
|
259
|
+
pollList,
|
|
260
|
+
pollOne,
|
|
261
|
+
poll: pollList,
|
|
196
262
|
};
|
package/lib/browser/random.js
CHANGED
|
@@ -3,56 +3,54 @@ const MAX_BYTES = 65536;
|
|
|
3
3
|
let insecureRandomValue1, insecureRandomValue2;
|
|
4
4
|
|
|
5
5
|
export const insecure = {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
getInsecureRandomBytes(len) {
|
|
7
|
+
return random.getRandomBytes(len);
|
|
8
|
+
},
|
|
9
|
+
getInsecureRandomU64() {
|
|
10
|
+
return random.getRandomU64();
|
|
11
|
+
},
|
|
12
12
|
};
|
|
13
13
|
|
|
14
14
|
let insecureSeedValue1, insecureSeedValue2;
|
|
15
15
|
|
|
16
16
|
export const insecureSeed = {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
17
|
+
insecureSeed() {
|
|
18
|
+
if (insecureSeedValue1 === undefined) {
|
|
19
|
+
insecureSeedValue1 = random.getRandomU64();
|
|
20
|
+
insecureSeedValue2 = random.getRandomU64();
|
|
21
|
+
}
|
|
22
|
+
return [insecureSeedValue1, insecureSeedValue2];
|
|
23
|
+
},
|
|
24
24
|
};
|
|
25
25
|
|
|
26
26
|
export const random = {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
return [insecureRandomValue1, insecureRandomValue2];
|
|
57
|
-
},
|
|
27
|
+
getRandomBytes(len) {
|
|
28
|
+
const bytes = new Uint8Array(Number(len));
|
|
29
|
+
|
|
30
|
+
if (len > MAX_BYTES) {
|
|
31
|
+
// this is the max bytes crypto.getRandomValues
|
|
32
|
+
// can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
|
|
33
|
+
for (var generated = 0; generated < len; generated += MAX_BYTES) {
|
|
34
|
+
// buffer.slice automatically checks if the end is past the end of
|
|
35
|
+
// the buffer so we don't have to here
|
|
36
|
+
crypto.getRandomValues(bytes.subarray(generated, generated + MAX_BYTES));
|
|
37
|
+
}
|
|
38
|
+
} else {
|
|
39
|
+
crypto.getRandomValues(bytes);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return bytes;
|
|
43
|
+
},
|
|
44
|
+
|
|
45
|
+
getRandomU64() {
|
|
46
|
+
return crypto.getRandomValues(new BigUint64Array(1))[0];
|
|
47
|
+
},
|
|
48
|
+
|
|
49
|
+
insecureRandom() {
|
|
50
|
+
if (insecureRandomValue1 === undefined) {
|
|
51
|
+
insecureRandomValue1 = random.getRandomU64();
|
|
52
|
+
insecureRandomValue2 = random.getRandomU64();
|
|
53
|
+
}
|
|
54
|
+
return [insecureRandomValue1, insecureRandomValue2];
|
|
55
|
+
},
|
|
58
56
|
};
|
package/lib/browser/sockets.js
CHANGED
|
@@ -1,88 +1,88 @@
|
|
|
1
1
|
export const instanceNetwork = {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
instanceNetwork() {
|
|
3
|
+
console.log(`[sockets] instance network`);
|
|
4
|
+
},
|
|
5
5
|
};
|
|
6
6
|
|
|
7
7
|
export const ipNameLookup = {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
dropResolveAddressStream() {},
|
|
9
|
+
subscribe() {},
|
|
10
|
+
resolveAddresses() {},
|
|
11
|
+
resolveNextAddress() {},
|
|
12
|
+
nonBlocking() {},
|
|
13
|
+
setNonBlocking() {},
|
|
14
14
|
};
|
|
15
15
|
|
|
16
16
|
export const network = {
|
|
17
|
-
|
|
17
|
+
dropNetwork() {},
|
|
18
18
|
};
|
|
19
19
|
|
|
20
20
|
export const tcpCreateSocket = {
|
|
21
|
-
|
|
21
|
+
createTcpSocket() {},
|
|
22
22
|
};
|
|
23
23
|
|
|
24
24
|
export const tcp = {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
25
|
+
subscribe() {},
|
|
26
|
+
dropTcpSocket() {},
|
|
27
|
+
bind() {},
|
|
28
|
+
connect() {},
|
|
29
|
+
listen() {},
|
|
30
|
+
accept() {},
|
|
31
|
+
localAddress() {},
|
|
32
|
+
remoteAddress() {},
|
|
33
|
+
addressFamily() {},
|
|
34
|
+
setListenBacklogSize() {},
|
|
35
|
+
keepAlive() {},
|
|
36
|
+
setKeepAlive() {},
|
|
37
|
+
noDelay() {},
|
|
38
|
+
setNoDelay() {},
|
|
39
|
+
unicastHopLimit() {},
|
|
40
|
+
setUnicastHopLimit() {},
|
|
41
|
+
receiveBufferSize() {},
|
|
42
|
+
setReceiveBufferSize() {},
|
|
43
|
+
sendBufferSize() {},
|
|
44
|
+
setSendBufferSize() {},
|
|
45
|
+
nonBlocking() {},
|
|
46
|
+
setNonBlocking() {},
|
|
47
|
+
shutdown() {},
|
|
48
48
|
};
|
|
49
49
|
|
|
50
50
|
export const udp = {
|
|
51
|
-
|
|
51
|
+
subscribe() {},
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
dropUdpSocket() {},
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
bind() {},
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
connect() {},
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
receive() {},
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
send() {},
|
|
62
62
|
|
|
63
|
-
|
|
63
|
+
localAddress() {},
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
remoteAddress() {},
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
addressFamily() {},
|
|
68
68
|
|
|
69
|
-
|
|
69
|
+
unicastHopLimit() {},
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
setUnicastHopLimit() {},
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
receiveBufferSize() {},
|
|
74
74
|
|
|
75
|
-
|
|
75
|
+
setReceiveBufferSize() {},
|
|
76
76
|
|
|
77
|
-
|
|
77
|
+
sendBufferSize() {},
|
|
78
78
|
|
|
79
|
-
|
|
79
|
+
setSendBufferSize() {},
|
|
80
80
|
|
|
81
|
-
|
|
81
|
+
nonBlocking() {},
|
|
82
82
|
|
|
83
|
-
|
|
83
|
+
setNonBlocking() {},
|
|
84
84
|
};
|
|
85
85
|
|
|
86
86
|
export const udpCreateSocket = {
|
|
87
|
-
|
|
87
|
+
createUdpSocket() {},
|
|
88
88
|
};
|