diff options
Diffstat (limited to 'src/server/Message.ts')
-rw-r--r-- | src/server/Message.ts | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/src/server/Message.ts b/src/server/Message.ts index d5b9b4612..15329249d 100644 --- a/src/server/Message.ts +++ b/src/server/Message.ts @@ -1,8 +1,10 @@ import { Utils } from "../Utils"; +import { FIELD_ID, Field } from "../fields/Field"; -export class Message { +export class Message<T> { private name: string; private guid: string; + readonly ArgsCtor: new (...args: any) => T; get Name(): string { return this.name; @@ -12,9 +14,10 @@ export class Message { return this.guid } - constructor(name: string) { + constructor(name: string, ctor: new (...args: any) => T) { this.name = name; this.guid = Utils.GenerateDeterministicGuid(name) + this.ArgsCtor = ctor; } GetValue() { @@ -22,6 +25,32 @@ export class Message { } } +class TestMessageArgs { + hello: string = ""; +} + +export class SetFieldArgs { + field: string; + value: any; + + constructor(f: string, v: any) { + this.field = f + this.value = v + } +} + +export class GetFieldArgs { + field: string; + + constructor(f: string) { + this.field = f + } +} + export namespace MessageStore { - export const Handshake = new Message("Handshake"); + export const Foo = new Message("Foo", String); + export const Bar = new Message("Bar", String); + export const AddDocument = new Message("Add Document", TestMessageArgs); + export const SetField = new Message("Set Field", SetFieldArgs) + export const GetField = new Message("Get Field", GetFieldArgs) }
\ No newline at end of file |