aboutsummaryrefslogtreecommitdiff
path: root/src/server/session/utilities/ipc.ts
diff options
context:
space:
mode:
authorBob Zeleznik <zzzman@gmail.com>2020-01-16 07:59:03 -0500
committerBob Zeleznik <zzzman@gmail.com>2020-01-16 07:59:03 -0500
commitc919514f854db67be96ec0f0283bdce635d53571 (patch)
tree4f10ee00dc2fa66fe5ec9ff84e8750d2cf815fd7 /src/server/session/utilities/ipc.ts
parent2bc808135edfc0df1f80c8c52b1015daddf0aecc (diff)
parent380215f0b934eba265a6b97ab2edc502fd71818a (diff)
Merge branch 'master' of https://github.com/browngraphicslab/Dash-Web
Diffstat (limited to 'src/server/session/utilities/ipc.ts')
-rw-r--r--src/server/session/utilities/ipc.ts52
1 files changed, 0 insertions, 52 deletions
diff --git a/src/server/session/utilities/ipc.ts b/src/server/session/utilities/ipc.ts
deleted file mode 100644
index b20f3d337..000000000
--- a/src/server/session/utilities/ipc.ts
+++ /dev/null
@@ -1,52 +0,0 @@
-import { isMaster } from "cluster";
-import { Utils } from "../../../Utils";
-
-export namespace IPC {
-
- export const suffix = isMaster ? Utils.GenerateGuid() : process.env.ipc_suffix;
- const ipc_id = `ipc_id_${suffix}`;
- const response_expected = `response_expected_${suffix}`;
- const is_response = `is_response_${suffix}`;
-
- export async function dispatchMessage(target: NodeJS.EventEmitter & { send?: Function }, message: any, expectResponse = false): Promise<Error | undefined> {
- if (!target.send) {
- return new Error("Cannot dispatch when send is undefined.");
- }
- message[response_expected] = expectResponse;
- if (expectResponse) {
- return new Promise(resolve => {
- const messageId = Utils.GenerateGuid();
- message[ipc_id] = messageId;
- const responseHandler: (args: any) => void = response => {
- const { error } = response;
- if (response[is_response] && response[ipc_id] === messageId) {
- target.removeListener("message", responseHandler);
- resolve(error);
- }
- };
- target.addListener("message", responseHandler);
- target.send!(message);
- });
- } else {
- target.send(message);
- }
- }
-
- export function addMessagesHandler(target: NodeJS.EventEmitter & { send?: Function }, handler: (message: any) => void | Promise<void>): void {
- target.addListener("message", async incoming => {
- let error: Error | undefined;
- try {
- await handler(incoming);
- } catch (e) {
- error = e;
- }
- if (incoming[response_expected] && target.send) {
- const response: any = { error };
- response[ipc_id] = incoming[ipc_id];
- response[is_response] = true;
- target.send(response);
- }
- });
- }
-
-} \ No newline at end of file