From 243b8ed24c2bd28cd8c8ecfd83d254a05002e87e Mon Sep 17 00:00:00 2001 From: Sam Rang Date: Tue, 12 Apr 2016 06:56:34 -0500 Subject: [PATCH] successfully serializing 1 module, still problem with serializing multiple --- config-serializer/config-items/Module.ts | 49 +++++++++++++++++++ config-serializer/config-items/Modules.ts | 11 +++++ .../config-items/config-items.ts | 2 + 3 files changed, 62 insertions(+) create mode 100644 config-serializer/config-items/Module.ts create mode 100644 config-serializer/config-items/Modules.ts diff --git a/config-serializer/config-items/Module.ts b/config-serializer/config-items/Module.ts new file mode 100644 index 00000000..932b8754 --- /dev/null +++ b/config-serializer/config-items/Module.ts @@ -0,0 +1,49 @@ +enum PointerRole { + none, + move, + scroll +} + +class Module extends Serializable { + + @assertEnum(PointerRole) + private role: PointerRole; + + @assertUInt8 + moduleId: number; + + keyActions: Serializable; + + _fromJsObject(jsObject: any): Module { + this.moduleId = jsObject.id; + this.role = PointerRole[ jsObject.pointerRole]; + this.keyActions = new KeyActions().fromJsObject(jsObject.keyActions); + return this; + } + + _fromBinary(buffer: UhkBuffer): Module { + this.moduleId = buffer.readUInt8(); + this.role = buffer.readUInt8(); + this.keyActions = new KeyActions().fromBinary(buffer); + return this; + } + + _toJsObject(): any { + return { + id: this.moduleId, + pointerRole: PointerRole[this.role], + keyActions: this.keyActions.toJsObject() + } + } + + _toBinary(buffer: UhkBuffer): void { + buffer.writeUInt8(this.moduleId); + buffer.writeUInt8(this.role); + this.keyActions.toBinary(buffer); + } + + toString(): string { + return ``; + } + +} diff --git a/config-serializer/config-items/Modules.ts b/config-serializer/config-items/Modules.ts new file mode 100644 index 00000000..1793b611 --- /dev/null +++ b/config-serializer/config-items/Modules.ts @@ -0,0 +1,11 @@ +class Modules extends ClassArray { + + jsObjectToClass(jsObject: any): Serializable { + return new Module().fromJsObject(jsObject); + } + + binaryToClass(buffer: UhkBuffer): Serializable { + return new Module().fromBinary(buffer); + } + +} diff --git a/config-serializer/config-items/config-items.ts b/config-serializer/config-items/config-items.ts index 190b9a11..c8848f76 100644 --- a/config-serializer/config-items/config-items.ts +++ b/config-serializer/config-items/config-items.ts @@ -9,3 +9,5 @@ /// /// /// +/// +///