mirror of
https://github.com/denoland/deno.git
synced 2025-07-29 16:13:54 +00:00
Remove dispatch.ts and move assignCmdId to util.ts
This commit is contained in:
parent
df8208557d
commit
421358e7a9
4 changed files with 9 additions and 39 deletions
1
BUILD.gn
1
BUILD.gn
|
@ -206,7 +206,6 @@ run_node("bundle") {
|
||||||
"js/assets.ts",
|
"js/assets.ts",
|
||||||
"js/console.ts",
|
"js/console.ts",
|
||||||
"js/deno.d.ts",
|
"js/deno.d.ts",
|
||||||
"js/dispatch.ts",
|
|
||||||
"js/globals.ts",
|
"js/globals.ts",
|
||||||
"js/lib.deno.d.ts",
|
"js/lib.deno.d.ts",
|
||||||
"js/main.ts",
|
"js/main.ts",
|
||||||
|
|
|
@ -1,29 +0,0 @@
|
||||||
// Copyright 2018 the Deno authors. All rights reserved. MIT license.
|
|
||||||
import { typedArrayToArrayBuffer } from "./util";
|
|
||||||
import { deno as fbs } from "./msg_generated";
|
|
||||||
|
|
||||||
export type MessageCallback = (msg: Uint8Array) => void;
|
|
||||||
//type MessageStructCallback = (msg: pb.IMsg) => void;
|
|
||||||
|
|
||||||
const channels = new Map<string, MessageCallback[]>();
|
|
||||||
|
|
||||||
export function sub(channel: string, cb: MessageCallback): void {
|
|
||||||
let subscribers = channels.get(channel);
|
|
||||||
if (!subscribers) {
|
|
||||||
subscribers = [];
|
|
||||||
channels.set(channel, subscribers);
|
|
||||||
}
|
|
||||||
subscribers.push(cb);
|
|
||||||
}
|
|
||||||
|
|
||||||
deno.recv((channel: string, ab: ArrayBuffer) => {
|
|
||||||
const subscribers = channels.get(channel);
|
|
||||||
if (subscribers == null) {
|
|
||||||
throw Error(`No subscribers for channel "${channel}".`);
|
|
||||||
}
|
|
||||||
|
|
||||||
const ui8 = new Uint8Array(ab);
|
|
||||||
for (const subscriber of subscribers) {
|
|
||||||
subscriber(ui8);
|
|
||||||
}
|
|
||||||
});
|
|
10
js/main.ts
10
js/main.ts
|
@ -3,17 +3,9 @@
|
||||||
/// <reference path="deno.d.ts" />
|
/// <reference path="deno.d.ts" />
|
||||||
import { flatbuffers } from "flatbuffers";
|
import { flatbuffers } from "flatbuffers";
|
||||||
import { deno as fbs } from "gen/msg_generated";
|
import { deno as fbs } from "gen/msg_generated";
|
||||||
import { assert, log } from "./util";
|
import { assert, log, assignCmdId } from "./util";
|
||||||
import * as runtime from "./runtime";
|
import * as runtime from "./runtime";
|
||||||
|
|
||||||
let cmdIdCounter = 0;
|
|
||||||
function assignCmdId(): number {
|
|
||||||
// TODO(piscisaureus) Safely re-use so they don't overflow.
|
|
||||||
const cmdId = ++cmdIdCounter;
|
|
||||||
assert(cmdId < 2 ** 32, "cmdId overflow");
|
|
||||||
return cmdId;
|
|
||||||
}
|
|
||||||
|
|
||||||
function startMsg(cmdId: number): Uint8Array {
|
function startMsg(cmdId: number): Uint8Array {
|
||||||
const builder = new flatbuffers.Builder();
|
const builder = new flatbuffers.Builder();
|
||||||
fbs.Start.startStart(builder);
|
fbs.Start.startStart(builder);
|
||||||
|
|
|
@ -20,6 +20,14 @@ export function assert(cond: boolean, msg = "assert") {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let cmdIdCounter = 0;
|
||||||
|
export function assignCmdId(): number {
|
||||||
|
// TODO(piscisaureus) Safely re-use so they don't overflow.
|
||||||
|
const cmdId = ++cmdIdCounter;
|
||||||
|
assert(cmdId < 2 ** 32, "cmdId overflow");
|
||||||
|
return cmdId;
|
||||||
|
}
|
||||||
|
|
||||||
export function typedArrayToArrayBuffer(ta: TypedArray): ArrayBuffer {
|
export function typedArrayToArrayBuffer(ta: TypedArray): ArrayBuffer {
|
||||||
const ab = ta.buffer.slice(ta.byteOffset, ta.byteOffset + ta.byteLength);
|
const ab = ta.buffer.slice(ta.byteOffset, ta.byteOffset + ta.byteLength);
|
||||||
return ab as ArrayBuffer;
|
return ab as ArrayBuffer;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue