summaryrefslogtreecommitdiff
path: root/js/net.ts
diff options
context:
space:
mode:
Diffstat (limited to 'js/net.ts')
-rw-r--r--js/net.ts46
1 files changed, 12 insertions, 34 deletions
diff --git a/js/net.ts b/js/net.ts
index 9c3bfbba5..b478ae613 100644
--- a/js/net.ts
+++ b/js/net.ts
@@ -1,8 +1,9 @@
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
import { EOF, Reader, Writer, Closer } from "./io";
-import { assert, notImplemented } from "./util";
-import { sendSync, sendAsync, msg, flatbuffers } from "./dispatch_flatbuffers";
+import { notImplemented } from "./util";
import { read, write, close } from "./files";
+import * as dispatch from "./dispatch";
+import { sendSync, sendAsync } from "./dispatch_json";
export type Network = "tcp";
// TODO support other types:
@@ -36,10 +37,7 @@ enum ShutdownMode {
}
function shutdown(rid: number, how: ShutdownMode): void {
- const builder = flatbuffers.createBuilder();
- const inner = msg.Shutdown.createShutdown(builder, rid, how);
- const baseRes = sendSync(builder, msg.Any.Shutdown, inner);
- assert(baseRes == null);
+ sendSync(dispatch.OP_SHUTDOWN, { rid, how });
}
class ConnImpl implements Conn {
@@ -80,14 +78,9 @@ class ListenerImpl implements Listener {
constructor(readonly rid: number) {}
async accept(): Promise<Conn> {
- const builder = flatbuffers.createBuilder();
- const inner = msg.Accept.createAccept(builder, this.rid);
- const baseRes = await sendAsync(builder, msg.Any.Accept, inner);
- assert(baseRes != null);
- assert(msg.Any.NewConn === baseRes!.innerType());
- const res = new msg.NewConn();
- assert(baseRes!.inner(res) != null);
- return new ConnImpl(res.rid(), res.remoteAddr()!, res.localAddr()!);
+ const res = await sendAsync(dispatch.OP_ACCEPT, { rid: this.rid });
+ // TODO(bartlomieju): add remoteAddr and localAddr on Rust side
+ return new ConnImpl(res.rid, res.remoteAddr!, res.localAddr!);
}
close(): void {
@@ -143,16 +136,8 @@ export interface Conn extends Reader, Writer, Closer {
* See `dial()` for a description of the network and address parameters.
*/
export function listen(network: Network, address: string): Listener {
- const builder = flatbuffers.createBuilder();
- const network_ = builder.createString(network);
- const address_ = builder.createString(address);
- const inner = msg.Listen.createListen(builder, network_, address_);
- const baseRes = sendSync(builder, msg.Any.Listen, inner);
- assert(baseRes != null);
- assert(msg.Any.ListenRes === baseRes!.innerType());
- const res = new msg.ListenRes();
- assert(baseRes!.inner(res) != null);
- return new ListenerImpl(res.rid());
+ const rid = sendSync(dispatch.OP_LISTEN, { network, address });
+ return new ListenerImpl(rid);
}
/** Dial connects to the address on the named network.
@@ -183,16 +168,9 @@ export function listen(network: Network, address: string): Listener {
* dial("tcp", ":80")
*/
export async function dial(network: Network, address: string): Promise<Conn> {
- const builder = flatbuffers.createBuilder();
- const network_ = builder.createString(network);
- const address_ = builder.createString(address);
- const inner = msg.Dial.createDial(builder, network_, address_);
- const baseRes = await sendAsync(builder, msg.Any.Dial, inner);
- assert(baseRes != null);
- assert(msg.Any.NewConn === baseRes!.innerType());
- const res = new msg.NewConn();
- assert(baseRes!.inner(res) != null);
- return new ConnImpl(res.rid(), res.remoteAddr()!, res.localAddr()!);
+ const res = await sendAsync(dispatch.OP_DIAL, { network, address });
+ // TODO(bartlomieju): add remoteAddr and localAddr on Rust side
+ return new ConnImpl(res.rid, res.remoteAddr!, res.localAddr!);
}
/** **RESERVED** */