// ------------------------------------------------------------------------------ // Code generated by the Fast Binary Encoding compiler. DO NOT EDIT. // https://github.com/chronoxor/FastBinaryEncoding // Source: test.fbe // FBE version: 1.15.0.0 // ------------------------------------------------------------------------------ /* eslint-disable prefer-const,no-loss-of-precision */ 'use strict' const util = require('util') const big = require('./big') const int64 = require('./int64') const uuid = require('./uuid') const Big = big.Big // eslint-disable-line const Int64 = int64.Int64 // eslint-disable-line const UInt64 = int64.UInt64 // eslint-disable-line const UUID = uuid.UUID // eslint-disable-line const fbe = require('./fbe') const proto = require('./proto') /** * EnumSimple enum */ class EnumSimple { /** * Initialize enum with a given value * @param {EnumSimple|number|Int64|UInt64=} value Enum value, defaults is 0 * @constructor */ constructor (value = 0) { if (value instanceof EnumSimple) { this.value = value.value } else { this.value = value } } /** * Is this enum equal to other one? * @this {!EnumSimple} * @param {!EnumSimple} other Other enum * @returns {boolean} Equal result */ eq (other) { if (!(other instanceof EnumSimple)) { throw new TypeError('Instance of EnumSimple is required!') } return this.value === other.value } /** * Get enum value * @this {!EnumSimple} * @returns {!number|!Int64|!UInt64} Enum value */ valueOf () { return this.value } /** * Convert enum to string * @this {!EnumSimple} * @returns {!string} Enum value string */ toString () { if (this.value === EnumSimple.ENUM_VALUE_0.value) { return 'ENUM_VALUE_0' } if (this.value === EnumSimple.ENUM_VALUE_1.value) { return 'ENUM_VALUE_1' } if (this.value === EnumSimple.ENUM_VALUE_2.value) { return 'ENUM_VALUE_2' } if (this.value === EnumSimple.ENUM_VALUE_3.value) { return 'ENUM_VALUE_3' } if (this.value === EnumSimple.ENUM_VALUE_4.value) { return 'ENUM_VALUE_4' } if (this.value === EnumSimple.ENUM_VALUE_5.value) { return 'ENUM_VALUE_5' } return '' } /** * Inspect enum * @this {!EnumSimple} * @returns {!string} Enum value string */ [util.inspect.custom] () { return this.toString() } /** * Convert enum to JSON * @this {!EnumSimple} * @returns {!number} Enum value for JSON */ toJSON () { return this.value } /** * Create enum from object value * @param {!number} other Object value * @returns {!EnumSimple} Created enum */ static fromObject (other) { return new EnumSimple(other) } } // noinspection PointlessArithmeticExpressionJS EnumSimple.ENUM_VALUE_0 = new EnumSimple(0 + 0) // noinspection PointlessArithmeticExpressionJS EnumSimple.ENUM_VALUE_1 = new EnumSimple(1 + 0) // noinspection PointlessArithmeticExpressionJS EnumSimple.ENUM_VALUE_2 = new EnumSimple(1 + 1) // noinspection PointlessArithmeticExpressionJS EnumSimple.ENUM_VALUE_3 = new EnumSimple(3 + 0) // noinspection PointlessArithmeticExpressionJS EnumSimple.ENUM_VALUE_4 = new EnumSimple(0x4 + 0) // noinspection PointlessArithmeticExpressionJS EnumSimple.ENUM_VALUE_5 = new EnumSimple(EnumSimple.ENUM_VALUE_3) exports.EnumSimple = EnumSimple /** * Fast Binary Encoding EnumSimple field model */ class FieldModelEnumSimple extends fbe.FieldModel { /** * Get the field size * @this {!FieldModelEnumSimple} * @returns {!number} Field size */ get fbeSize () { return 4 } /** * Get the value * @this {!FieldModelEnumSimple} * @param {EnumSimple=} defaults Default value, defaults is new EnumSimple() * @returns {!EnumSimple} Result value */ get (defaults = new EnumSimple()) { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return defaults } return new EnumSimple(this.readInt32(this.fbeOffset)) } /** * Set the value * @this {!FieldModelEnumSimple} * @param {!EnumSimple} value Value */ set (value) { console.assert(((this._buffer.offset + this.fbeOffset + this.fbeSize) <= this._buffer.size), 'Model is broken!') if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return } this.writeInt32(this.fbeOffset, value.value) } } exports.FieldModelEnumSimple = FieldModelEnumSimple /** * Fast Binary Encoding EnumSimple final model */ class FinalModelEnumSimple extends fbe.FinalModel { /** * Get the allocation size * @this {!FinalModelEnumSimple} * @param {!EnumSimple} value Value * @returns {!number} Allocation size */ fbeAllocationSize (value) { return this.fbeSize } /** * Get the final size * @this {!FieldModelEnumSimple} * @returns {!number} Final size */ get fbeSize () { return 4 } /** * Check if the value is valid * @this {!FinalModelEnumSimple} * @returns {!number} Final model size or Number.MAX_SAFE_INTEGER in case of any error */ verify () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return Number.MAX_SAFE_INTEGER } return this.fbeSize } /** * Get the value * @this {!FieldModelEnumSimple} * @returns {!object} Result value and its size */ get () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return { value: new EnumSimple(), size: 0 } } return { value: new EnumSimple(this.readInt32(this.fbeOffset)), size: this.fbeSize } } /** * Set the value * @this {!FieldModelEnumSimple} * @param {!EnumSimple} value Value * @returns {!number} Final model size */ set (value) { console.assert(((this._buffer.offset + this.fbeOffset + this.fbeSize) <= this._buffer.size), 'Model is broken!') if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } this.writeInt32(this.fbeOffset, value.value) return this.fbeSize } } exports.FinalModelEnumSimple = FinalModelEnumSimple /** * EnumTyped enum */ class EnumTyped { /** * Initialize enum with a given value * @param {EnumTyped|number|Int64|UInt64=} value Enum value, defaults is 0 * @constructor */ constructor (value = 0) { if (value instanceof EnumTyped) { this.value = value.value } else { this.value = value } } /** * Is this enum equal to other one? * @this {!EnumTyped} * @param {!EnumTyped} other Other enum * @returns {boolean} Equal result */ eq (other) { if (!(other instanceof EnumTyped)) { throw new TypeError('Instance of EnumTyped is required!') } return this.value === other.value } /** * Get enum value * @this {!EnumTyped} * @returns {!number|!Int64|!UInt64} Enum value */ valueOf () { return this.value } /** * Convert enum to string * @this {!EnumTyped} * @returns {!string} Enum value string */ toString () { if (this.value === EnumTyped.ENUM_VALUE_0.value) { return 'ENUM_VALUE_0' } if (this.value === EnumTyped.ENUM_VALUE_1.value) { return 'ENUM_VALUE_1' } if (this.value === EnumTyped.ENUM_VALUE_2.value) { return 'ENUM_VALUE_2' } if (this.value === EnumTyped.ENUM_VALUE_3.value) { return 'ENUM_VALUE_3' } if (this.value === EnumTyped.ENUM_VALUE_4.value) { return 'ENUM_VALUE_4' } if (this.value === EnumTyped.ENUM_VALUE_5.value) { return 'ENUM_VALUE_5' } return '' } /** * Inspect enum * @this {!EnumTyped} * @returns {!string} Enum value string */ [util.inspect.custom] () { return this.toString() } /** * Convert enum to JSON * @this {!EnumTyped} * @returns {!number} Enum value for JSON */ toJSON () { return this.value } /** * Create enum from object value * @param {!number} other Object value * @returns {!EnumTyped} Created enum */ static fromObject (other) { return new EnumTyped(other) } } // noinspection PointlessArithmeticExpressionJS EnumTyped.ENUM_VALUE_0 = new EnumTyped(0 + 0) // noinspection PointlessArithmeticExpressionJS EnumTyped.ENUM_VALUE_1 = new EnumTyped('1'.charCodeAt(0) + 0) // noinspection PointlessArithmeticExpressionJS EnumTyped.ENUM_VALUE_2 = new EnumTyped('1'.charCodeAt(0) + 1) // noinspection PointlessArithmeticExpressionJS EnumTyped.ENUM_VALUE_3 = new EnumTyped('3'.charCodeAt(0) + 0) // noinspection PointlessArithmeticExpressionJS EnumTyped.ENUM_VALUE_4 = new EnumTyped('3'.charCodeAt(0) + 1) // noinspection PointlessArithmeticExpressionJS EnumTyped.ENUM_VALUE_5 = new EnumTyped(EnumTyped.ENUM_VALUE_3) exports.EnumTyped = EnumTyped /** * Fast Binary Encoding EnumTyped field model */ class FieldModelEnumTyped extends fbe.FieldModel { /** * Get the field size * @this {!FieldModelEnumTyped} * @returns {!number} Field size */ get fbeSize () { return 1 } /** * Get the value * @this {!FieldModelEnumTyped} * @param {EnumTyped=} defaults Default value, defaults is new EnumTyped() * @returns {!EnumTyped} Result value */ get (defaults = new EnumTyped()) { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return defaults } return new EnumTyped(this.readUInt8(this.fbeOffset)) } /** * Set the value * @this {!FieldModelEnumTyped} * @param {!EnumTyped} value Value */ set (value) { console.assert(((this._buffer.offset + this.fbeOffset + this.fbeSize) <= this._buffer.size), 'Model is broken!') if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return } this.writeUInt8(this.fbeOffset, value.value) } } exports.FieldModelEnumTyped = FieldModelEnumTyped /** * Fast Binary Encoding EnumTyped final model */ class FinalModelEnumTyped extends fbe.FinalModel { /** * Get the allocation size * @this {!FinalModelEnumTyped} * @param {!EnumTyped} value Value * @returns {!number} Allocation size */ fbeAllocationSize (value) { return this.fbeSize } /** * Get the final size * @this {!FieldModelEnumTyped} * @returns {!number} Final size */ get fbeSize () { return 1 } /** * Check if the value is valid * @this {!FinalModelEnumTyped} * @returns {!number} Final model size or Number.MAX_SAFE_INTEGER in case of any error */ verify () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return Number.MAX_SAFE_INTEGER } return this.fbeSize } /** * Get the value * @this {!FieldModelEnumTyped} * @returns {!object} Result value and its size */ get () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return { value: new EnumTyped(), size: 0 } } return { value: new EnumTyped(this.readUInt8(this.fbeOffset)), size: this.fbeSize } } /** * Set the value * @this {!FieldModelEnumTyped} * @param {!EnumTyped} value Value * @returns {!number} Final model size */ set (value) { console.assert(((this._buffer.offset + this.fbeOffset + this.fbeSize) <= this._buffer.size), 'Model is broken!') if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } this.writeUInt8(this.fbeOffset, value.value) return this.fbeSize } } exports.FinalModelEnumTyped = FinalModelEnumTyped /** * EnumEmpty enum */ class EnumEmpty { /** * Initialize enum with a given value * @param {EnumEmpty|number|Int64|UInt64=} value Enum value, defaults is 0 * @constructor */ constructor (value = 0) { if (value instanceof EnumEmpty) { this.value = value.value } else { this.value = value } } /** * Is this enum equal to other one? * @this {!EnumEmpty} * @param {!EnumEmpty} other Other enum * @returns {boolean} Equal result */ eq (other) { if (!(other instanceof EnumEmpty)) { throw new TypeError('Instance of EnumEmpty is required!') } return this.value === other.value } /** * Get enum value * @this {!EnumEmpty} * @returns {!number|!Int64|!UInt64} Enum value */ valueOf () { return this.value } /** * Convert enum to string * @this {!EnumEmpty} * @returns {!string} Enum value string */ toString () { return '' } /** * Inspect enum * @this {!EnumEmpty} * @returns {!string} Enum value string */ [util.inspect.custom] () { return this.toString() } /** * Convert enum to JSON * @this {!EnumEmpty} * @returns {!number} Enum value for JSON */ toJSON () { return this.value } /** * Create enum from object value * @param {!number} other Object value * @returns {!EnumEmpty} Created enum */ static fromObject (other) { return new EnumEmpty(other) } } exports.EnumEmpty = EnumEmpty /** * Fast Binary Encoding EnumEmpty field model */ class FieldModelEnumEmpty extends fbe.FieldModel { /** * Get the field size * @this {!FieldModelEnumEmpty} * @returns {!number} Field size */ get fbeSize () { return 4 } /** * Get the value * @this {!FieldModelEnumEmpty} * @param {EnumEmpty=} defaults Default value, defaults is new EnumEmpty() * @returns {!EnumEmpty} Result value */ get (defaults = new EnumEmpty()) { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return defaults } return new EnumEmpty(this.readInt32(this.fbeOffset)) } /** * Set the value * @this {!FieldModelEnumEmpty} * @param {!EnumEmpty} value Value */ set (value) { console.assert(((this._buffer.offset + this.fbeOffset + this.fbeSize) <= this._buffer.size), 'Model is broken!') if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return } this.writeInt32(this.fbeOffset, value.value) } } exports.FieldModelEnumEmpty = FieldModelEnumEmpty /** * Fast Binary Encoding EnumEmpty final model */ class FinalModelEnumEmpty extends fbe.FinalModel { /** * Get the allocation size * @this {!FinalModelEnumEmpty} * @param {!EnumEmpty} value Value * @returns {!number} Allocation size */ fbeAllocationSize (value) { return this.fbeSize } /** * Get the final size * @this {!FieldModelEnumEmpty} * @returns {!number} Final size */ get fbeSize () { return 4 } /** * Check if the value is valid * @this {!FinalModelEnumEmpty} * @returns {!number} Final model size or Number.MAX_SAFE_INTEGER in case of any error */ verify () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return Number.MAX_SAFE_INTEGER } return this.fbeSize } /** * Get the value * @this {!FieldModelEnumEmpty} * @returns {!object} Result value and its size */ get () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return { value: new EnumEmpty(), size: 0 } } return { value: new EnumEmpty(this.readInt32(this.fbeOffset)), size: this.fbeSize } } /** * Set the value * @this {!FieldModelEnumEmpty} * @param {!EnumEmpty} value Value * @returns {!number} Final model size */ set (value) { console.assert(((this._buffer.offset + this.fbeOffset + this.fbeSize) <= this._buffer.size), 'Model is broken!') if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } this.writeInt32(this.fbeOffset, value.value) return this.fbeSize } } exports.FinalModelEnumEmpty = FinalModelEnumEmpty /** * FlagsSimple flags */ class FlagsSimple { /** * Initialize flags with a given value * @param {FlagsSimple|number|Int64|UInt64=} value Flags value, defaults is 0 * @constructor */ constructor (value = 0) { if (value instanceof FlagsSimple) { this.value = value.value } else { this.value = value } } /** * Check for the given flags set state * @this {!FlagsSimple} * @param {!FlagsSimple|!number|!Int64|!UInt64} flags Flags * @returns {!boolean} Flags set state */ hasFlags (flags) { if (flags instanceof FlagsSimple) { flags = flags.value } return ((this.value & flags) !== 0) && ((this.value & flags) === flags) } /** * Set the given flags * @this {!FlagsSimple} * @param {!FlagsSimple|!number|!Int64|!UInt64} flags Flags */ setFlags (flags) { if (flags instanceof FlagsSimple) { flags = flags.value } this.value |= flags return this } /** * Remove the given flags * @this {!FlagsSimple} * @param {!FlagsSimple|!number|!Int64|!UInt64} flags Flags */ removeFlags (flags) { if (flags instanceof FlagsSimple) { flags = flags.value } this.value &= ~flags return this } /** * Is this flags equal to other one? * @this {!FlagsSimple} * @param {!FlagsSimple} other Other flags * @returns {boolean} Equal result */ eq (other) { if (!(other instanceof FlagsSimple)) { throw new TypeError('Instance of FlagsSimple is required!') } return this.value === other.value } /** * Get flags value * @this {!FlagsSimple} * @returns {!number|!Int64|!UInt64} Flags value */ valueOf () { return this.value } /** * Convert flags to string * @this {!FlagsSimple} * @returns {!string} Flags value string */ toString () { let result = '' let first = true if ((this.value & FlagsSimple.FLAG_VALUE_0.value) && ((this.value & FlagsSimple.FLAG_VALUE_0.value) === FlagsSimple.FLAG_VALUE_0.value)) { result += (first ? '' : '|') + 'FLAG_VALUE_0' // noinspection JSUnusedAssignment first = false } if ((this.value & FlagsSimple.FLAG_VALUE_1.value) && ((this.value & FlagsSimple.FLAG_VALUE_1.value) === FlagsSimple.FLAG_VALUE_1.value)) { result += (first ? '' : '|') + 'FLAG_VALUE_1' // noinspection JSUnusedAssignment first = false } if ((this.value & FlagsSimple.FLAG_VALUE_2.value) && ((this.value & FlagsSimple.FLAG_VALUE_2.value) === FlagsSimple.FLAG_VALUE_2.value)) { result += (first ? '' : '|') + 'FLAG_VALUE_2' // noinspection JSUnusedAssignment first = false } if ((this.value & FlagsSimple.FLAG_VALUE_3.value) && ((this.value & FlagsSimple.FLAG_VALUE_3.value) === FlagsSimple.FLAG_VALUE_3.value)) { result += (first ? '' : '|') + 'FLAG_VALUE_3' // noinspection JSUnusedAssignment first = false } if ((this.value & FlagsSimple.FLAG_VALUE_4.value) && ((this.value & FlagsSimple.FLAG_VALUE_4.value) === FlagsSimple.FLAG_VALUE_4.value)) { result += (first ? '' : '|') + 'FLAG_VALUE_4' // noinspection JSUnusedAssignment first = false } if ((this.value & FlagsSimple.FLAG_VALUE_5.value) && ((this.value & FlagsSimple.FLAG_VALUE_5.value) === FlagsSimple.FLAG_VALUE_5.value)) { result += (first ? '' : '|') + 'FLAG_VALUE_5' // noinspection JSUnusedAssignment first = false } return result } /** * Inspect flags * @this {!FlagsSimple} * @returns {!string} Flags value string */ [util.inspect.custom] () { return this.toString() } /** * Convert flags to JSON * @this {!FlagsSimple} * @returns {!number} Flags value for JSON */ toJSON () { return this.value } /** * Create flags from number flags representation * @param {!number} flags Number flags representation * @returns {!FlagsSimple} Created flags */ static fromFlags (flags) { return new FlagsSimple(flags) } /** * Create flags from object value * @param {!number} other Object value * @returns {!FlagsSimple} Created flags */ static fromObject (other) { return new FlagsSimple(other) } } // noinspection PointlessArithmeticExpressionJS FlagsSimple.FLAG_VALUE_0 = new FlagsSimple(0x0) // noinspection PointlessArithmeticExpressionJS FlagsSimple.FLAG_VALUE_1 = new FlagsSimple(0x1) // noinspection PointlessArithmeticExpressionJS FlagsSimple.FLAG_VALUE_2 = new FlagsSimple(0x2) // noinspection PointlessArithmeticExpressionJS FlagsSimple.FLAG_VALUE_3 = new FlagsSimple(0x4) // noinspection PointlessArithmeticExpressionJS FlagsSimple.FLAG_VALUE_4 = new FlagsSimple(FlagsSimple.FLAG_VALUE_3) // noinspection PointlessArithmeticExpressionJS FlagsSimple.FLAG_VALUE_5 = new FlagsSimple(FlagsSimple.FLAG_VALUE_1 | FlagsSimple.FLAG_VALUE_3) exports.FlagsSimple = FlagsSimple /** * Fast Binary Encoding FlagsSimple field model */ class FieldModelFlagsSimple extends fbe.FieldModel { /** * Get the field size * @this {!FieldModelFlagsSimple} * @returns {!number} Field size */ get fbeSize () { return 4 } /** * Get the value * @this {!FieldModelFlagsSimple} * @param {FlagsSimple=} defaults Default value, defaults is new FlagsSimple() * @returns {!FlagsSimple} Result value */ get (defaults = new FlagsSimple()) { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return defaults } return new FlagsSimple(this.readInt32(this.fbeOffset)) } /** * Set the value * @this {!FieldModelFlagsSimple} * @param {!FlagsSimple} value Value */ set (value) { console.assert(((this._buffer.offset + this.fbeOffset + this.fbeSize) <= this._buffer.size), 'Model is broken!') if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return } this.writeInt32(this.fbeOffset, value.value) } } exports.FieldModelFlagsSimple = FieldModelFlagsSimple /** * Fast Binary Encoding FlagsSimple final model */ class FinalModelFlagsSimple extends fbe.FinalModel { /** * Get the allocation size * @this {!FinalModelFlagsSimple} * @param {!FlagsSimple} value Value * @returns {!number} Allocation size */ fbeAllocationSize (value) { return this.fbeSize } /** * Get the final size * @this {!FieldModelFlagsSimple} * @returns {!number} Final size */ get fbeSize () { return 4 } /** * Check if the value is valid * @this {!FinalModelFlagsSimple} * @returns {!number} Final model size or Number.MAX_SAFE_INTEGER in case of any error */ verify () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return Number.MAX_SAFE_INTEGER } return this.fbeSize } /** * Get the value * @this {!FieldModelFlagsSimple} * @returns {!object} Result value and its size */ get () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return { value: new FlagsSimple(), size: 0 } } return { value: new FlagsSimple(this.readInt32(this.fbeOffset)), size: this.fbeSize } } /** * Set the value * @this {!FieldModelFlagsSimple} * @param {!FlagsSimple} value Value * @returns {!number} Final model size */ set (value) { console.assert(((this._buffer.offset + this.fbeOffset + this.fbeSize) <= this._buffer.size), 'Model is broken!') if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } this.writeInt32(this.fbeOffset, value.value) return this.fbeSize } } exports.FinalModelFlagsSimple = FinalModelFlagsSimple /** * FlagsTyped flags */ class FlagsTyped { /** * Initialize flags with a given value * @param {FlagsTyped|number|Int64|UInt64=} value Flags value, defaults is 0 * @constructor */ constructor (value = 0) { if (value instanceof FlagsTyped) { this.value = value.value } else { this.value = value } } /** * Check for the given flags set state * @this {!FlagsTyped} * @param {!FlagsTyped|!number|!Int64|!UInt64} flags Flags * @returns {!boolean} Flags set state */ hasFlags (flags) { if (flags instanceof FlagsTyped) { flags = flags.value } return ((this.value & flags) !== 0) && ((this.value & flags) === flags) } /** * Set the given flags * @this {!FlagsTyped} * @param {!FlagsTyped|!number|!Int64|!UInt64} flags Flags */ setFlags (flags) { if (flags instanceof FlagsTyped) { flags = flags.value } this.value |= flags return this } /** * Remove the given flags * @this {!FlagsTyped} * @param {!FlagsTyped|!number|!Int64|!UInt64} flags Flags */ removeFlags (flags) { if (flags instanceof FlagsTyped) { flags = flags.value } this.value &= ~flags return this } /** * Is this flags equal to other one? * @this {!FlagsTyped} * @param {!FlagsTyped} other Other flags * @returns {boolean} Equal result */ eq (other) { if (!(other instanceof FlagsTyped)) { throw new TypeError('Instance of FlagsTyped is required!') } return this.value === other.value } /** * Get flags value * @this {!FlagsTyped} * @returns {!number|!Int64|!UInt64} Flags value */ valueOf () { return this.value } /** * Convert flags to string * @this {!FlagsTyped} * @returns {!string} Flags value string */ toString () { let result = '' let first = true if ((this.value & FlagsTyped.FLAG_VALUE_0.value) && ((this.value & FlagsTyped.FLAG_VALUE_0.value) === FlagsTyped.FLAG_VALUE_0.value)) { result += (first ? '' : '|') + 'FLAG_VALUE_0' // noinspection JSUnusedAssignment first = false } if ((this.value & FlagsTyped.FLAG_VALUE_1.value) && ((this.value & FlagsTyped.FLAG_VALUE_1.value) === FlagsTyped.FLAG_VALUE_1.value)) { result += (first ? '' : '|') + 'FLAG_VALUE_1' // noinspection JSUnusedAssignment first = false } if ((this.value & FlagsTyped.FLAG_VALUE_2.value) && ((this.value & FlagsTyped.FLAG_VALUE_2.value) === FlagsTyped.FLAG_VALUE_2.value)) { result += (first ? '' : '|') + 'FLAG_VALUE_2' // noinspection JSUnusedAssignment first = false } if ((this.value & FlagsTyped.FLAG_VALUE_3.value) && ((this.value & FlagsTyped.FLAG_VALUE_3.value) === FlagsTyped.FLAG_VALUE_3.value)) { result += (first ? '' : '|') + 'FLAG_VALUE_3' // noinspection JSUnusedAssignment first = false } if ((this.value & FlagsTyped.FLAG_VALUE_4.value) && ((this.value & FlagsTyped.FLAG_VALUE_4.value) === FlagsTyped.FLAG_VALUE_4.value)) { result += (first ? '' : '|') + 'FLAG_VALUE_4' // noinspection JSUnusedAssignment first = false } if ((this.value & FlagsTyped.FLAG_VALUE_5.value) && ((this.value & FlagsTyped.FLAG_VALUE_5.value) === FlagsTyped.FLAG_VALUE_5.value)) { result += (first ? '' : '|') + 'FLAG_VALUE_5' // noinspection JSUnusedAssignment first = false } if ((this.value & FlagsTyped.FLAG_VALUE_6.value) && ((this.value & FlagsTyped.FLAG_VALUE_6.value) === FlagsTyped.FLAG_VALUE_6.value)) { result += (first ? '' : '|') + 'FLAG_VALUE_6' // noinspection JSUnusedAssignment first = false } if ((this.value & FlagsTyped.FLAG_VALUE_7.value) && ((this.value & FlagsTyped.FLAG_VALUE_7.value) === FlagsTyped.FLAG_VALUE_7.value)) { result += (first ? '' : '|') + 'FLAG_VALUE_7' // noinspection JSUnusedAssignment first = false } if ((this.value & FlagsTyped.FLAG_VALUE_8.value) && ((this.value & FlagsTyped.FLAG_VALUE_8.value) === FlagsTyped.FLAG_VALUE_8.value)) { result += (first ? '' : '|') + 'FLAG_VALUE_8' // noinspection JSUnusedAssignment first = false } if ((this.value & FlagsTyped.FLAG_VALUE_9.value) && ((this.value & FlagsTyped.FLAG_VALUE_9.value) === FlagsTyped.FLAG_VALUE_9.value)) { result += (first ? '' : '|') + 'FLAG_VALUE_9' // noinspection JSUnusedAssignment first = false } return result } /** * Inspect flags * @this {!FlagsTyped} * @returns {!string} Flags value string */ [util.inspect.custom] () { return this.toString() } /** * Convert flags to JSON * @this {!FlagsTyped} * @returns {!number} Flags value for JSON */ toJSON () { return this.value } /** * Create flags from number flags representation * @param {!number} flags Number flags representation * @returns {!FlagsTyped} Created flags */ static fromFlags (flags) { return new FlagsTyped(flags) } /** * Create flags from object value * @param {!number} other Object value * @returns {!FlagsTyped} Created flags */ static fromObject (other) { return new FlagsTyped(other) } } // noinspection PointlessArithmeticExpressionJS FlagsTyped.FLAG_VALUE_0 = new FlagsTyped(0x00) // noinspection PointlessArithmeticExpressionJS FlagsTyped.FLAG_VALUE_1 = new FlagsTyped(0x01) // noinspection PointlessArithmeticExpressionJS FlagsTyped.FLAG_VALUE_2 = new FlagsTyped(0x02) // noinspection PointlessArithmeticExpressionJS FlagsTyped.FLAG_VALUE_3 = new FlagsTyped(0x04) // noinspection PointlessArithmeticExpressionJS FlagsTyped.FLAG_VALUE_4 = new FlagsTyped(0x08) // noinspection PointlessArithmeticExpressionJS FlagsTyped.FLAG_VALUE_5 = new FlagsTyped(0x10) // noinspection PointlessArithmeticExpressionJS FlagsTyped.FLAG_VALUE_6 = new FlagsTyped(0x20) // noinspection PointlessArithmeticExpressionJS FlagsTyped.FLAG_VALUE_7 = new FlagsTyped(0x40) // noinspection PointlessArithmeticExpressionJS FlagsTyped.FLAG_VALUE_8 = new FlagsTyped(FlagsTyped.FLAG_VALUE_7) // noinspection PointlessArithmeticExpressionJS FlagsTyped.FLAG_VALUE_9 = new FlagsTyped(FlagsTyped.FLAG_VALUE_2 | FlagsTyped.FLAG_VALUE_4 | FlagsTyped.FLAG_VALUE_6) exports.FlagsTyped = FlagsTyped /** * Fast Binary Encoding FlagsTyped field model */ class FieldModelFlagsTyped extends fbe.FieldModel { /** * Get the field size * @this {!FieldModelFlagsTyped} * @returns {!number} Field size */ get fbeSize () { return 8 } /** * Get the value * @this {!FieldModelFlagsTyped} * @param {FlagsTyped=} defaults Default value, defaults is new FlagsTyped() * @returns {!FlagsTyped} Result value */ get (defaults = new FlagsTyped()) { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return defaults } return new FlagsTyped(this.readUInt64(this.fbeOffset).toNumber()) } /** * Set the value * @this {!FieldModelFlagsTyped} * @param {!FlagsTyped} value Value */ set (value) { console.assert(((this._buffer.offset + this.fbeOffset + this.fbeSize) <= this._buffer.size), 'Model is broken!') if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return } this.writeUInt64(this.fbeOffset, UInt64.fromNumber(value.value)) } } exports.FieldModelFlagsTyped = FieldModelFlagsTyped /** * Fast Binary Encoding FlagsTyped final model */ class FinalModelFlagsTyped extends fbe.FinalModel { /** * Get the allocation size * @this {!FinalModelFlagsTyped} * @param {!FlagsTyped} value Value * @returns {!number} Allocation size */ fbeAllocationSize (value) { return this.fbeSize } /** * Get the final size * @this {!FieldModelFlagsTyped} * @returns {!number} Final size */ get fbeSize () { return 8 } /** * Check if the value is valid * @this {!FinalModelFlagsTyped} * @returns {!number} Final model size or Number.MAX_SAFE_INTEGER in case of any error */ verify () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return Number.MAX_SAFE_INTEGER } return this.fbeSize } /** * Get the value * @this {!FieldModelFlagsTyped} * @returns {!object} Result value and its size */ get () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return { value: new FlagsTyped(), size: 0 } } return { value: new FlagsTyped(this.readUInt64(this.fbeOffset).toNumber()), size: this.fbeSize } } /** * Set the value * @this {!FieldModelFlagsTyped} * @param {!FlagsTyped} value Value * @returns {!number} Final model size */ set (value) { console.assert(((this._buffer.offset + this.fbeOffset + this.fbeSize) <= this._buffer.size), 'Model is broken!') if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } this.writeUInt64(this.fbeOffset, UInt64.fromNumber(value.value)) return this.fbeSize } } exports.FinalModelFlagsTyped = FinalModelFlagsTyped /** * FlagsEmpty flags */ class FlagsEmpty { /** * Initialize flags with a given value * @param {FlagsEmpty|number|Int64|UInt64=} value Flags value, defaults is 0 * @constructor */ constructor (value = 0) { if (value instanceof FlagsEmpty) { this.value = value.value } else { this.value = value } } /** * Check for the given flags set state * @this {!FlagsEmpty} * @param {!FlagsEmpty|!number|!Int64|!UInt64} flags Flags * @returns {!boolean} Flags set state */ hasFlags (flags) { if (flags instanceof FlagsEmpty) { flags = flags.value } return ((this.value & flags) !== 0) && ((this.value & flags) === flags) } /** * Set the given flags * @this {!FlagsEmpty} * @param {!FlagsEmpty|!number|!Int64|!UInt64} flags Flags */ setFlags (flags) { if (flags instanceof FlagsEmpty) { flags = flags.value } this.value |= flags return this } /** * Remove the given flags * @this {!FlagsEmpty} * @param {!FlagsEmpty|!number|!Int64|!UInt64} flags Flags */ removeFlags (flags) { if (flags instanceof FlagsEmpty) { flags = flags.value } this.value &= ~flags return this } /** * Is this flags equal to other one? * @this {!FlagsEmpty} * @param {!FlagsEmpty} other Other flags * @returns {boolean} Equal result */ eq (other) { if (!(other instanceof FlagsEmpty)) { throw new TypeError('Instance of FlagsEmpty is required!') } return this.value === other.value } /** * Get flags value * @this {!FlagsEmpty} * @returns {!number|!Int64|!UInt64} Flags value */ valueOf () { return this.value } /** * Convert flags to string * @this {!FlagsEmpty} * @returns {!string} Flags value string */ toString () { let result = '' return result } /** * Inspect flags * @this {!FlagsEmpty} * @returns {!string} Flags value string */ [util.inspect.custom] () { return this.toString() } /** * Convert flags to JSON * @this {!FlagsEmpty} * @returns {!number} Flags value for JSON */ toJSON () { return this.value } /** * Create flags from number flags representation * @param {!number} flags Number flags representation * @returns {!FlagsEmpty} Created flags */ static fromFlags (flags) { return new FlagsEmpty(flags) } /** * Create flags from object value * @param {!number} other Object value * @returns {!FlagsEmpty} Created flags */ static fromObject (other) { return new FlagsEmpty(other) } } exports.FlagsEmpty = FlagsEmpty /** * Fast Binary Encoding FlagsEmpty field model */ class FieldModelFlagsEmpty extends fbe.FieldModel { /** * Get the field size * @this {!FieldModelFlagsEmpty} * @returns {!number} Field size */ get fbeSize () { return 4 } /** * Get the value * @this {!FieldModelFlagsEmpty} * @param {FlagsEmpty=} defaults Default value, defaults is new FlagsEmpty() * @returns {!FlagsEmpty} Result value */ get (defaults = new FlagsEmpty()) { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return defaults } return new FlagsEmpty(this.readInt32(this.fbeOffset)) } /** * Set the value * @this {!FieldModelFlagsEmpty} * @param {!FlagsEmpty} value Value */ set (value) { console.assert(((this._buffer.offset + this.fbeOffset + this.fbeSize) <= this._buffer.size), 'Model is broken!') if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return } this.writeInt32(this.fbeOffset, value.value) } } exports.FieldModelFlagsEmpty = FieldModelFlagsEmpty /** * Fast Binary Encoding FlagsEmpty final model */ class FinalModelFlagsEmpty extends fbe.FinalModel { /** * Get the allocation size * @this {!FinalModelFlagsEmpty} * @param {!FlagsEmpty} value Value * @returns {!number} Allocation size */ fbeAllocationSize (value) { return this.fbeSize } /** * Get the final size * @this {!FieldModelFlagsEmpty} * @returns {!number} Final size */ get fbeSize () { return 4 } /** * Check if the value is valid * @this {!FinalModelFlagsEmpty} * @returns {!number} Final model size or Number.MAX_SAFE_INTEGER in case of any error */ verify () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return Number.MAX_SAFE_INTEGER } return this.fbeSize } /** * Get the value * @this {!FieldModelFlagsEmpty} * @returns {!object} Result value and its size */ get () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return { value: new FlagsEmpty(), size: 0 } } return { value: new FlagsEmpty(this.readInt32(this.fbeOffset)), size: this.fbeSize } } /** * Set the value * @this {!FieldModelFlagsEmpty} * @param {!FlagsEmpty} value Value * @returns {!number} Final model size */ set (value) { console.assert(((this._buffer.offset + this.fbeOffset + this.fbeSize) <= this._buffer.size), 'Model is broken!') if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } this.writeInt32(this.fbeOffset, value.value) return this.fbeSize } } exports.FinalModelFlagsEmpty = FinalModelFlagsEmpty /** * StructSimple struct */ class StructSimple { /** * Initialize struct * @param {!number=} id * @param {!boolean=} f1 * @param {!boolean=} f2 * @param {!number=} f3 * @param {!number=} f4 * @param {!string=} f5 * @param {!string=} f6 * @param {!string=} f7 * @param {!string=} f8 * @param {!number=} f9 * @param {!number=} f10 * @param {!number=} f11 * @param {!number=} f12 * @param {!number=} f13 * @param {!number=} f14 * @param {!number=} f15 * @param {!number=} f16 * @param {!number=} f17 * @param {!number=} f18 * @param {!number=} f19 * @param {!number=} f20 * @param {!number=} f21 * @param {!number=} f22 * @param {!number=} f23 * @param {!number=} f24 * @param {!number=} f25 * @param {!number=} f26 * @param {!number=} f27 * @param {!number=} f28 * @param {!Big=} f29 * @param {!Big=} f30 * @param {!string=} f31 * @param {!string=} f32 * @param {!Date=} f33 * @param {!Date=} f34 * @param {!Date=} f35 * @param {!UUID=} f36 * @param {!UUID=} f37 * @param {!UUID=} f38 * @param {!proto.OrderSide=} f39 * @param {!proto.OrderType=} f40 * @param {!proto.Order=} f41 * @param {!proto.Balance=} f42 * @param {!proto.State=} f43 * @param {!proto.Account=} f44 * @constructor */ constructor (argid = 0, argf1 = false, argf2 = true, argf3 = 0, argf4 = 255, argf5 = '\0', argf6 = '!', argf7 = '\0', argf8 = String.fromCharCode(0x0444), argf9 = 0, argf10 = 127, argf11 = 0, argf12 = 255, argf13 = 0, argf14 = 32767, argf15 = 0, argf16 = 65535, argf17 = 0, argf18 = 2147483647, argf19 = 0, argf20 = 4294967295, argf21 = new Int64(0, 0), argf22 = new Int64(4294967295, 2147483647), argf23 = new UInt64(0, 0), argf24 = new UInt64(4294967295, 4294967295), argf25 = 0.0, argf26 = 123.456, argf27 = 0.0, argf28 = -123.456e+123, argf29 = new Big(0), argf30 = new Big('123456.123456'), argf31 = '', argf32 = 'Initial string!', argf33 = new Date(0), argf34 = new Date(0), argf35 = new Date(Date.now()), argf36 = new UUID(), argf37 = UUID.database(), argf38 = new UUID('123e4567-e89b-12d3-a456-426655440000'), argf39 = new proto.OrderSide(), argf40 = new proto.OrderType(), argf41 = new proto.Order(), argf42 = new proto.Balance(), argf43 = new proto.State(), argf44 = new proto.Account()) { this.id = argid this.f1 = argf1 this.f2 = argf2 this.f3 = argf3 this.f4 = argf4 this.f5 = argf5 this.f6 = argf6 this.f7 = argf7 this.f8 = argf8 this.f9 = argf9 this.f10 = argf10 this.f11 = argf11 this.f12 = argf12 this.f13 = argf13 this.f14 = argf14 this.f15 = argf15 this.f16 = argf16 this.f17 = argf17 this.f18 = argf18 this.f19 = argf19 this.f20 = argf20 this.f21 = argf21 this.f22 = argf22 this.f23 = argf23 this.f24 = argf24 this.f25 = argf25 this.f26 = argf26 this.f27 = argf27 this.f28 = argf28 this.f29 = argf29 this.f30 = argf30 this.f31 = argf31 this.f32 = argf32 this.f33 = argf33 this.f34 = argf34 this.f35 = argf35 this.f36 = argf36 this.f37 = argf37 this.f38 = argf38 this.f39 = argf39 this.f40 = argf40 this.f41 = argf41 this.f42 = argf42 this.f43 = argf43 this.f44 = argf44 } /** * Copy struct (shallow copy) * @this {!StructSimple} * @param {!StructSimple} other Other struct * @returns {!StructSimple} This struct */ copy (other) { if (other.id != null) { this.id = other.id } else { this.id = undefined } if (other.f1 != null) { this.f1 = other.f1 } else { this.f1 = undefined } if (other.f2 != null) { this.f2 = other.f2 } else { this.f2 = undefined } if (other.f3 != null) { this.f3 = other.f3 } else { this.f3 = undefined } if (other.f4 != null) { this.f4 = other.f4 } else { this.f4 = undefined } if (other.f5 != null) { if ((typeof other.f5 === 'string') || (other.f5 instanceof String)) { this.f5 = other.f5 } else { this.f5 = String.fromCharCode(other.f5) } } else { this.f5 = undefined } if (other.f6 != null) { if ((typeof other.f6 === 'string') || (other.f6 instanceof String)) { this.f6 = other.f6 } else { this.f6 = String.fromCharCode(other.f6) } } else { this.f6 = undefined } if (other.f7 != null) { if ((typeof other.f7 === 'string') || (other.f7 instanceof String)) { this.f7 = other.f7 } else { this.f7 = String.fromCharCode(other.f7) } } else { this.f7 = undefined } if (other.f8 != null) { if ((typeof other.f8 === 'string') || (other.f8 instanceof String)) { this.f8 = other.f8 } else { this.f8 = String.fromCharCode(other.f8) } } else { this.f8 = undefined } if (other.f9 != null) { this.f9 = other.f9 } else { this.f9 = undefined } if (other.f10 != null) { this.f10 = other.f10 } else { this.f10 = undefined } if (other.f11 != null) { this.f11 = other.f11 } else { this.f11 = undefined } if (other.f12 != null) { this.f12 = other.f12 } else { this.f12 = undefined } if (other.f13 != null) { this.f13 = other.f13 } else { this.f13 = undefined } if (other.f14 != null) { this.f14 = other.f14 } else { this.f14 = undefined } if (other.f15 != null) { this.f15 = other.f15 } else { this.f15 = undefined } if (other.f16 != null) { this.f16 = other.f16 } else { this.f16 = undefined } if (other.f17 != null) { this.f17 = other.f17 } else { this.f17 = undefined } if (other.f18 != null) { this.f18 = other.f18 } else { this.f18 = undefined } if (other.f19 != null) { this.f19 = other.f19 } else { this.f19 = undefined } if (other.f20 != null) { this.f20 = other.f20 } else { this.f20 = undefined } if (other.f21 != null) { this.f21 = Int64.fromNumber(other.f21) } else { this.f21 = undefined } if (other.f22 != null) { this.f22 = Int64.fromNumber(other.f22) } else { this.f22 = undefined } if (other.f23 != null) { this.f23 = UInt64.fromNumber(other.f23) } else { this.f23 = undefined } if (other.f24 != null) { this.f24 = UInt64.fromNumber(other.f24) } else { this.f24 = undefined } if (other.f25 != null) { this.f25 = other.f25 } else { this.f25 = undefined } if (other.f26 != null) { this.f26 = other.f26 } else { this.f26 = undefined } if (other.f27 != null) { this.f27 = other.f27 } else { this.f27 = undefined } if (other.f28 != null) { this.f28 = other.f28 } else { this.f28 = undefined } if (other.f29 != null) { this.f29 = new Big(other.f29) } else { this.f29 = undefined } if (other.f30 != null) { this.f30 = new Big(other.f30) } else { this.f30 = undefined } if (other.f31 != null) { this.f31 = other.f31 } else { this.f31 = undefined } if (other.f32 != null) { this.f32 = other.f32 } else { this.f32 = undefined } if (other.f33 != null) { if (other.f33 instanceof Date) { this.f33 = new Date(other.f33.getTime()) } else { this.f33 = new Date(Math.round(other.f33 / 1000000)) } } else { this.f33 = undefined } if (other.f34 != null) { if (other.f34 instanceof Date) { this.f34 = new Date(other.f34.getTime()) } else { this.f34 = new Date(Math.round(other.f34 / 1000000)) } } else { this.f34 = undefined } if (other.f35 != null) { if (other.f35 instanceof Date) { this.f35 = new Date(other.f35.getTime()) } else { this.f35 = new Date(Math.round(other.f35 / 1000000)) } } else { this.f35 = undefined } if (other.f36 != null) { this.f36 = new UUID(other.f36) } else { this.f36 = undefined } if (other.f37 != null) { this.f37 = new UUID(other.f37) } else { this.f37 = undefined } if (other.f38 != null) { this.f38 = new UUID(other.f38) } else { this.f38 = undefined } if (other.f39 != null) { this.f39 = proto.OrderSide.fromObject(other.f39) } else { this.f39 = undefined } if (other.f40 != null) { this.f40 = proto.OrderType.fromObject(other.f40) } else { this.f40 = undefined } if (other.f41 != null) { this.f41 = proto.Order.fromObject(other.f41) } else { this.f41 = undefined } if (other.f42 != null) { this.f42 = proto.Balance.fromObject(other.f42) } else { this.f42 = undefined } if (other.f43 != null) { this.f43 = proto.State.fromObject(other.f43) } else { this.f43 = undefined } if (other.f44 != null) { this.f44 = proto.Account.fromObject(other.f44) } else { this.f44 = undefined } return this } /** * Clone struct (deep clone) * @this {!StructSimple} * @returns {!StructSimple} Cloned struct */ clone () { // Serialize the struct to the FBE stream let writer = new StructSimpleModel(new fbe.WriteBuffer()) writer.serialize(this) // Deserialize the struct from the FBE stream let reader = new StructSimpleModel(new fbe.ReadBuffer()) reader.attachBuffer(writer.buffer) return reader.deserialize().value } /** * Is this struct equal to other one? * @this {!StructSimple} * @param {!StructSimple} other Other struct * @returns {boolean} Equal result */ eq (other) { if (!(other instanceof StructSimple)) { throw new TypeError('Instance of StructSimple is required!') } // noinspection RedundantIfStatementJS if (this.id !== other.id) { return false } return true } /** * Convert struct to string * @this {!StructSimple} * @returns {!string} Struct value string */ toString () { let result = '' result += 'StructSimple(' result += 'id=' result += this.id.toString() result += ',f1=' result += this.f1 ? 'true' : 'false' result += ',f2=' result += this.f2 ? 'true' : 'false' result += ',f3=' result += this.f3.toString() result += ',f4=' result += this.f4.toString() result += ',f5=' result += "'" + this.f5.toString() + "'" result += ',f6=' result += "'" + this.f6.toString() + "'" result += ',f7=' result += "'" + this.f7.toString() + "'" result += ',f8=' result += "'" + this.f8.toString() + "'" result += ',f9=' result += this.f9.toString() result += ',f10=' result += this.f10.toString() result += ',f11=' result += this.f11.toString() result += ',f12=' result += this.f12.toString() result += ',f13=' result += this.f13.toString() result += ',f14=' result += this.f14.toString() result += ',f15=' result += this.f15.toString() result += ',f16=' result += this.f16.toString() result += ',f17=' result += this.f17.toString() result += ',f18=' result += this.f18.toString() result += ',f19=' result += this.f19.toString() result += ',f20=' result += this.f20.toString() result += ',f21=' result += this.f21.toString() result += ',f22=' result += this.f22.toString() result += ',f23=' result += this.f23.toString() result += ',f24=' result += this.f24.toString() result += ',f25=' result += this.f25.toString() result += ',f26=' result += this.f26.toString() result += ',f27=' result += this.f27.toString() result += ',f28=' result += this.f28.toString() result += ',f29=' if (this.f29 != null) { result += this.f29.toFixed() } else { result += 'null' } result += ',f30=' if (this.f30 != null) { result += this.f30.toFixed() } else { result += 'null' } result += ',f31=' if (this.f31 != null) { result += '"' + this.f31.toString() + '"' } else { result += 'null' } result += ',f32=' if (this.f32 != null) { result += '"' + this.f32.toString() + '"' } else { result += 'null' } result += ',f33=' if (this.f33 != null) { result += this.f33.getTime() * 1000000 } else { result += 'null' } result += ',f34=' if (this.f34 != null) { result += this.f34.getTime() * 1000000 } else { result += 'null' } result += ',f35=' if (this.f35 != null) { result += this.f35.getTime() * 1000000 } else { result += 'null' } result += ',f36=' if (this.f36 != null) { result += '"' + this.f36.toString() + '"' } else { result += 'null' } result += ',f37=' if (this.f37 != null) { result += '"' + this.f37.toString() + '"' } else { result += 'null' } result += ',f38=' if (this.f38 != null) { result += '"' + this.f38.toString() + '"' } else { result += 'null' } result += ',f39=' result += this.f39.toString() result += ',f40=' result += this.f40.toString() result += ',f41=' result += this.f41.toString() result += ',f42=' result += this.f42.toString() result += ',f43=' result += this.f43.toString() result += ',f44=' result += this.f44.toString() result += ')' return result } /** * Inspect struct * @this {!StructSimple} * @returns {!string} Struct value string */ [util.inspect.custom] () { return this.toString() } /** * Convert struct to JSON * @this {!StructSimple} * @returns {!object} Struct value for JSON */ toJSON () { return { id: ((this.id != null) ? this.id : null), f1: ((this.f1 != null) ? this.f1 : null), f2: ((this.f2 != null) ? this.f2 : null), f3: ((this.f3 != null) ? this.f3 : null), f4: ((this.f4 != null) ? this.f4 : null), f5: ((this.f5 != null) ? this.f5.charCodeAt(0) : null), f6: ((this.f6 != null) ? this.f6.charCodeAt(0) : null), f7: ((this.f7 != null) ? this.f7.charCodeAt(0) : null), f8: ((this.f8 != null) ? this.f8.charCodeAt(0) : null), f9: ((this.f9 != null) ? this.f9 : null), f10: ((this.f10 != null) ? this.f10 : null), f11: ((this.f11 != null) ? this.f11 : null), f12: ((this.f12 != null) ? this.f12 : null), f13: ((this.f13 != null) ? this.f13 : null), f14: ((this.f14 != null) ? this.f14 : null), f15: ((this.f15 != null) ? this.f15 : null), f16: ((this.f16 != null) ? this.f16 : null), f17: ((this.f17 != null) ? this.f17 : null), f18: ((this.f18 != null) ? this.f18 : null), f19: ((this.f19 != null) ? this.f19 : null), f20: ((this.f20 != null) ? this.f20 : null), f21: ((this.f21 != null) ? this.f21.toNumber() : null), f22: ((this.f22 != null) ? this.f22.toNumber() : null), f23: ((this.f23 != null) ? this.f23.toNumber() : null), f24: ((this.f24 != null) ? this.f24.toNumber() : null), f25: ((this.f25 != null) ? this.f25 : null), f26: ((this.f26 != null) ? this.f26 : null), f27: ((this.f27 != null) ? this.f27 : null), f28: ((this.f28 != null) ? this.f28 : null), f29: ((this.f29 != null) ? this.f29.toFixed() : null), f30: ((this.f30 != null) ? this.f30.toFixed() : null), f31: ((this.f31 != null) ? this.f31 : null), f32: ((this.f32 != null) ? this.f32 : null), f33: ((this.f33 != null) ? (this.f33.getTime() * 1000000) : null), f34: ((this.f34 != null) ? (this.f34.getTime() * 1000000) : null), f35: ((this.f35 != null) ? (this.f35.getTime() * 1000000) : null), f36: ((this.f36 != null) ? this.f36.toString() : null), f37: ((this.f37 != null) ? this.f37.toString() : null), f38: ((this.f38 != null) ? this.f38.toString() : null), f39: ((this.f39 != null) ? this.f39 : null), f40: ((this.f40 != null) ? this.f40 : null), f41: ((this.f41 != null) ? this.f41 : null), f42: ((this.f42 != null) ? this.f42 : null), f43: ((this.f43 != null) ? this.f43 : null), f44: ((this.f44 != null) ? this.f44 : null) } } /** * Convert JSON to struct * @param {!string} json JSON string * @returns {!object} Struct value for JSON */ static fromJSON (json) { return StructSimple.fromObject(JSON.parse(json)) } /** * Create struct from object value * @param {!StructSimple} other Object value * @returns {!StructSimple} Created struct */ static fromObject (other) { return new StructSimple().copy(other) } /** * Get the FBE type * @this {!StructSimple} * @returns {!number} FBE type */ get fbeType () { return StructSimple.fbeType } /** * Get the FBE type (static) * @this {!StructSimple} * @returns {!number} FBE type */ static get fbeType () { return 110 } } exports.StructSimple = StructSimple /** * Fast Binary Encoding StructSimple field model */ class FieldModelStructSimple extends fbe.FieldModel { /** * Initialize field model with the given buffer and offset * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Buffer * @param {!number} offset Offset * @constructor */ constructor (buffer, offset) { super(buffer, offset) this._id = new fbe.FieldModelInt32(buffer, 4 + 4) this._f1 = new fbe.FieldModelBool(buffer, this._id.fbeOffset + this._id.fbeSize) this._f2 = new fbe.FieldModelBool(buffer, this._f1.fbeOffset + this._f1.fbeSize) this._f3 = new fbe.FieldModelByte(buffer, this._f2.fbeOffset + this._f2.fbeSize) this._f4 = new fbe.FieldModelByte(buffer, this._f3.fbeOffset + this._f3.fbeSize) this._f5 = new fbe.FieldModelChar(buffer, this._f4.fbeOffset + this._f4.fbeSize) this._f6 = new fbe.FieldModelChar(buffer, this._f5.fbeOffset + this._f5.fbeSize) this._f7 = new fbe.FieldModelWChar(buffer, this._f6.fbeOffset + this._f6.fbeSize) this._f8 = new fbe.FieldModelWChar(buffer, this._f7.fbeOffset + this._f7.fbeSize) this._f9 = new fbe.FieldModelInt8(buffer, this._f8.fbeOffset + this._f8.fbeSize) this._f10 = new fbe.FieldModelInt8(buffer, this._f9.fbeOffset + this._f9.fbeSize) this._f11 = new fbe.FieldModelUInt8(buffer, this._f10.fbeOffset + this._f10.fbeSize) this._f12 = new fbe.FieldModelUInt8(buffer, this._f11.fbeOffset + this._f11.fbeSize) this._f13 = new fbe.FieldModelInt16(buffer, this._f12.fbeOffset + this._f12.fbeSize) this._f14 = new fbe.FieldModelInt16(buffer, this._f13.fbeOffset + this._f13.fbeSize) this._f15 = new fbe.FieldModelUInt16(buffer, this._f14.fbeOffset + this._f14.fbeSize) this._f16 = new fbe.FieldModelUInt16(buffer, this._f15.fbeOffset + this._f15.fbeSize) this._f17 = new fbe.FieldModelInt32(buffer, this._f16.fbeOffset + this._f16.fbeSize) this._f18 = new fbe.FieldModelInt32(buffer, this._f17.fbeOffset + this._f17.fbeSize) this._f19 = new fbe.FieldModelUInt32(buffer, this._f18.fbeOffset + this._f18.fbeSize) this._f20 = new fbe.FieldModelUInt32(buffer, this._f19.fbeOffset + this._f19.fbeSize) this._f21 = new fbe.FieldModelInt64(buffer, this._f20.fbeOffset + this._f20.fbeSize) this._f22 = new fbe.FieldModelInt64(buffer, this._f21.fbeOffset + this._f21.fbeSize) this._f23 = new fbe.FieldModelUInt64(buffer, this._f22.fbeOffset + this._f22.fbeSize) this._f24 = new fbe.FieldModelUInt64(buffer, this._f23.fbeOffset + this._f23.fbeSize) this._f25 = new fbe.FieldModelFloat(buffer, this._f24.fbeOffset + this._f24.fbeSize) this._f26 = new fbe.FieldModelFloat(buffer, this._f25.fbeOffset + this._f25.fbeSize) this._f27 = new fbe.FieldModelDouble(buffer, this._f26.fbeOffset + this._f26.fbeSize) this._f28 = new fbe.FieldModelDouble(buffer, this._f27.fbeOffset + this._f27.fbeSize) this._f29 = new fbe.FieldModelDecimal(buffer, this._f28.fbeOffset + this._f28.fbeSize) this._f30 = new fbe.FieldModelDecimal(buffer, this._f29.fbeOffset + this._f29.fbeSize) this._f31 = new fbe.FieldModelString(buffer, this._f30.fbeOffset + this._f30.fbeSize) this._f32 = new fbe.FieldModelString(buffer, this._f31.fbeOffset + this._f31.fbeSize) this._f33 = new fbe.FieldModelTimestamp(buffer, this._f32.fbeOffset + this._f32.fbeSize) this._f34 = new fbe.FieldModelTimestamp(buffer, this._f33.fbeOffset + this._f33.fbeSize) this._f35 = new fbe.FieldModelTimestamp(buffer, this._f34.fbeOffset + this._f34.fbeSize) this._f36 = new fbe.FieldModelUUID(buffer, this._f35.fbeOffset + this._f35.fbeSize) this._f37 = new fbe.FieldModelUUID(buffer, this._f36.fbeOffset + this._f36.fbeSize) this._f38 = new fbe.FieldModelUUID(buffer, this._f37.fbeOffset + this._f37.fbeSize) this._f39 = new proto.FieldModelOrderSide(buffer, this._f38.fbeOffset + this._f38.fbeSize) this._f40 = new proto.FieldModelOrderType(buffer, this._f39.fbeOffset + this._f39.fbeSize) this._f41 = new proto.FieldModelOrder(buffer, this._f40.fbeOffset + this._f40.fbeSize) this._f42 = new proto.FieldModelBalance(buffer, this._f41.fbeOffset + this._f41.fbeSize) this._f43 = new proto.FieldModelState(buffer, this._f42.fbeOffset + this._f42.fbeSize) this._f44 = new proto.FieldModelAccount(buffer, this._f43.fbeOffset + this._f43.fbeSize) } /** * Get the id field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelInt32} id field model */ get id () { return this._id } /** * Get the f1 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelBool} f1 field model */ get f1 () { return this._f1 } /** * Get the f2 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelBool} f2 field model */ get f2 () { return this._f2 } /** * Get the f3 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelByte} f3 field model */ get f3 () { return this._f3 } /** * Get the f4 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelByte} f4 field model */ get f4 () { return this._f4 } /** * Get the f5 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelChar} f5 field model */ get f5 () { return this._f5 } /** * Get the f6 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelChar} f6 field model */ get f6 () { return this._f6 } /** * Get the f7 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelWChar} f7 field model */ get f7 () { return this._f7 } /** * Get the f8 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelWChar} f8 field model */ get f8 () { return this._f8 } /** * Get the f9 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelInt8} f9 field model */ get f9 () { return this._f9 } /** * Get the f10 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelInt8} f10 field model */ get f10 () { return this._f10 } /** * Get the f11 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelUInt8} f11 field model */ get f11 () { return this._f11 } /** * Get the f12 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelUInt8} f12 field model */ get f12 () { return this._f12 } /** * Get the f13 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelInt16} f13 field model */ get f13 () { return this._f13 } /** * Get the f14 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelInt16} f14 field model */ get f14 () { return this._f14 } /** * Get the f15 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelUInt16} f15 field model */ get f15 () { return this._f15 } /** * Get the f16 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelUInt16} f16 field model */ get f16 () { return this._f16 } /** * Get the f17 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelInt32} f17 field model */ get f17 () { return this._f17 } /** * Get the f18 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelInt32} f18 field model */ get f18 () { return this._f18 } /** * Get the f19 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelUInt32} f19 field model */ get f19 () { return this._f19 } /** * Get the f20 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelUInt32} f20 field model */ get f20 () { return this._f20 } /** * Get the f21 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelInt64} f21 field model */ get f21 () { return this._f21 } /** * Get the f22 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelInt64} f22 field model */ get f22 () { return this._f22 } /** * Get the f23 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelUInt64} f23 field model */ get f23 () { return this._f23 } /** * Get the f24 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelUInt64} f24 field model */ get f24 () { return this._f24 } /** * Get the f25 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelFloat} f25 field model */ get f25 () { return this._f25 } /** * Get the f26 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelFloat} f26 field model */ get f26 () { return this._f26 } /** * Get the f27 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelDouble} f27 field model */ get f27 () { return this._f27 } /** * Get the f28 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelDouble} f28 field model */ get f28 () { return this._f28 } /** * Get the f29 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelDecimal} f29 field model */ get f29 () { return this._f29 } /** * Get the f30 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelDecimal} f30 field model */ get f30 () { return this._f30 } /** * Get the f31 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelString} f31 field model */ get f31 () { return this._f31 } /** * Get the f32 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelString} f32 field model */ get f32 () { return this._f32 } /** * Get the f33 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelTimestamp} f33 field model */ get f33 () { return this._f33 } /** * Get the f34 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelTimestamp} f34 field model */ get f34 () { return this._f34 } /** * Get the f35 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelTimestamp} f35 field model */ get f35 () { return this._f35 } /** * Get the f36 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelUUID} f36 field model */ get f36 () { return this._f36 } /** * Get the f37 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelUUID} f37 field model */ get f37 () { return this._f37 } /** * Get the f38 field model * @this {!FieldModelStructSimple} * @returns {!fbe.FieldModelUUID} f38 field model */ get f38 () { return this._f38 } /** * Get the f39 field model * @this {!FieldModelStructSimple} * @returns {!proto.FieldModelOrderSide} f39 field model */ get f39 () { return this._f39 } /** * Get the f40 field model * @this {!FieldModelStructSimple} * @returns {!proto.FieldModelOrderType} f40 field model */ get f40 () { return this._f40 } /** * Get the f41 field model * @this {!FieldModelStructSimple} * @returns {!proto.FieldModelOrder} f41 field model */ get f41 () { return this._f41 } /** * Get the f42 field model * @this {!FieldModelStructSimple} * @returns {!proto.FieldModelBalance} f42 field model */ get f42 () { return this._f42 } /** * Get the f43 field model * @this {!FieldModelStructSimple} * @returns {!proto.FieldModelState} f43 field model */ get f43 () { return this._f43 } /** * Get the f44 field model * @this {!FieldModelStructSimple} * @returns {!proto.FieldModelAccount} f44 field model */ get f44 () { return this._f44 } /** * Get the field size * @this {!FieldModelStructSimple} * @returns {!number} Field size */ get fbeSize () { return 4 } /** * Get the field body size * @this {!FieldModelStructSimple} * @returns {!number} Field body size */ get fbeBody () { return 4 + 4 + this.id.fbeSize + this.f1.fbeSize + this.f2.fbeSize + this.f3.fbeSize + this.f4.fbeSize + this.f5.fbeSize + this.f6.fbeSize + this.f7.fbeSize + this.f8.fbeSize + this.f9.fbeSize + this.f10.fbeSize + this.f11.fbeSize + this.f12.fbeSize + this.f13.fbeSize + this.f14.fbeSize + this.f15.fbeSize + this.f16.fbeSize + this.f17.fbeSize + this.f18.fbeSize + this.f19.fbeSize + this.f20.fbeSize + this.f21.fbeSize + this.f22.fbeSize + this.f23.fbeSize + this.f24.fbeSize + this.f25.fbeSize + this.f26.fbeSize + this.f27.fbeSize + this.f28.fbeSize + this.f29.fbeSize + this.f30.fbeSize + this.f31.fbeSize + this.f32.fbeSize + this.f33.fbeSize + this.f34.fbeSize + this.f35.fbeSize + this.f36.fbeSize + this.f37.fbeSize + this.f38.fbeSize + this.f39.fbeSize + this.f40.fbeSize + this.f41.fbeSize + this.f42.fbeSize + this.f43.fbeSize + this.f44.fbeSize } /** * Get the field extra size * @this {!FieldModelStructSimple} * @returns {!number} Field extra size */ get fbeExtra () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructOffset = this.readUInt32(this.fbeOffset) if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4) > this._buffer.size)) { return 0 } this._buffer.shift(fbeStructOffset) let fbeResult = this.fbeBody + this.id.fbeExtra + this.f1.fbeExtra + this.f2.fbeExtra + this.f3.fbeExtra + this.f4.fbeExtra + this.f5.fbeExtra + this.f6.fbeExtra + this.f7.fbeExtra + this.f8.fbeExtra + this.f9.fbeExtra + this.f10.fbeExtra + this.f11.fbeExtra + this.f12.fbeExtra + this.f13.fbeExtra + this.f14.fbeExtra + this.f15.fbeExtra + this.f16.fbeExtra + this.f17.fbeExtra + this.f18.fbeExtra + this.f19.fbeExtra + this.f20.fbeExtra + this.f21.fbeExtra + this.f22.fbeExtra + this.f23.fbeExtra + this.f24.fbeExtra + this.f25.fbeExtra + this.f26.fbeExtra + this.f27.fbeExtra + this.f28.fbeExtra + this.f29.fbeExtra + this.f30.fbeExtra + this.f31.fbeExtra + this.f32.fbeExtra + this.f33.fbeExtra + this.f34.fbeExtra + this.f35.fbeExtra + this.f36.fbeExtra + this.f37.fbeExtra + this.f38.fbeExtra + this.f39.fbeExtra + this.f40.fbeExtra + this.f41.fbeExtra + this.f42.fbeExtra + this.f43.fbeExtra + this.f44.fbeExtra this._buffer.unshift(fbeStructOffset) return fbeResult } /** * Get the field type * @this {!FieldModelStructSimple} * @returns {!number} Field type */ get fbeType () { return FieldModelStructSimple.fbeType } /** * Get the field type (static) * @this {!FieldModelStructSimple} * @returns {!number} Field type */ static get fbeType () { return 110 } /** * Check if the struct value is valid * @this {!FieldModelStructSimple} * @param {!boolean} fbeVerifyType Verify model type flag, defaults is true * @returns {!boolean} Field model valid state */ verify (fbeVerifyType = true) { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return true } let fbeStructOffset = this.readUInt32(this.fbeOffset) if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4 + 4) > this._buffer.size)) { return false } let fbeStructSize = this.readUInt32(fbeStructOffset) if (fbeStructSize < (4 + 4)) { return false } let fbeStructType = this.readUInt32(fbeStructOffset + 4) if (fbeVerifyType && (fbeStructType !== this.fbeType)) { return false } this._buffer.shift(fbeStructOffset) let fbeResult = this.verifyFields(fbeStructSize) this._buffer.unshift(fbeStructOffset) return fbeResult } /** * Check if the struct fields are valid * @this {!FieldModelStructSimple} * @param {!number} fbeStructSize FBE struct size * @returns {!boolean} Field model valid state */ verifyFields (fbeStructSize) { let fbeCurrentSize = 4 + 4 if ((fbeCurrentSize + this.id.fbeSize) > fbeStructSize) { return true } if (!this.id.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.id.fbeSize if ((fbeCurrentSize + this.f1.fbeSize) > fbeStructSize) { return true } if (!this.f1.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1.fbeSize if ((fbeCurrentSize + this.f2.fbeSize) > fbeStructSize) { return true } if (!this.f2.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f2.fbeSize if ((fbeCurrentSize + this.f3.fbeSize) > fbeStructSize) { return true } if (!this.f3.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f3.fbeSize if ((fbeCurrentSize + this.f4.fbeSize) > fbeStructSize) { return true } if (!this.f4.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f4.fbeSize if ((fbeCurrentSize + this.f5.fbeSize) > fbeStructSize) { return true } if (!this.f5.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f5.fbeSize if ((fbeCurrentSize + this.f6.fbeSize) > fbeStructSize) { return true } if (!this.f6.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f6.fbeSize if ((fbeCurrentSize + this.f7.fbeSize) > fbeStructSize) { return true } if (!this.f7.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f7.fbeSize if ((fbeCurrentSize + this.f8.fbeSize) > fbeStructSize) { return true } if (!this.f8.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f8.fbeSize if ((fbeCurrentSize + this.f9.fbeSize) > fbeStructSize) { return true } if (!this.f9.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f9.fbeSize if ((fbeCurrentSize + this.f10.fbeSize) > fbeStructSize) { return true } if (!this.f10.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f10.fbeSize if ((fbeCurrentSize + this.f11.fbeSize) > fbeStructSize) { return true } if (!this.f11.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f11.fbeSize if ((fbeCurrentSize + this.f12.fbeSize) > fbeStructSize) { return true } if (!this.f12.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f12.fbeSize if ((fbeCurrentSize + this.f13.fbeSize) > fbeStructSize) { return true } if (!this.f13.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f13.fbeSize if ((fbeCurrentSize + this.f14.fbeSize) > fbeStructSize) { return true } if (!this.f14.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f14.fbeSize if ((fbeCurrentSize + this.f15.fbeSize) > fbeStructSize) { return true } if (!this.f15.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f15.fbeSize if ((fbeCurrentSize + this.f16.fbeSize) > fbeStructSize) { return true } if (!this.f16.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f16.fbeSize if ((fbeCurrentSize + this.f17.fbeSize) > fbeStructSize) { return true } if (!this.f17.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f17.fbeSize if ((fbeCurrentSize + this.f18.fbeSize) > fbeStructSize) { return true } if (!this.f18.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f18.fbeSize if ((fbeCurrentSize + this.f19.fbeSize) > fbeStructSize) { return true } if (!this.f19.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f19.fbeSize if ((fbeCurrentSize + this.f20.fbeSize) > fbeStructSize) { return true } if (!this.f20.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f20.fbeSize if ((fbeCurrentSize + this.f21.fbeSize) > fbeStructSize) { return true } if (!this.f21.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f21.fbeSize if ((fbeCurrentSize + this.f22.fbeSize) > fbeStructSize) { return true } if (!this.f22.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f22.fbeSize if ((fbeCurrentSize + this.f23.fbeSize) > fbeStructSize) { return true } if (!this.f23.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f23.fbeSize if ((fbeCurrentSize + this.f24.fbeSize) > fbeStructSize) { return true } if (!this.f24.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f24.fbeSize if ((fbeCurrentSize + this.f25.fbeSize) > fbeStructSize) { return true } if (!this.f25.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f25.fbeSize if ((fbeCurrentSize + this.f26.fbeSize) > fbeStructSize) { return true } if (!this.f26.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f26.fbeSize if ((fbeCurrentSize + this.f27.fbeSize) > fbeStructSize) { return true } if (!this.f27.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f27.fbeSize if ((fbeCurrentSize + this.f28.fbeSize) > fbeStructSize) { return true } if (!this.f28.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f28.fbeSize if ((fbeCurrentSize + this.f29.fbeSize) > fbeStructSize) { return true } if (!this.f29.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f29.fbeSize if ((fbeCurrentSize + this.f30.fbeSize) > fbeStructSize) { return true } if (!this.f30.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f30.fbeSize if ((fbeCurrentSize + this.f31.fbeSize) > fbeStructSize) { return true } if (!this.f31.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f31.fbeSize if ((fbeCurrentSize + this.f32.fbeSize) > fbeStructSize) { return true } if (!this.f32.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f32.fbeSize if ((fbeCurrentSize + this.f33.fbeSize) > fbeStructSize) { return true } if (!this.f33.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f33.fbeSize if ((fbeCurrentSize + this.f34.fbeSize) > fbeStructSize) { return true } if (!this.f34.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f34.fbeSize if ((fbeCurrentSize + this.f35.fbeSize) > fbeStructSize) { return true } if (!this.f35.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f35.fbeSize if ((fbeCurrentSize + this.f36.fbeSize) > fbeStructSize) { return true } if (!this.f36.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f36.fbeSize if ((fbeCurrentSize + this.f37.fbeSize) > fbeStructSize) { return true } if (!this.f37.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f37.fbeSize if ((fbeCurrentSize + this.f38.fbeSize) > fbeStructSize) { return true } if (!this.f38.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f38.fbeSize if ((fbeCurrentSize + this.f39.fbeSize) > fbeStructSize) { return true } if (!this.f39.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f39.fbeSize if ((fbeCurrentSize + this.f40.fbeSize) > fbeStructSize) { return true } if (!this.f40.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f40.fbeSize if ((fbeCurrentSize + this.f41.fbeSize) > fbeStructSize) { return true } if (!this.f41.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f41.fbeSize if ((fbeCurrentSize + this.f42.fbeSize) > fbeStructSize) { return true } if (!this.f42.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f42.fbeSize if ((fbeCurrentSize + this.f43.fbeSize) > fbeStructSize) { return true } if (!this.f43.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f43.fbeSize if ((fbeCurrentSize + this.f44.fbeSize) > fbeStructSize) { return true } if (!this.f44.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f44.fbeSize return true } /** * Get the struct value (begin phase) * @this {!FieldModelStructSimple} * @returns {!number} Field model begin offset */ getBegin () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructOffset = this.readUInt32(this.fbeOffset) console.assert((fbeStructOffset > 0) && ((this._buffer.offset + fbeStructOffset + 4 + 4) <= this._buffer.size), 'Model is broken!') if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4 + 4) > this._buffer.size)) { return 0 } let fbeStructSize = this.readUInt32(fbeStructOffset) console.assert((fbeStructSize >= (4 + 4)), 'Model is broken!') if (fbeStructSize < (4 + 4)) { return 0 } this._buffer.shift(fbeStructOffset) return fbeStructOffset } /** * Get the struct value (end phase) * @this {!FieldModelStructSimple} * @param {!number} fbeBegin Field model begin offset */ getEnd (fbeBegin) { this._buffer.unshift(fbeBegin) } /** * Get the struct value * @this {!FieldModelStructSimple} * @param {!StructSimple} fbeValue Default value, defaults is new StructSimple() * @returns {!StructSimple} StructSimple value */ get (fbeValue = new StructSimple()) { let fbeBegin = this.getBegin() if (fbeBegin === 0) { return fbeValue } let fbeStructSize = this.readUInt32(0) this.getFields(fbeValue, fbeStructSize) this.getEnd(fbeBegin) return fbeValue } /** * Get the struct fields values * @this {!FieldModelStructSimple} * @param {!StructSimple} fbeValue StructSimple value * @param {!number} fbeStructSize Struct size */ getFields (fbeValue, fbeStructSize) { let fbeCurrentSize = 4 + 4 if ((fbeCurrentSize + this.id.fbeSize) <= fbeStructSize) { fbeValue.id = this.id.get() } else { fbeValue.id = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.id.fbeSize if ((fbeCurrentSize + this.f1.fbeSize) <= fbeStructSize) { fbeValue.f1 = this.f1.get() } else { fbeValue.f1 = false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1.fbeSize if ((fbeCurrentSize + this.f2.fbeSize) <= fbeStructSize) { fbeValue.f2 = this.f2.get(true) } else { fbeValue.f2 = true } // noinspection JSUnusedAssignment fbeCurrentSize += this.f2.fbeSize if ((fbeCurrentSize + this.f3.fbeSize) <= fbeStructSize) { fbeValue.f3 = this.f3.get() } else { fbeValue.f3 = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f3.fbeSize if ((fbeCurrentSize + this.f4.fbeSize) <= fbeStructSize) { fbeValue.f4 = this.f4.get(255) } else { fbeValue.f4 = 255 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f4.fbeSize if ((fbeCurrentSize + this.f5.fbeSize) <= fbeStructSize) { fbeValue.f5 = this.f5.get() } else { fbeValue.f5 = '\0' } // noinspection JSUnusedAssignment fbeCurrentSize += this.f5.fbeSize if ((fbeCurrentSize + this.f6.fbeSize) <= fbeStructSize) { fbeValue.f6 = this.f6.get('!') } else { fbeValue.f6 = '!' } // noinspection JSUnusedAssignment fbeCurrentSize += this.f6.fbeSize if ((fbeCurrentSize + this.f7.fbeSize) <= fbeStructSize) { fbeValue.f7 = this.f7.get() } else { fbeValue.f7 = '\0' } // noinspection JSUnusedAssignment fbeCurrentSize += this.f7.fbeSize if ((fbeCurrentSize + this.f8.fbeSize) <= fbeStructSize) { fbeValue.f8 = this.f8.get(String.fromCharCode(0x0444)) } else { fbeValue.f8 = String.fromCharCode(0x0444) } // noinspection JSUnusedAssignment fbeCurrentSize += this.f8.fbeSize if ((fbeCurrentSize + this.f9.fbeSize) <= fbeStructSize) { fbeValue.f9 = this.f9.get() } else { fbeValue.f9 = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f9.fbeSize if ((fbeCurrentSize + this.f10.fbeSize) <= fbeStructSize) { fbeValue.f10 = this.f10.get(127) } else { fbeValue.f10 = 127 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f10.fbeSize if ((fbeCurrentSize + this.f11.fbeSize) <= fbeStructSize) { fbeValue.f11 = this.f11.get(0) } else { fbeValue.f11 = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f11.fbeSize if ((fbeCurrentSize + this.f12.fbeSize) <= fbeStructSize) { fbeValue.f12 = this.f12.get(255) } else { fbeValue.f12 = 255 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f12.fbeSize if ((fbeCurrentSize + this.f13.fbeSize) <= fbeStructSize) { fbeValue.f13 = this.f13.get() } else { fbeValue.f13 = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f13.fbeSize if ((fbeCurrentSize + this.f14.fbeSize) <= fbeStructSize) { fbeValue.f14 = this.f14.get(32767) } else { fbeValue.f14 = 32767 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f14.fbeSize if ((fbeCurrentSize + this.f15.fbeSize) <= fbeStructSize) { fbeValue.f15 = this.f15.get(0) } else { fbeValue.f15 = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f15.fbeSize if ((fbeCurrentSize + this.f16.fbeSize) <= fbeStructSize) { fbeValue.f16 = this.f16.get(65535) } else { fbeValue.f16 = 65535 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f16.fbeSize if ((fbeCurrentSize + this.f17.fbeSize) <= fbeStructSize) { fbeValue.f17 = this.f17.get() } else { fbeValue.f17 = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f17.fbeSize if ((fbeCurrentSize + this.f18.fbeSize) <= fbeStructSize) { fbeValue.f18 = this.f18.get(2147483647) } else { fbeValue.f18 = 2147483647 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f18.fbeSize if ((fbeCurrentSize + this.f19.fbeSize) <= fbeStructSize) { fbeValue.f19 = this.f19.get(0) } else { fbeValue.f19 = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f19.fbeSize if ((fbeCurrentSize + this.f20.fbeSize) <= fbeStructSize) { fbeValue.f20 = this.f20.get(4294967295) } else { fbeValue.f20 = 4294967295 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f20.fbeSize if ((fbeCurrentSize + this.f21.fbeSize) <= fbeStructSize) { fbeValue.f21 = this.f21.get() } else { fbeValue.f21 = new Int64(0, 0) } // noinspection JSUnusedAssignment fbeCurrentSize += this.f21.fbeSize if ((fbeCurrentSize + this.f22.fbeSize) <= fbeStructSize) { fbeValue.f22 = this.f22.get(new Int64(4294967295, 2147483647)) } else { fbeValue.f22 = new Int64(4294967295, 2147483647) } // noinspection JSUnusedAssignment fbeCurrentSize += this.f22.fbeSize if ((fbeCurrentSize + this.f23.fbeSize) <= fbeStructSize) { fbeValue.f23 = this.f23.get(new UInt64(0, 0)) } else { fbeValue.f23 = new UInt64(0, 0) } // noinspection JSUnusedAssignment fbeCurrentSize += this.f23.fbeSize if ((fbeCurrentSize + this.f24.fbeSize) <= fbeStructSize) { fbeValue.f24 = this.f24.get(new UInt64(4294967295, 4294967295)) } else { fbeValue.f24 = new UInt64(4294967295, 4294967295) } // noinspection JSUnusedAssignment fbeCurrentSize += this.f24.fbeSize if ((fbeCurrentSize + this.f25.fbeSize) <= fbeStructSize) { fbeValue.f25 = this.f25.get() } else { fbeValue.f25 = 0.0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f25.fbeSize if ((fbeCurrentSize + this.f26.fbeSize) <= fbeStructSize) { fbeValue.f26 = this.f26.get(123.456) } else { fbeValue.f26 = 123.456 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f26.fbeSize if ((fbeCurrentSize + this.f27.fbeSize) <= fbeStructSize) { fbeValue.f27 = this.f27.get() } else { fbeValue.f27 = 0.0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f27.fbeSize if ((fbeCurrentSize + this.f28.fbeSize) <= fbeStructSize) { fbeValue.f28 = this.f28.get(-123.456e+123) } else { fbeValue.f28 = -123.456e+123 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f28.fbeSize if ((fbeCurrentSize + this.f29.fbeSize) <= fbeStructSize) { fbeValue.f29 = this.f29.get() } else { fbeValue.f29 = new Big(0) } // noinspection JSUnusedAssignment fbeCurrentSize += this.f29.fbeSize if ((fbeCurrentSize + this.f30.fbeSize) <= fbeStructSize) { fbeValue.f30 = this.f30.get(new Big('123456.123456')) } else { fbeValue.f30 = new Big('123456.123456') } // noinspection JSUnusedAssignment fbeCurrentSize += this.f30.fbeSize if ((fbeCurrentSize + this.f31.fbeSize) <= fbeStructSize) { fbeValue.f31 = this.f31.get() } else { fbeValue.f31 = '' } // noinspection JSUnusedAssignment fbeCurrentSize += this.f31.fbeSize if ((fbeCurrentSize + this.f32.fbeSize) <= fbeStructSize) { fbeValue.f32 = this.f32.get('Initial string!') } else { fbeValue.f32 = 'Initial string!' } // noinspection JSUnusedAssignment fbeCurrentSize += this.f32.fbeSize if ((fbeCurrentSize + this.f33.fbeSize) <= fbeStructSize) { fbeValue.f33 = this.f33.get() } else { fbeValue.f33 = new Date(0) } // noinspection JSUnusedAssignment fbeCurrentSize += this.f33.fbeSize if ((fbeCurrentSize + this.f34.fbeSize) <= fbeStructSize) { fbeValue.f34 = this.f34.get(new Date(0)) } else { fbeValue.f34 = new Date(0) } // noinspection JSUnusedAssignment fbeCurrentSize += this.f34.fbeSize if ((fbeCurrentSize + this.f35.fbeSize) <= fbeStructSize) { fbeValue.f35 = this.f35.get(new Date(Date.now())) } else { fbeValue.f35 = new Date(Date.now()) } // noinspection JSUnusedAssignment fbeCurrentSize += this.f35.fbeSize if ((fbeCurrentSize + this.f36.fbeSize) <= fbeStructSize) { fbeValue.f36 = this.f36.get() } else { fbeValue.f36 = new UUID() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f36.fbeSize if ((fbeCurrentSize + this.f37.fbeSize) <= fbeStructSize) { fbeValue.f37 = this.f37.get(UUID.database()) } else { fbeValue.f37 = UUID.database() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f37.fbeSize if ((fbeCurrentSize + this.f38.fbeSize) <= fbeStructSize) { fbeValue.f38 = this.f38.get(new UUID('123e4567-e89b-12d3-a456-426655440000')) } else { fbeValue.f38 = new UUID('123e4567-e89b-12d3-a456-426655440000') } // noinspection JSUnusedAssignment fbeCurrentSize += this.f38.fbeSize if ((fbeCurrentSize + this.f39.fbeSize) <= fbeStructSize) { fbeValue.f39 = this.f39.get() } else { fbeValue.f39 = new proto.OrderSide() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f39.fbeSize if ((fbeCurrentSize + this.f40.fbeSize) <= fbeStructSize) { fbeValue.f40 = this.f40.get() } else { fbeValue.f40 = new proto.OrderType() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f40.fbeSize if ((fbeCurrentSize + this.f41.fbeSize) <= fbeStructSize) { fbeValue.f41 = this.f41.get() } else { fbeValue.f41 = new proto.Order() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f41.fbeSize if ((fbeCurrentSize + this.f42.fbeSize) <= fbeStructSize) { fbeValue.f42 = this.f42.get() } else { fbeValue.f42 = new proto.Balance() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f42.fbeSize if ((fbeCurrentSize + this.f43.fbeSize) <= fbeStructSize) { fbeValue.f43 = this.f43.get() } else { fbeValue.f43 = new proto.State() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f43.fbeSize if ((fbeCurrentSize + this.f44.fbeSize) <= fbeStructSize) { fbeValue.f44 = this.f44.get() } else { fbeValue.f44 = new proto.Account() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f44.fbeSize } /** * Set the struct value (begin phase) * @this {!FieldModelStructSimple} * @returns {!number} Field model begin offset */ setBegin () { console.assert(((this._buffer.offset + this.fbeOffset + this.fbeSize) <= this._buffer.size), 'Model is broken!') if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructSize = this.fbeBody let fbeStructOffset = this._buffer.allocate(fbeStructSize) - this._buffer.offset console.assert((fbeStructOffset > 0) && ((this._buffer.offset + fbeStructOffset + fbeStructSize) <= this._buffer.size), 'Model is broken!') if ((fbeStructOffset <= 0) || ((this._buffer.offset + fbeStructOffset + fbeStructSize) > this._buffer.size)) { return 0 } this.writeUInt32(this.fbeOffset, fbeStructOffset) this.writeUInt32(fbeStructOffset, fbeStructSize) this.writeUInt32(fbeStructOffset + 4, this.fbeType) this._buffer.shift(fbeStructOffset) return fbeStructOffset } /** * Set the struct value (end phase) * @this {!FieldModelStructSimple} * @param {!number} fbeBegin Field model begin offset */ setEnd (fbeBegin) { this._buffer.unshift(fbeBegin) } /** * Set the struct value * @this {!FieldModelStructSimple} * @param {!StructSimple} fbeValue StructSimple value */ set (fbeValue) { let fbeBegin = this.setBegin() if (fbeBegin === 0) { return } this.setFields(fbeValue) this.setEnd(fbeBegin) } /** * Set the struct fields values * @this {!FieldModelStructSimple} * @param {StructSimple} fbeValue StructSimple value */ setFields (fbeValue) { this.id.set(fbeValue.id) this.f1.set(fbeValue.f1) this.f2.set(fbeValue.f2) this.f3.set(fbeValue.f3) this.f4.set(fbeValue.f4) this.f5.set(fbeValue.f5) this.f6.set(fbeValue.f6) this.f7.set(fbeValue.f7) this.f8.set(fbeValue.f8) this.f9.set(fbeValue.f9) this.f10.set(fbeValue.f10) this.f11.set(fbeValue.f11) this.f12.set(fbeValue.f12) this.f13.set(fbeValue.f13) this.f14.set(fbeValue.f14) this.f15.set(fbeValue.f15) this.f16.set(fbeValue.f16) this.f17.set(fbeValue.f17) this.f18.set(fbeValue.f18) this.f19.set(fbeValue.f19) this.f20.set(fbeValue.f20) this.f21.set(fbeValue.f21) this.f22.set(fbeValue.f22) this.f23.set(fbeValue.f23) this.f24.set(fbeValue.f24) this.f25.set(fbeValue.f25) this.f26.set(fbeValue.f26) this.f27.set(fbeValue.f27) this.f28.set(fbeValue.f28) this.f29.set(fbeValue.f29) this.f30.set(fbeValue.f30) this.f31.set(fbeValue.f31) this.f32.set(fbeValue.f32) this.f33.set(fbeValue.f33) this.f34.set(fbeValue.f34) this.f35.set(fbeValue.f35) this.f36.set(fbeValue.f36) this.f37.set(fbeValue.f37) this.f38.set(fbeValue.f38) this.f39.set(fbeValue.f39) this.f40.set(fbeValue.f40) this.f41.set(fbeValue.f41) this.f42.set(fbeValue.f42) this.f43.set(fbeValue.f43) this.f44.set(fbeValue.f44) } } exports.FieldModelStructSimple = FieldModelStructSimple /** * Fast Binary Encoding StructSimple model */ class StructSimpleModel extends fbe.Model { /** * Initialize model with the given buffer * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Read/Write buffer, defaults is new fbe.WriteBuffer() * @constructor */ constructor (buffer = new fbe.WriteBuffer()) { super(buffer) this._model = new FieldModelStructSimple(this.buffer, 4) } /** * Get the StructSimple model * @this {!StructSimpleModel} * @returns {!FieldModelStructSimple} model StructSimple model */ get model () { return this._model } /** * Get the model size * @this {!StructSimpleModel} * @returns {!number} Model size */ get fbeSize () { return this.model.fbeSize + this.model.fbeExtra } /** * Get the model type * @this {!StructSimpleModel} * @returns {!number} Model type */ get fbeType () { return StructSimpleModel.fbeType } /** * Get the model type (static) * @this {!StructSimpleModel} * @returns {!number} Model type */ static get fbeType () { return FieldModelStructSimple.fbeType } /** * Check if the struct value is valid * @this {!StructSimpleModel} * @returns {!boolean} Model valid state */ verify () { if ((this.buffer.offset + this.model.fbeOffset - 4) > this.buffer.size) { return false } let fbeFullSize = this.readUInt32(this.model.fbeOffset - 4) if (fbeFullSize < this.model.fbeSize) { return false } return this.model.verify() } /** * Create a new model (begin phase) * @this {!StructSimpleModel} * @returns {!number} Model begin offset */ createBegin () { return this.buffer.allocate(4 + this.model.fbeSize) } /** * Create a new model (end phase) * @this {!StructSimpleModel} * @param {!number} fbeBegin Model begin offset */ createEnd (fbeBegin) { let fbeEnd = this.buffer.size let fbeFullSize = fbeEnd - fbeBegin this.writeUInt32(this.model.fbeOffset - 4, fbeFullSize) return fbeFullSize } /** * Serialize the struct value * @this {!StructSimpleModel} * @param {!StructSimple} value StructSimple value * @return {!number} Model begin offset */ serialize (value) { let fbeBegin = this.createBegin() this.model.set(value) return this.createEnd(fbeBegin) } /** * Deserialize the struct value * @this {!StructSimpleModel} * @param {!StructSimple} value StructSimple value, defaults is new StructSimple() * @return {!object} Deserialized StructSimple value and its size */ deserialize (value = new StructSimple()) { if ((this.buffer.offset + this.model.fbeOffset - 4) > this.buffer.size) { return { value: new StructSimple(), size: 0 } } let fbeFullSize = this.readUInt32(this.model.fbeOffset - 4) console.assert((fbeFullSize >= this.model.fbeSize), 'Model is broken!') if (fbeFullSize < this.model.fbeSize) { return { value: new StructSimple(), size: 0 } } this.model.get(value) return { value, size: fbeFullSize } } /** * Move to the next struct value * @this {!StructSimpleModel} * @param {!number} prev Previous StructSimple model size */ next (prev) { this.model.fbeShift(prev) } } exports.StructSimpleModel = StructSimpleModel /** * Fast Binary Encoding StructSimple final model */ class FinalModelStructSimple extends fbe.FinalModel { /** * Initialize final model with the given buffer and offset * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Buffer * @param {!number} offset Offset * @constructor */ constructor (buffer, offset) { super(buffer, offset) this._id = new fbe.FinalModelInt32(buffer, 0) this._f1 = new fbe.FinalModelBool(buffer, 0) this._f2 = new fbe.FinalModelBool(buffer, 0) this._f3 = new fbe.FinalModelByte(buffer, 0) this._f4 = new fbe.FinalModelByte(buffer, 0) this._f5 = new fbe.FinalModelChar(buffer, 0) this._f6 = new fbe.FinalModelChar(buffer, 0) this._f7 = new fbe.FinalModelWChar(buffer, 0) this._f8 = new fbe.FinalModelWChar(buffer, 0) this._f9 = new fbe.FinalModelInt8(buffer, 0) this._f10 = new fbe.FinalModelInt8(buffer, 0) this._f11 = new fbe.FinalModelUInt8(buffer, 0) this._f12 = new fbe.FinalModelUInt8(buffer, 0) this._f13 = new fbe.FinalModelInt16(buffer, 0) this._f14 = new fbe.FinalModelInt16(buffer, 0) this._f15 = new fbe.FinalModelUInt16(buffer, 0) this._f16 = new fbe.FinalModelUInt16(buffer, 0) this._f17 = new fbe.FinalModelInt32(buffer, 0) this._f18 = new fbe.FinalModelInt32(buffer, 0) this._f19 = new fbe.FinalModelUInt32(buffer, 0) this._f20 = new fbe.FinalModelUInt32(buffer, 0) this._f21 = new fbe.FinalModelInt64(buffer, 0) this._f22 = new fbe.FinalModelInt64(buffer, 0) this._f23 = new fbe.FinalModelUInt64(buffer, 0) this._f24 = new fbe.FinalModelUInt64(buffer, 0) this._f25 = new fbe.FinalModelFloat(buffer, 0) this._f26 = new fbe.FinalModelFloat(buffer, 0) this._f27 = new fbe.FinalModelDouble(buffer, 0) this._f28 = new fbe.FinalModelDouble(buffer, 0) this._f29 = new fbe.FinalModelDecimal(buffer, 0) this._f30 = new fbe.FinalModelDecimal(buffer, 0) this._f31 = new fbe.FinalModelString(buffer, 0) this._f32 = new fbe.FinalModelString(buffer, 0) this._f33 = new fbe.FinalModelTimestamp(buffer, 0) this._f34 = new fbe.FinalModelTimestamp(buffer, 0) this._f35 = new fbe.FinalModelTimestamp(buffer, 0) this._f36 = new fbe.FinalModelUUID(buffer, 0) this._f37 = new fbe.FinalModelUUID(buffer, 0) this._f38 = new fbe.FinalModelUUID(buffer, 0) this._f39 = new proto.FinalModelOrderSide(buffer, 0) this._f40 = new proto.FinalModelOrderType(buffer, 0) this._f41 = new proto.FinalModelOrder(buffer, 0) this._f42 = new proto.FinalModelBalance(buffer, 0) this._f43 = new proto.FinalModelState(buffer, 0) this._f44 = new proto.FinalModelAccount(buffer, 0) } /** * Get the id final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelInt32} id final model */ get id () { return this._id } /** * Get the f1 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelBool} f1 final model */ get f1 () { return this._f1 } /** * Get the f2 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelBool} f2 final model */ get f2 () { return this._f2 } /** * Get the f3 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelByte} f3 final model */ get f3 () { return this._f3 } /** * Get the f4 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelByte} f4 final model */ get f4 () { return this._f4 } /** * Get the f5 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelChar} f5 final model */ get f5 () { return this._f5 } /** * Get the f6 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelChar} f6 final model */ get f6 () { return this._f6 } /** * Get the f7 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelWChar} f7 final model */ get f7 () { return this._f7 } /** * Get the f8 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelWChar} f8 final model */ get f8 () { return this._f8 } /** * Get the f9 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelInt8} f9 final model */ get f9 () { return this._f9 } /** * Get the f10 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelInt8} f10 final model */ get f10 () { return this._f10 } /** * Get the f11 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelUInt8} f11 final model */ get f11 () { return this._f11 } /** * Get the f12 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelUInt8} f12 final model */ get f12 () { return this._f12 } /** * Get the f13 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelInt16} f13 final model */ get f13 () { return this._f13 } /** * Get the f14 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelInt16} f14 final model */ get f14 () { return this._f14 } /** * Get the f15 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelUInt16} f15 final model */ get f15 () { return this._f15 } /** * Get the f16 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelUInt16} f16 final model */ get f16 () { return this._f16 } /** * Get the f17 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelInt32} f17 final model */ get f17 () { return this._f17 } /** * Get the f18 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelInt32} f18 final model */ get f18 () { return this._f18 } /** * Get the f19 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelUInt32} f19 final model */ get f19 () { return this._f19 } /** * Get the f20 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelUInt32} f20 final model */ get f20 () { return this._f20 } /** * Get the f21 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelInt64} f21 final model */ get f21 () { return this._f21 } /** * Get the f22 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelInt64} f22 final model */ get f22 () { return this._f22 } /** * Get the f23 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelUInt64} f23 final model */ get f23 () { return this._f23 } /** * Get the f24 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelUInt64} f24 final model */ get f24 () { return this._f24 } /** * Get the f25 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelFloat} f25 final model */ get f25 () { return this._f25 } /** * Get the f26 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelFloat} f26 final model */ get f26 () { return this._f26 } /** * Get the f27 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelDouble} f27 final model */ get f27 () { return this._f27 } /** * Get the f28 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelDouble} f28 final model */ get f28 () { return this._f28 } /** * Get the f29 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelDecimal} f29 final model */ get f29 () { return this._f29 } /** * Get the f30 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelDecimal} f30 final model */ get f30 () { return this._f30 } /** * Get the f31 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelString} f31 final model */ get f31 () { return this._f31 } /** * Get the f32 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelString} f32 final model */ get f32 () { return this._f32 } /** * Get the f33 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelTimestamp} f33 final model */ get f33 () { return this._f33 } /** * Get the f34 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelTimestamp} f34 final model */ get f34 () { return this._f34 } /** * Get the f35 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelTimestamp} f35 final model */ get f35 () { return this._f35 } /** * Get the f36 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelUUID} f36 final model */ get f36 () { return this._f36 } /** * Get the f37 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelUUID} f37 final model */ get f37 () { return this._f37 } /** * Get the f38 final model * @this {!FinalModelStructSimple} * @returns {!fbe.FinalModelUUID} f38 final model */ get f38 () { return this._f38 } /** * Get the f39 final model * @this {!FinalModelStructSimple} * @returns {!proto.FinalModelOrderSide} f39 final model */ get f39 () { return this._f39 } /** * Get the f40 final model * @this {!FinalModelStructSimple} * @returns {!proto.FinalModelOrderType} f40 final model */ get f40 () { return this._f40 } /** * Get the f41 final model * @this {!FinalModelStructSimple} * @returns {!proto.FinalModelOrder} f41 final model */ get f41 () { return this._f41 } /** * Get the f42 final model * @this {!FinalModelStructSimple} * @returns {!proto.FinalModelBalance} f42 final model */ get f42 () { return this._f42 } /** * Get the f43 final model * @this {!FinalModelStructSimple} * @returns {!proto.FinalModelState} f43 final model */ get f43 () { return this._f43 } /** * Get the f44 final model * @this {!FinalModelStructSimple} * @returns {!proto.FinalModelAccount} f44 final model */ get f44 () { return this._f44 } /** * Get the allocation size * @this {!FinalModelStructSimple} * @param {!StructSimple} fbeValue StructSimple value * @returns {!number} Allocation size */ fbeAllocationSize (fbeValue) { return 0 + this.id.fbeAllocationSize(fbeValue.id) + this.f1.fbeAllocationSize(fbeValue.f1) + this.f2.fbeAllocationSize(fbeValue.f2) + this.f3.fbeAllocationSize(fbeValue.f3) + this.f4.fbeAllocationSize(fbeValue.f4) + this.f5.fbeAllocationSize(fbeValue.f5) + this.f6.fbeAllocationSize(fbeValue.f6) + this.f7.fbeAllocationSize(fbeValue.f7) + this.f8.fbeAllocationSize(fbeValue.f8) + this.f9.fbeAllocationSize(fbeValue.f9) + this.f10.fbeAllocationSize(fbeValue.f10) + this.f11.fbeAllocationSize(fbeValue.f11) + this.f12.fbeAllocationSize(fbeValue.f12) + this.f13.fbeAllocationSize(fbeValue.f13) + this.f14.fbeAllocationSize(fbeValue.f14) + this.f15.fbeAllocationSize(fbeValue.f15) + this.f16.fbeAllocationSize(fbeValue.f16) + this.f17.fbeAllocationSize(fbeValue.f17) + this.f18.fbeAllocationSize(fbeValue.f18) + this.f19.fbeAllocationSize(fbeValue.f19) + this.f20.fbeAllocationSize(fbeValue.f20) + this.f21.fbeAllocationSize(fbeValue.f21) + this.f22.fbeAllocationSize(fbeValue.f22) + this.f23.fbeAllocationSize(fbeValue.f23) + this.f24.fbeAllocationSize(fbeValue.f24) + this.f25.fbeAllocationSize(fbeValue.f25) + this.f26.fbeAllocationSize(fbeValue.f26) + this.f27.fbeAllocationSize(fbeValue.f27) + this.f28.fbeAllocationSize(fbeValue.f28) + this.f29.fbeAllocationSize(fbeValue.f29) + this.f30.fbeAllocationSize(fbeValue.f30) + this.f31.fbeAllocationSize(fbeValue.f31) + this.f32.fbeAllocationSize(fbeValue.f32) + this.f33.fbeAllocationSize(fbeValue.f33) + this.f34.fbeAllocationSize(fbeValue.f34) + this.f35.fbeAllocationSize(fbeValue.f35) + this.f36.fbeAllocationSize(fbeValue.f36) + this.f37.fbeAllocationSize(fbeValue.f37) + this.f38.fbeAllocationSize(fbeValue.f38) + this.f39.fbeAllocationSize(fbeValue.f39) + this.f40.fbeAllocationSize(fbeValue.f40) + this.f41.fbeAllocationSize(fbeValue.f41) + this.f42.fbeAllocationSize(fbeValue.f42) + this.f43.fbeAllocationSize(fbeValue.f43) + this.f44.fbeAllocationSize(fbeValue.f44) } /** * Get the final type * @this {!FinalModelStructSimple} * @returns {!number} Final type */ get fbeType () { return FinalModelStructSimple.fbeType } /** * Get the final type (static) * @this {!FinalModelStructSimple} * @returns {!number} Final type */ static get fbeType () { return 110 } /** * Check if the struct value is valid * @this {!FinalModelStructSimple} * @returns {!number} Final model size or Number.MAX_SAFE_INTEGER in case of any error */ verify () { this._buffer.shift(this.fbeOffset) let fbeResult = this.verifyFields() this._buffer.unshift(this.fbeOffset) return fbeResult } /** * Check if the struct fields are valid * @this {!FinalModelStructSimple} * @returns {!number} Final model size or Number.MAX_SAFE_INTEGER in case of any error */ verifyFields () { let fbeCurrentOffset = 0 let fbeFieldSize this.id.fbeOffset = fbeCurrentOffset fbeFieldSize = this.id.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f1.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f2.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f2.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f3.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f3.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f4.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f4.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f5.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f5.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f6.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f6.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f7.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f7.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f8.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f8.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f9.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f9.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f10.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f10.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f11.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f11.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f12.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f12.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f13.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f13.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f14.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f14.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f15.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f15.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f16.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f16.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f17.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f17.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f18.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f18.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f19.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f19.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f20.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f20.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f21.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f21.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f22.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f22.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f23.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f23.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f24.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f24.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f25.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f25.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f26.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f26.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f27.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f27.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f28.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f28.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f29.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f29.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f30.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f30.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f31.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f31.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f32.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f32.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f33.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f33.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f34.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f34.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f35.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f35.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f36.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f36.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f37.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f37.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f38.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f38.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f39.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f39.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f40.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f40.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f41.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f41.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f42.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f42.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f43.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f43.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f44.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f44.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize return fbeCurrentOffset } /** * Get the struct value * @this {!FinalModelStructSimple} * @param {!StructSimple} fbeValue StructSimple value, defaults is new StructSimple() * @returns {!object} Result struct value and its size */ get (fbeValue = new StructSimple()) { this._buffer.shift(this.fbeOffset) let fbeSize = this.getFields(fbeValue) this._buffer.unshift(this.fbeOffset) return { value: fbeValue, size: fbeSize } } /** * Get the struct fields values * @this {!FinalModelStructSimple} * @param {!StructSimple} fbeValue StructSimple value * @returns {!number} Struct size */ getFields (fbeValue) { let fbeCurrentOffset = 0 let fbeCurrentSize = 0 let fbeResult this.id.fbeOffset = fbeCurrentOffset fbeResult = this.id.get() fbeValue.id = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f1.fbeOffset = fbeCurrentOffset fbeResult = this.f1.get() fbeValue.f1 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f2.fbeOffset = fbeCurrentOffset fbeResult = this.f2.get() fbeValue.f2 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f3.fbeOffset = fbeCurrentOffset fbeResult = this.f3.get() fbeValue.f3 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f4.fbeOffset = fbeCurrentOffset fbeResult = this.f4.get() fbeValue.f4 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f5.fbeOffset = fbeCurrentOffset fbeResult = this.f5.get() fbeValue.f5 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f6.fbeOffset = fbeCurrentOffset fbeResult = this.f6.get() fbeValue.f6 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f7.fbeOffset = fbeCurrentOffset fbeResult = this.f7.get() fbeValue.f7 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f8.fbeOffset = fbeCurrentOffset fbeResult = this.f8.get() fbeValue.f8 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f9.fbeOffset = fbeCurrentOffset fbeResult = this.f9.get() fbeValue.f9 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f10.fbeOffset = fbeCurrentOffset fbeResult = this.f10.get() fbeValue.f10 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f11.fbeOffset = fbeCurrentOffset fbeResult = this.f11.get() fbeValue.f11 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f12.fbeOffset = fbeCurrentOffset fbeResult = this.f12.get() fbeValue.f12 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f13.fbeOffset = fbeCurrentOffset fbeResult = this.f13.get() fbeValue.f13 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f14.fbeOffset = fbeCurrentOffset fbeResult = this.f14.get() fbeValue.f14 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f15.fbeOffset = fbeCurrentOffset fbeResult = this.f15.get() fbeValue.f15 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f16.fbeOffset = fbeCurrentOffset fbeResult = this.f16.get() fbeValue.f16 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f17.fbeOffset = fbeCurrentOffset fbeResult = this.f17.get() fbeValue.f17 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f18.fbeOffset = fbeCurrentOffset fbeResult = this.f18.get() fbeValue.f18 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f19.fbeOffset = fbeCurrentOffset fbeResult = this.f19.get() fbeValue.f19 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f20.fbeOffset = fbeCurrentOffset fbeResult = this.f20.get() fbeValue.f20 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f21.fbeOffset = fbeCurrentOffset fbeResult = this.f21.get() fbeValue.f21 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f22.fbeOffset = fbeCurrentOffset fbeResult = this.f22.get() fbeValue.f22 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f23.fbeOffset = fbeCurrentOffset fbeResult = this.f23.get() fbeValue.f23 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f24.fbeOffset = fbeCurrentOffset fbeResult = this.f24.get() fbeValue.f24 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f25.fbeOffset = fbeCurrentOffset fbeResult = this.f25.get() fbeValue.f25 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f26.fbeOffset = fbeCurrentOffset fbeResult = this.f26.get() fbeValue.f26 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f27.fbeOffset = fbeCurrentOffset fbeResult = this.f27.get() fbeValue.f27 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f28.fbeOffset = fbeCurrentOffset fbeResult = this.f28.get() fbeValue.f28 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f29.fbeOffset = fbeCurrentOffset fbeResult = this.f29.get() fbeValue.f29 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f30.fbeOffset = fbeCurrentOffset fbeResult = this.f30.get() fbeValue.f30 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f31.fbeOffset = fbeCurrentOffset fbeResult = this.f31.get() fbeValue.f31 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f32.fbeOffset = fbeCurrentOffset fbeResult = this.f32.get() fbeValue.f32 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f33.fbeOffset = fbeCurrentOffset fbeResult = this.f33.get() fbeValue.f33 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f34.fbeOffset = fbeCurrentOffset fbeResult = this.f34.get() fbeValue.f34 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f35.fbeOffset = fbeCurrentOffset fbeResult = this.f35.get() fbeValue.f35 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f36.fbeOffset = fbeCurrentOffset fbeResult = this.f36.get() fbeValue.f36 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f37.fbeOffset = fbeCurrentOffset fbeResult = this.f37.get() fbeValue.f37 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f38.fbeOffset = fbeCurrentOffset fbeResult = this.f38.get() fbeValue.f38 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f39.fbeOffset = fbeCurrentOffset fbeResult = this.f39.get() fbeValue.f39 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f40.fbeOffset = fbeCurrentOffset fbeResult = this.f40.get() fbeValue.f40 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f41.fbeOffset = fbeCurrentOffset fbeResult = this.f41.get() fbeValue.f41 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f42.fbeOffset = fbeCurrentOffset fbeResult = this.f42.get() fbeValue.f42 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f43.fbeOffset = fbeCurrentOffset fbeResult = this.f43.get() fbeValue.f43 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f44.fbeOffset = fbeCurrentOffset fbeResult = this.f44.get() fbeValue.f44 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size return fbeCurrentSize } /** * Set the struct value * @this {!FinalModelStructSimple} * @param {!StructSimple} fbeValue StructSimple value * @returns {!number} Final model size */ set (fbeValue) { this._buffer.shift(this.fbeOffset) let fbeSize = this.setFields(fbeValue) this._buffer.unshift(this.fbeOffset) return fbeSize } /** * Set the struct fields values * @this {!FinalModelStructSimple} * @param {StructSimple} fbeValue StructSimple value * @returns {!number} Final model size */ setFields (fbeValue) { let fbeCurrentOffset = 0 let fbeCurrentSize = 0 let fbeFieldSize this.id.fbeOffset = fbeCurrentOffset fbeFieldSize = this.id.set(fbeValue.id) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f1.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1.set(fbeValue.f1) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f2.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f2.set(fbeValue.f2) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f3.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f3.set(fbeValue.f3) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f4.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f4.set(fbeValue.f4) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f5.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f5.set(fbeValue.f5) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f6.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f6.set(fbeValue.f6) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f7.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f7.set(fbeValue.f7) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f8.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f8.set(fbeValue.f8) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f9.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f9.set(fbeValue.f9) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f10.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f10.set(fbeValue.f10) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f11.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f11.set(fbeValue.f11) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f12.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f12.set(fbeValue.f12) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f13.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f13.set(fbeValue.f13) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f14.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f14.set(fbeValue.f14) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f15.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f15.set(fbeValue.f15) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f16.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f16.set(fbeValue.f16) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f17.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f17.set(fbeValue.f17) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f18.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f18.set(fbeValue.f18) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f19.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f19.set(fbeValue.f19) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f20.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f20.set(fbeValue.f20) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f21.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f21.set(fbeValue.f21) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f22.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f22.set(fbeValue.f22) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f23.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f23.set(fbeValue.f23) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f24.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f24.set(fbeValue.f24) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f25.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f25.set(fbeValue.f25) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f26.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f26.set(fbeValue.f26) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f27.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f27.set(fbeValue.f27) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f28.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f28.set(fbeValue.f28) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f29.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f29.set(fbeValue.f29) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f30.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f30.set(fbeValue.f30) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f31.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f31.set(fbeValue.f31) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f32.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f32.set(fbeValue.f32) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f33.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f33.set(fbeValue.f33) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f34.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f34.set(fbeValue.f34) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f35.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f35.set(fbeValue.f35) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f36.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f36.set(fbeValue.f36) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f37.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f37.set(fbeValue.f37) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f38.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f38.set(fbeValue.f38) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f39.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f39.set(fbeValue.f39) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f40.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f40.set(fbeValue.f40) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f41.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f41.set(fbeValue.f41) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f42.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f42.set(fbeValue.f42) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f43.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f43.set(fbeValue.f43) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f44.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f44.set(fbeValue.f44) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize return fbeCurrentSize } } exports.FinalModelStructSimple = FinalModelStructSimple /** * Fast Binary Encoding StructSimple final model */ class StructSimpleFinalModel extends fbe.Model { /** * Initialize final model with the given buffer * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Read/Write buffer, defaults is new fbe.WriteBuffer() * @constructor */ constructor (buffer = new fbe.WriteBuffer()) { super(buffer) this._model = new FinalModelStructSimple(this.buffer, 8) } /** * Get the model type * @this {!StructSimpleFinalModel} * @returns {!number} Model type */ get fbeType () { return StructSimpleFinalModel.fbeType } /** * Get the model type (static) * @this {!StructSimpleFinalModel} * @returns {!number} Model type */ static get fbeType () { return FinalModelStructSimple.fbeType } /** * Check if the struct value is valid * @this {!StructSimpleFinalModel} * @returns {!boolean} Model valid state */ verify () { if ((this.buffer.offset + this._model.fbeOffset) > this.buffer.size) { return false } let fbeStructSize = this.readUInt32(this._model.fbeOffset - 8) let fbeStructType = this.readUInt32(this._model.fbeOffset - 4) if ((fbeStructSize <= 0) || (fbeStructType !== this.fbeType)) { return false } return ((8 + this._model.verify()) === fbeStructSize) } /** * Serialize the struct value * @this {!StructSimpleFinalModel} * @param {!StructSimple} value StructSimple value * @return {!number} Struct size */ serialize (value) { let fbeInitialSize = this.buffer.size let fbeStructType = this.fbeType let fbeStructSize = 8 + this._model.fbeAllocationSize(value) let fbeStructOffset = this.buffer.allocate(fbeStructSize) - this.buffer.offset console.assert(((this.buffer.offset + fbeStructOffset + fbeStructSize) <= this.buffer.size), 'Model is broken!') if ((this.buffer.offset + fbeStructOffset + fbeStructSize) > this.buffer.size) { return 0 } fbeStructSize = 8 + this._model.set(value) this.buffer.resize(fbeInitialSize + fbeStructSize) this.writeUInt32(this._model.fbeOffset - 8, fbeStructSize) this.writeUInt32(this._model.fbeOffset - 4, fbeStructType) return fbeStructSize } /** * Deserialize the struct value * @this {!StructSimpleFinalModel} * @param {!StructSimple} value StructSimple value, defaults is new StructSimple() * @return {!object} Deserialized StructSimple value and its size */ deserialize (value = new StructSimple()) { console.assert(((this.buffer.offset + this._model.fbeOffset) <= this.buffer.size), 'Model is broken!') if ((this.buffer.offset + this._model.fbeOffset) > this.buffer.size) { return { value: new StructSimple(), size: 0 } } let fbeStructSize = this.readUInt32(this._model.fbeOffset - 8) let fbeStructType = this.readUInt32(this._model.fbeOffset - 4) console.assert(((fbeStructSize > 0) && (fbeStructType === this.fbeType)), 'Model is broken!') if ((fbeStructSize <= 0) || (fbeStructType !== this.fbeType)) { return { value: new StructSimple(), size: 8 } } let fbeResult = this._model.get(value) return { value: fbeResult.value, size: (8 + fbeResult.size) } } /** * Move to the next struct value * @this {!StructSimpleFinalModel} * @param {!number} prev Previous StructSimple model size */ next (prev) { this._model.fbeShift(prev) } } exports.StructSimpleFinalModel = StructSimpleFinalModel /** * StructOptional struct */ class StructOptional extends StructSimple { /** * Initialize struct * @param {!StructSimple=} parent * @param {boolean=} f100 * @param {boolean=} f101 * @param {boolean=} f102 * @param {number=} f103 * @param {number=} f104 * @param {number=} f105 * @param {string=} f106 * @param {string=} f107 * @param {string=} f108 * @param {string=} f109 * @param {string=} f110 * @param {string=} f111 * @param {number=} f112 * @param {number=} f113 * @param {number=} f114 * @param {number=} f115 * @param {number=} f116 * @param {number=} f117 * @param {number=} f118 * @param {number=} f119 * @param {number=} f120 * @param {number=} f121 * @param {number=} f122 * @param {number=} f123 * @param {number=} f124 * @param {number=} f125 * @param {number=} f126 * @param {number=} f127 * @param {number=} f128 * @param {number=} f129 * @param {number=} f130 * @param {number=} f131 * @param {number=} f132 * @param {number=} f133 * @param {number=} f134 * @param {number=} f135 * @param {number=} f136 * @param {number=} f137 * @param {number=} f138 * @param {number=} f139 * @param {number=} f140 * @param {number=} f141 * @param {Big=} f142 * @param {Big=} f143 * @param {Big=} f144 * @param {string=} f145 * @param {string=} f146 * @param {string=} f147 * @param {Date=} f148 * @param {Date=} f149 * @param {Date=} f150 * @param {UUID=} f151 * @param {UUID=} f152 * @param {UUID=} f153 * @param {proto.OrderSide=} f154 * @param {proto.OrderSide=} f155 * @param {proto.OrderType=} f156 * @param {proto.OrderType=} f157 * @param {proto.Order=} f158 * @param {proto.Order=} f159 * @param {proto.Balance=} f160 * @param {proto.Balance=} f161 * @param {proto.State=} f162 * @param {proto.State=} f163 * @param {proto.Account=} f164 * @param {proto.Account=} f165 * @constructor */ constructor (parent = new StructSimple(), argf100 = undefined, argf101 = true, argf102 = undefined, argf103 = undefined, argf104 = 255, argf105 = undefined, argf106 = undefined, argf107 = '!', argf108 = undefined, argf109 = undefined, argf110 = String.fromCharCode(0x0444), argf111 = undefined, argf112 = undefined, argf113 = 127, argf114 = undefined, argf115 = undefined, argf116 = 255, argf117 = undefined, argf118 = undefined, argf119 = 32767, argf120 = undefined, argf121 = undefined, argf122 = 65535, argf123 = undefined, argf124 = undefined, argf125 = 2147483647, argf126 = undefined, argf127 = undefined, argf128 = 4294967295, argf129 = undefined, argf130 = undefined, argf131 = new Int64(4294967295, 2147483647), argf132 = undefined, argf133 = undefined, argf134 = new UInt64(4294967295, 4294967295), argf135 = undefined, argf136 = undefined, argf137 = 123.456, argf138 = undefined, argf139 = undefined, argf140 = -123.456e+123, argf141 = undefined, argf142 = undefined, argf143 = new Big('123456.123456'), argf144 = undefined, argf145 = undefined, argf146 = 'Initial string!', argf147 = undefined, argf148 = undefined, argf149 = new Date(Date.now()), argf150 = undefined, argf151 = undefined, argf152 = new UUID('123e4567-e89b-12d3-a456-426655440000'), argf153 = undefined, argf154 = undefined, argf155 = undefined, argf156 = undefined, argf157 = undefined, argf158 = undefined, argf159 = undefined, argf160 = undefined, argf161 = undefined, argf162 = undefined, argf163 = undefined, argf164 = undefined, argf165 = undefined) { super() super.copy(parent) this.f100 = argf100 this.f101 = argf101 this.f102 = argf102 this.f103 = argf103 this.f104 = argf104 this.f105 = argf105 this.f106 = argf106 this.f107 = argf107 this.f108 = argf108 this.f109 = argf109 this.f110 = argf110 this.f111 = argf111 this.f112 = argf112 this.f113 = argf113 this.f114 = argf114 this.f115 = argf115 this.f116 = argf116 this.f117 = argf117 this.f118 = argf118 this.f119 = argf119 this.f120 = argf120 this.f121 = argf121 this.f122 = argf122 this.f123 = argf123 this.f124 = argf124 this.f125 = argf125 this.f126 = argf126 this.f127 = argf127 this.f128 = argf128 this.f129 = argf129 this.f130 = argf130 this.f131 = argf131 this.f132 = argf132 this.f133 = argf133 this.f134 = argf134 this.f135 = argf135 this.f136 = argf136 this.f137 = argf137 this.f138 = argf138 this.f139 = argf139 this.f140 = argf140 this.f141 = argf141 this.f142 = argf142 this.f143 = argf143 this.f144 = argf144 this.f145 = argf145 this.f146 = argf146 this.f147 = argf147 this.f148 = argf148 this.f149 = argf149 this.f150 = argf150 this.f151 = argf151 this.f152 = argf152 this.f153 = argf153 this.f154 = argf154 this.f155 = argf155 this.f156 = argf156 this.f157 = argf157 this.f158 = argf158 this.f159 = argf159 this.f160 = argf160 this.f161 = argf161 this.f162 = argf162 this.f163 = argf163 this.f164 = argf164 this.f165 = argf165 } /** * Copy struct (shallow copy) * @this {!StructOptional} * @param {!StructOptional} other Other struct * @returns {!StructOptional} This struct */ copy (other) { super.copy(other) if (other.f100 != null) { this.f100 = other.f100 } else { this.f100 = undefined } if (other.f101 != null) { this.f101 = other.f101 } else { this.f101 = undefined } if (other.f102 != null) { this.f102 = other.f102 } else { this.f102 = undefined } if (other.f103 != null) { this.f103 = other.f103 } else { this.f103 = undefined } if (other.f104 != null) { this.f104 = other.f104 } else { this.f104 = undefined } if (other.f105 != null) { this.f105 = other.f105 } else { this.f105 = undefined } if (other.f106 != null) { if ((typeof other.f106 === 'string') || (other.f106 instanceof String)) { this.f106 = other.f106 } else { this.f106 = String.fromCharCode(other.f106) } } else { this.f106 = undefined } if (other.f107 != null) { if ((typeof other.f107 === 'string') || (other.f107 instanceof String)) { this.f107 = other.f107 } else { this.f107 = String.fromCharCode(other.f107) } } else { this.f107 = undefined } if (other.f108 != null) { if ((typeof other.f108 === 'string') || (other.f108 instanceof String)) { this.f108 = other.f108 } else { this.f108 = String.fromCharCode(other.f108) } } else { this.f108 = undefined } if (other.f109 != null) { if ((typeof other.f109 === 'string') || (other.f109 instanceof String)) { this.f109 = other.f109 } else { this.f109 = String.fromCharCode(other.f109) } } else { this.f109 = undefined } if (other.f110 != null) { if ((typeof other.f110 === 'string') || (other.f110 instanceof String)) { this.f110 = other.f110 } else { this.f110 = String.fromCharCode(other.f110) } } else { this.f110 = undefined } if (other.f111 != null) { if ((typeof other.f111 === 'string') || (other.f111 instanceof String)) { this.f111 = other.f111 } else { this.f111 = String.fromCharCode(other.f111) } } else { this.f111 = undefined } if (other.f112 != null) { this.f112 = other.f112 } else { this.f112 = undefined } if (other.f113 != null) { this.f113 = other.f113 } else { this.f113 = undefined } if (other.f114 != null) { this.f114 = other.f114 } else { this.f114 = undefined } if (other.f115 != null) { this.f115 = other.f115 } else { this.f115 = undefined } if (other.f116 != null) { this.f116 = other.f116 } else { this.f116 = undefined } if (other.f117 != null) { this.f117 = other.f117 } else { this.f117 = undefined } if (other.f118 != null) { this.f118 = other.f118 } else { this.f118 = undefined } if (other.f119 != null) { this.f119 = other.f119 } else { this.f119 = undefined } if (other.f120 != null) { this.f120 = other.f120 } else { this.f120 = undefined } if (other.f121 != null) { this.f121 = other.f121 } else { this.f121 = undefined } if (other.f122 != null) { this.f122 = other.f122 } else { this.f122 = undefined } if (other.f123 != null) { this.f123 = other.f123 } else { this.f123 = undefined } if (other.f124 != null) { this.f124 = other.f124 } else { this.f124 = undefined } if (other.f125 != null) { this.f125 = other.f125 } else { this.f125 = undefined } if (other.f126 != null) { this.f126 = other.f126 } else { this.f126 = undefined } if (other.f127 != null) { this.f127 = other.f127 } else { this.f127 = undefined } if (other.f128 != null) { this.f128 = other.f128 } else { this.f128 = undefined } if (other.f129 != null) { this.f129 = other.f129 } else { this.f129 = undefined } if (other.f130 != null) { this.f130 = Int64.fromNumber(other.f130) } else { this.f130 = undefined } if (other.f131 != null) { this.f131 = Int64.fromNumber(other.f131) } else { this.f131 = undefined } if (other.f132 != null) { this.f132 = Int64.fromNumber(other.f132) } else { this.f132 = undefined } if (other.f133 != null) { this.f133 = UInt64.fromNumber(other.f133) } else { this.f133 = undefined } if (other.f134 != null) { this.f134 = UInt64.fromNumber(other.f134) } else { this.f134 = undefined } if (other.f135 != null) { this.f135 = UInt64.fromNumber(other.f135) } else { this.f135 = undefined } if (other.f136 != null) { this.f136 = other.f136 } else { this.f136 = undefined } if (other.f137 != null) { this.f137 = other.f137 } else { this.f137 = undefined } if (other.f138 != null) { this.f138 = other.f138 } else { this.f138 = undefined } if (other.f139 != null) { this.f139 = other.f139 } else { this.f139 = undefined } if (other.f140 != null) { this.f140 = other.f140 } else { this.f140 = undefined } if (other.f141 != null) { this.f141 = other.f141 } else { this.f141 = undefined } if (other.f142 != null) { this.f142 = new Big(other.f142) } else { this.f142 = undefined } if (other.f143 != null) { this.f143 = new Big(other.f143) } else { this.f143 = undefined } if (other.f144 != null) { this.f144 = new Big(other.f144) } else { this.f144 = undefined } if (other.f145 != null) { this.f145 = other.f145 } else { this.f145 = undefined } if (other.f146 != null) { this.f146 = other.f146 } else { this.f146 = undefined } if (other.f147 != null) { this.f147 = other.f147 } else { this.f147 = undefined } if (other.f148 != null) { if (other.f148 instanceof Date) { this.f148 = new Date(other.f148.getTime()) } else { this.f148 = new Date(Math.round(other.f148 / 1000000)) } } else { this.f148 = undefined } if (other.f149 != null) { if (other.f149 instanceof Date) { this.f149 = new Date(other.f149.getTime()) } else { this.f149 = new Date(Math.round(other.f149 / 1000000)) } } else { this.f149 = undefined } if (other.f150 != null) { if (other.f150 instanceof Date) { this.f150 = new Date(other.f150.getTime()) } else { this.f150 = new Date(Math.round(other.f150 / 1000000)) } } else { this.f150 = undefined } if (other.f151 != null) { this.f151 = new UUID(other.f151) } else { this.f151 = undefined } if (other.f152 != null) { this.f152 = new UUID(other.f152) } else { this.f152 = undefined } if (other.f153 != null) { this.f153 = new UUID(other.f153) } else { this.f153 = undefined } if (other.f154 != null) { this.f154 = proto.OrderSide.fromObject(other.f154) } else { this.f154 = undefined } if (other.f155 != null) { this.f155 = proto.OrderSide.fromObject(other.f155) } else { this.f155 = undefined } if (other.f156 != null) { this.f156 = proto.OrderType.fromObject(other.f156) } else { this.f156 = undefined } if (other.f157 != null) { this.f157 = proto.OrderType.fromObject(other.f157) } else { this.f157 = undefined } if (other.f158 != null) { this.f158 = proto.Order.fromObject(other.f158) } else { this.f158 = undefined } if (other.f159 != null) { this.f159 = proto.Order.fromObject(other.f159) } else { this.f159 = undefined } if (other.f160 != null) { this.f160 = proto.Balance.fromObject(other.f160) } else { this.f160 = undefined } if (other.f161 != null) { this.f161 = proto.Balance.fromObject(other.f161) } else { this.f161 = undefined } if (other.f162 != null) { this.f162 = proto.State.fromObject(other.f162) } else { this.f162 = undefined } if (other.f163 != null) { this.f163 = proto.State.fromObject(other.f163) } else { this.f163 = undefined } if (other.f164 != null) { this.f164 = proto.Account.fromObject(other.f164) } else { this.f164 = undefined } if (other.f165 != null) { this.f165 = proto.Account.fromObject(other.f165) } else { this.f165 = undefined } return this } /** * Clone struct (deep clone) * @this {!StructOptional} * @returns {!StructOptional} Cloned struct */ clone () { // Serialize the struct to the FBE stream let writer = new StructOptionalModel(new fbe.WriteBuffer()) writer.serialize(this) // Deserialize the struct from the FBE stream let reader = new StructOptionalModel(new fbe.ReadBuffer()) reader.attachBuffer(writer.buffer) return reader.deserialize().value } /** * Is this struct equal to other one? * @this {!StructOptional} * @param {!StructOptional} other Other struct * @returns {boolean} Equal result */ eq (other) { if (!(other instanceof StructOptional)) { throw new TypeError('Instance of StructOptional is required!') } // noinspection RedundantIfStatementJS if (!super.eq(other)) { return false } return true } /** * Convert struct to string * @this {!StructOptional} * @returns {!string} Struct value string */ toString () { let result = '' result += 'StructOptional(' result += super.toString() result += ',f100=' if (this.f100 != null) { result += this.f100 ? 'true' : 'false' } else { result += 'null' } result += ',f101=' if (this.f101 != null) { result += this.f101 ? 'true' : 'false' } else { result += 'null' } result += ',f102=' if (this.f102 != null) { result += this.f102 ? 'true' : 'false' } else { result += 'null' } result += ',f103=' if (this.f103 != null) { result += this.f103.toString() } else { result += 'null' } result += ',f104=' if (this.f104 != null) { result += this.f104.toString() } else { result += 'null' } result += ',f105=' if (this.f105 != null) { result += this.f105.toString() } else { result += 'null' } result += ',f106=' if (this.f106 != null) { result += "'" + this.f106.toString() + "'" } else { result += 'null' } result += ',f107=' if (this.f107 != null) { result += "'" + this.f107.toString() + "'" } else { result += 'null' } result += ',f108=' if (this.f108 != null) { result += "'" + this.f108.toString() + "'" } else { result += 'null' } result += ',f109=' if (this.f109 != null) { result += "'" + this.f109.toString() + "'" } else { result += 'null' } result += ',f110=' if (this.f110 != null) { result += "'" + this.f110.toString() + "'" } else { result += 'null' } result += ',f111=' if (this.f111 != null) { result += "'" + this.f111.toString() + "'" } else { result += 'null' } result += ',f112=' if (this.f112 != null) { result += this.f112.toString() } else { result += 'null' } result += ',f113=' if (this.f113 != null) { result += this.f113.toString() } else { result += 'null' } result += ',f114=' if (this.f114 != null) { result += this.f114.toString() } else { result += 'null' } result += ',f115=' if (this.f115 != null) { result += this.f115.toString() } else { result += 'null' } result += ',f116=' if (this.f116 != null) { result += this.f116.toString() } else { result += 'null' } result += ',f117=' if (this.f117 != null) { result += this.f117.toString() } else { result += 'null' } result += ',f118=' if (this.f118 != null) { result += this.f118.toString() } else { result += 'null' } result += ',f119=' if (this.f119 != null) { result += this.f119.toString() } else { result += 'null' } result += ',f120=' if (this.f120 != null) { result += this.f120.toString() } else { result += 'null' } result += ',f121=' if (this.f121 != null) { result += this.f121.toString() } else { result += 'null' } result += ',f122=' if (this.f122 != null) { result += this.f122.toString() } else { result += 'null' } result += ',f123=' if (this.f123 != null) { result += this.f123.toString() } else { result += 'null' } result += ',f124=' if (this.f124 != null) { result += this.f124.toString() } else { result += 'null' } result += ',f125=' if (this.f125 != null) { result += this.f125.toString() } else { result += 'null' } result += ',f126=' if (this.f126 != null) { result += this.f126.toString() } else { result += 'null' } result += ',f127=' if (this.f127 != null) { result += this.f127.toString() } else { result += 'null' } result += ',f128=' if (this.f128 != null) { result += this.f128.toString() } else { result += 'null' } result += ',f129=' if (this.f129 != null) { result += this.f129.toString() } else { result += 'null' } result += ',f130=' if (this.f130 != null) { result += this.f130.toString() } else { result += 'null' } result += ',f131=' if (this.f131 != null) { result += this.f131.toString() } else { result += 'null' } result += ',f132=' if (this.f132 != null) { result += this.f132.toString() } else { result += 'null' } result += ',f133=' if (this.f133 != null) { result += this.f133.toString() } else { result += 'null' } result += ',f134=' if (this.f134 != null) { result += this.f134.toString() } else { result += 'null' } result += ',f135=' if (this.f135 != null) { result += this.f135.toString() } else { result += 'null' } result += ',f136=' if (this.f136 != null) { result += this.f136.toString() } else { result += 'null' } result += ',f137=' if (this.f137 != null) { result += this.f137.toString() } else { result += 'null' } result += ',f138=' if (this.f138 != null) { result += this.f138.toString() } else { result += 'null' } result += ',f139=' if (this.f139 != null) { result += this.f139.toString() } else { result += 'null' } result += ',f140=' if (this.f140 != null) { result += this.f140.toString() } else { result += 'null' } result += ',f141=' if (this.f141 != null) { result += this.f141.toString() } else { result += 'null' } result += ',f142=' if (this.f142 != null) { result += this.f142.toFixed() } else { result += 'null' } result += ',f143=' if (this.f143 != null) { result += this.f143.toFixed() } else { result += 'null' } result += ',f144=' if (this.f144 != null) { result += this.f144.toFixed() } else { result += 'null' } result += ',f145=' if (this.f145 != null) { result += '"' + this.f145.toString() + '"' } else { result += 'null' } result += ',f146=' if (this.f146 != null) { result += '"' + this.f146.toString() + '"' } else { result += 'null' } result += ',f147=' if (this.f147 != null) { result += '"' + this.f147.toString() + '"' } else { result += 'null' } result += ',f148=' if (this.f148 != null) { result += this.f148.getTime() * 1000000 } else { result += 'null' } result += ',f149=' if (this.f149 != null) { result += this.f149.getTime() * 1000000 } else { result += 'null' } result += ',f150=' if (this.f150 != null) { result += this.f150.getTime() * 1000000 } else { result += 'null' } result += ',f151=' if (this.f151 != null) { result += '"' + this.f151.toString() + '"' } else { result += 'null' } result += ',f152=' if (this.f152 != null) { result += '"' + this.f152.toString() + '"' } else { result += 'null' } result += ',f153=' if (this.f153 != null) { result += '"' + this.f153.toString() + '"' } else { result += 'null' } result += ',f154=' if (this.f154 != null) { result += this.f154.toString() } else { result += 'null' } result += ',f155=' if (this.f155 != null) { result += this.f155.toString() } else { result += 'null' } result += ',f156=' if (this.f156 != null) { result += this.f156.toString() } else { result += 'null' } result += ',f157=' if (this.f157 != null) { result += this.f157.toString() } else { result += 'null' } result += ',f158=' if (this.f158 != null) { result += this.f158.toString() } else { result += 'null' } result += ',f159=' if (this.f159 != null) { result += this.f159.toString() } else { result += 'null' } result += ',f160=' if (this.f160 != null) { result += this.f160.toString() } else { result += 'null' } result += ',f161=' if (this.f161 != null) { result += this.f161.toString() } else { result += 'null' } result += ',f162=' if (this.f162 != null) { result += this.f162.toString() } else { result += 'null' } result += ',f163=' if (this.f163 != null) { result += this.f163.toString() } else { result += 'null' } result += ',f164=' if (this.f164 != null) { result += this.f164.toString() } else { result += 'null' } result += ',f165=' if (this.f165 != null) { result += this.f165.toString() } else { result += 'null' } result += ')' return result } /** * Inspect struct * @this {!StructOptional} * @returns {!string} Struct value string */ [util.inspect.custom] () { return this.toString() } /** * Convert struct to JSON * @this {!StructOptional} * @returns {!object} Struct value for JSON */ toJSON () { let parent = super.toJSON() let current = { f100: ((this.f100 != null) ? this.f100 : null), f101: ((this.f101 != null) ? this.f101 : null), f102: ((this.f102 != null) ? this.f102 : null), f103: ((this.f103 != null) ? this.f103 : null), f104: ((this.f104 != null) ? this.f104 : null), f105: ((this.f105 != null) ? this.f105 : null), f106: ((this.f106 != null) ? this.f106.charCodeAt(0) : null), f107: ((this.f107 != null) ? this.f107.charCodeAt(0) : null), f108: ((this.f108 != null) ? this.f108.charCodeAt(0) : null), f109: ((this.f109 != null) ? this.f109.charCodeAt(0) : null), f110: ((this.f110 != null) ? this.f110.charCodeAt(0) : null), f111: ((this.f111 != null) ? this.f111.charCodeAt(0) : null), f112: ((this.f112 != null) ? this.f112 : null), f113: ((this.f113 != null) ? this.f113 : null), f114: ((this.f114 != null) ? this.f114 : null), f115: ((this.f115 != null) ? this.f115 : null), f116: ((this.f116 != null) ? this.f116 : null), f117: ((this.f117 != null) ? this.f117 : null), f118: ((this.f118 != null) ? this.f118 : null), f119: ((this.f119 != null) ? this.f119 : null), f120: ((this.f120 != null) ? this.f120 : null), f121: ((this.f121 != null) ? this.f121 : null), f122: ((this.f122 != null) ? this.f122 : null), f123: ((this.f123 != null) ? this.f123 : null), f124: ((this.f124 != null) ? this.f124 : null), f125: ((this.f125 != null) ? this.f125 : null), f126: ((this.f126 != null) ? this.f126 : null), f127: ((this.f127 != null) ? this.f127 : null), f128: ((this.f128 != null) ? this.f128 : null), f129: ((this.f129 != null) ? this.f129 : null), f130: ((this.f130 != null) ? this.f130.toNumber() : null), f131: ((this.f131 != null) ? this.f131.toNumber() : null), f132: ((this.f132 != null) ? this.f132.toNumber() : null), f133: ((this.f133 != null) ? this.f133.toNumber() : null), f134: ((this.f134 != null) ? this.f134.toNumber() : null), f135: ((this.f135 != null) ? this.f135.toNumber() : null), f136: ((this.f136 != null) ? this.f136 : null), f137: ((this.f137 != null) ? this.f137 : null), f138: ((this.f138 != null) ? this.f138 : null), f139: ((this.f139 != null) ? this.f139 : null), f140: ((this.f140 != null) ? this.f140 : null), f141: ((this.f141 != null) ? this.f141 : null), f142: ((this.f142 != null) ? this.f142.toFixed() : null), f143: ((this.f143 != null) ? this.f143.toFixed() : null), f144: ((this.f144 != null) ? this.f144.toFixed() : null), f145: ((this.f145 != null) ? this.f145 : null), f146: ((this.f146 != null) ? this.f146 : null), f147: ((this.f147 != null) ? this.f147 : null), f148: ((this.f148 != null) ? (this.f148.getTime() * 1000000) : null), f149: ((this.f149 != null) ? (this.f149.getTime() * 1000000) : null), f150: ((this.f150 != null) ? (this.f150.getTime() * 1000000) : null), f151: ((this.f151 != null) ? this.f151.toString() : null), f152: ((this.f152 != null) ? this.f152.toString() : null), f153: ((this.f153 != null) ? this.f153.toString() : null), f154: ((this.f154 != null) ? this.f154 : null), f155: ((this.f155 != null) ? this.f155 : null), f156: ((this.f156 != null) ? this.f156 : null), f157: ((this.f157 != null) ? this.f157 : null), f158: ((this.f158 != null) ? this.f158 : null), f159: ((this.f159 != null) ? this.f159 : null), f160: ((this.f160 != null) ? this.f160 : null), f161: ((this.f161 != null) ? this.f161 : null), f162: ((this.f162 != null) ? this.f162 : null), f163: ((this.f163 != null) ? this.f163 : null), f164: ((this.f164 != null) ? this.f164 : null), f165: ((this.f165 != null) ? this.f165 : null) } return { ...parent, ...current } } /** * Convert JSON to struct * @param {!string} json JSON string * @returns {!object} Struct value for JSON */ static fromJSON (json) { return StructOptional.fromObject(JSON.parse(json)) } /** * Create struct from object value * @param {!StructOptional} other Object value * @returns {!StructOptional} Created struct */ static fromObject (other) { return new StructOptional().copy(other) } /** * Get the FBE type * @this {!StructOptional} * @returns {!number} FBE type */ get fbeType () { return StructOptional.fbeType } /** * Get the FBE type (static) * @this {!StructOptional} * @returns {!number} FBE type */ static get fbeType () { return 111 } } exports.StructOptional = StructOptional /** * Fast Binary Encoding StructOptional field model */ class FieldModelStructOptional extends fbe.FieldModel { /** * Initialize field model with the given buffer and offset * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Buffer * @param {!number} offset Offset * @constructor */ constructor (buffer, offset) { super(buffer, offset) this._parent = new FieldModelStructSimple(buffer, 4 + 4) this._f100 = new fbe.FieldModelOptional(new fbe.FieldModelBool(buffer, this._parent.fbeOffset + this._parent.fbeBody - 4 - 4), buffer, this._parent.fbeOffset + this._parent.fbeBody - 4 - 4) this._f101 = new fbe.FieldModelOptional(new fbe.FieldModelBool(buffer, this._f100.fbeOffset + this._f100.fbeSize), buffer, this._f100.fbeOffset + this._f100.fbeSize) this._f102 = new fbe.FieldModelOptional(new fbe.FieldModelBool(buffer, this._f101.fbeOffset + this._f101.fbeSize), buffer, this._f101.fbeOffset + this._f101.fbeSize) this._f103 = new fbe.FieldModelOptional(new fbe.FieldModelByte(buffer, this._f102.fbeOffset + this._f102.fbeSize), buffer, this._f102.fbeOffset + this._f102.fbeSize) this._f104 = new fbe.FieldModelOptional(new fbe.FieldModelByte(buffer, this._f103.fbeOffset + this._f103.fbeSize), buffer, this._f103.fbeOffset + this._f103.fbeSize) this._f105 = new fbe.FieldModelOptional(new fbe.FieldModelByte(buffer, this._f104.fbeOffset + this._f104.fbeSize), buffer, this._f104.fbeOffset + this._f104.fbeSize) this._f106 = new fbe.FieldModelOptional(new fbe.FieldModelChar(buffer, this._f105.fbeOffset + this._f105.fbeSize), buffer, this._f105.fbeOffset + this._f105.fbeSize) this._f107 = new fbe.FieldModelOptional(new fbe.FieldModelChar(buffer, this._f106.fbeOffset + this._f106.fbeSize), buffer, this._f106.fbeOffset + this._f106.fbeSize) this._f108 = new fbe.FieldModelOptional(new fbe.FieldModelChar(buffer, this._f107.fbeOffset + this._f107.fbeSize), buffer, this._f107.fbeOffset + this._f107.fbeSize) this._f109 = new fbe.FieldModelOptional(new fbe.FieldModelWChar(buffer, this._f108.fbeOffset + this._f108.fbeSize), buffer, this._f108.fbeOffset + this._f108.fbeSize) this._f110 = new fbe.FieldModelOptional(new fbe.FieldModelWChar(buffer, this._f109.fbeOffset + this._f109.fbeSize), buffer, this._f109.fbeOffset + this._f109.fbeSize) this._f111 = new fbe.FieldModelOptional(new fbe.FieldModelWChar(buffer, this._f110.fbeOffset + this._f110.fbeSize), buffer, this._f110.fbeOffset + this._f110.fbeSize) this._f112 = new fbe.FieldModelOptional(new fbe.FieldModelInt8(buffer, this._f111.fbeOffset + this._f111.fbeSize), buffer, this._f111.fbeOffset + this._f111.fbeSize) this._f113 = new fbe.FieldModelOptional(new fbe.FieldModelInt8(buffer, this._f112.fbeOffset + this._f112.fbeSize), buffer, this._f112.fbeOffset + this._f112.fbeSize) this._f114 = new fbe.FieldModelOptional(new fbe.FieldModelInt8(buffer, this._f113.fbeOffset + this._f113.fbeSize), buffer, this._f113.fbeOffset + this._f113.fbeSize) this._f115 = new fbe.FieldModelOptional(new fbe.FieldModelUInt8(buffer, this._f114.fbeOffset + this._f114.fbeSize), buffer, this._f114.fbeOffset + this._f114.fbeSize) this._f116 = new fbe.FieldModelOptional(new fbe.FieldModelUInt8(buffer, this._f115.fbeOffset + this._f115.fbeSize), buffer, this._f115.fbeOffset + this._f115.fbeSize) this._f117 = new fbe.FieldModelOptional(new fbe.FieldModelUInt8(buffer, this._f116.fbeOffset + this._f116.fbeSize), buffer, this._f116.fbeOffset + this._f116.fbeSize) this._f118 = new fbe.FieldModelOptional(new fbe.FieldModelInt16(buffer, this._f117.fbeOffset + this._f117.fbeSize), buffer, this._f117.fbeOffset + this._f117.fbeSize) this._f119 = new fbe.FieldModelOptional(new fbe.FieldModelInt16(buffer, this._f118.fbeOffset + this._f118.fbeSize), buffer, this._f118.fbeOffset + this._f118.fbeSize) this._f120 = new fbe.FieldModelOptional(new fbe.FieldModelInt16(buffer, this._f119.fbeOffset + this._f119.fbeSize), buffer, this._f119.fbeOffset + this._f119.fbeSize) this._f121 = new fbe.FieldModelOptional(new fbe.FieldModelUInt16(buffer, this._f120.fbeOffset + this._f120.fbeSize), buffer, this._f120.fbeOffset + this._f120.fbeSize) this._f122 = new fbe.FieldModelOptional(new fbe.FieldModelUInt16(buffer, this._f121.fbeOffset + this._f121.fbeSize), buffer, this._f121.fbeOffset + this._f121.fbeSize) this._f123 = new fbe.FieldModelOptional(new fbe.FieldModelUInt16(buffer, this._f122.fbeOffset + this._f122.fbeSize), buffer, this._f122.fbeOffset + this._f122.fbeSize) this._f124 = new fbe.FieldModelOptional(new fbe.FieldModelInt32(buffer, this._f123.fbeOffset + this._f123.fbeSize), buffer, this._f123.fbeOffset + this._f123.fbeSize) this._f125 = new fbe.FieldModelOptional(new fbe.FieldModelInt32(buffer, this._f124.fbeOffset + this._f124.fbeSize), buffer, this._f124.fbeOffset + this._f124.fbeSize) this._f126 = new fbe.FieldModelOptional(new fbe.FieldModelInt32(buffer, this._f125.fbeOffset + this._f125.fbeSize), buffer, this._f125.fbeOffset + this._f125.fbeSize) this._f127 = new fbe.FieldModelOptional(new fbe.FieldModelUInt32(buffer, this._f126.fbeOffset + this._f126.fbeSize), buffer, this._f126.fbeOffset + this._f126.fbeSize) this._f128 = new fbe.FieldModelOptional(new fbe.FieldModelUInt32(buffer, this._f127.fbeOffset + this._f127.fbeSize), buffer, this._f127.fbeOffset + this._f127.fbeSize) this._f129 = new fbe.FieldModelOptional(new fbe.FieldModelUInt32(buffer, this._f128.fbeOffset + this._f128.fbeSize), buffer, this._f128.fbeOffset + this._f128.fbeSize) this._f130 = new fbe.FieldModelOptional(new fbe.FieldModelInt64(buffer, this._f129.fbeOffset + this._f129.fbeSize), buffer, this._f129.fbeOffset + this._f129.fbeSize) this._f131 = new fbe.FieldModelOptional(new fbe.FieldModelInt64(buffer, this._f130.fbeOffset + this._f130.fbeSize), buffer, this._f130.fbeOffset + this._f130.fbeSize) this._f132 = new fbe.FieldModelOptional(new fbe.FieldModelInt64(buffer, this._f131.fbeOffset + this._f131.fbeSize), buffer, this._f131.fbeOffset + this._f131.fbeSize) this._f133 = new fbe.FieldModelOptional(new fbe.FieldModelUInt64(buffer, this._f132.fbeOffset + this._f132.fbeSize), buffer, this._f132.fbeOffset + this._f132.fbeSize) this._f134 = new fbe.FieldModelOptional(new fbe.FieldModelUInt64(buffer, this._f133.fbeOffset + this._f133.fbeSize), buffer, this._f133.fbeOffset + this._f133.fbeSize) this._f135 = new fbe.FieldModelOptional(new fbe.FieldModelUInt64(buffer, this._f134.fbeOffset + this._f134.fbeSize), buffer, this._f134.fbeOffset + this._f134.fbeSize) this._f136 = new fbe.FieldModelOptional(new fbe.FieldModelFloat(buffer, this._f135.fbeOffset + this._f135.fbeSize), buffer, this._f135.fbeOffset + this._f135.fbeSize) this._f137 = new fbe.FieldModelOptional(new fbe.FieldModelFloat(buffer, this._f136.fbeOffset + this._f136.fbeSize), buffer, this._f136.fbeOffset + this._f136.fbeSize) this._f138 = new fbe.FieldModelOptional(new fbe.FieldModelFloat(buffer, this._f137.fbeOffset + this._f137.fbeSize), buffer, this._f137.fbeOffset + this._f137.fbeSize) this._f139 = new fbe.FieldModelOptional(new fbe.FieldModelDouble(buffer, this._f138.fbeOffset + this._f138.fbeSize), buffer, this._f138.fbeOffset + this._f138.fbeSize) this._f140 = new fbe.FieldModelOptional(new fbe.FieldModelDouble(buffer, this._f139.fbeOffset + this._f139.fbeSize), buffer, this._f139.fbeOffset + this._f139.fbeSize) this._f141 = new fbe.FieldModelOptional(new fbe.FieldModelDouble(buffer, this._f140.fbeOffset + this._f140.fbeSize), buffer, this._f140.fbeOffset + this._f140.fbeSize) this._f142 = new fbe.FieldModelOptional(new fbe.FieldModelDecimal(buffer, this._f141.fbeOffset + this._f141.fbeSize), buffer, this._f141.fbeOffset + this._f141.fbeSize) this._f143 = new fbe.FieldModelOptional(new fbe.FieldModelDecimal(buffer, this._f142.fbeOffset + this._f142.fbeSize), buffer, this._f142.fbeOffset + this._f142.fbeSize) this._f144 = new fbe.FieldModelOptional(new fbe.FieldModelDecimal(buffer, this._f143.fbeOffset + this._f143.fbeSize), buffer, this._f143.fbeOffset + this._f143.fbeSize) this._f145 = new fbe.FieldModelOptional(new fbe.FieldModelString(buffer, this._f144.fbeOffset + this._f144.fbeSize), buffer, this._f144.fbeOffset + this._f144.fbeSize) this._f146 = new fbe.FieldModelOptional(new fbe.FieldModelString(buffer, this._f145.fbeOffset + this._f145.fbeSize), buffer, this._f145.fbeOffset + this._f145.fbeSize) this._f147 = new fbe.FieldModelOptional(new fbe.FieldModelString(buffer, this._f146.fbeOffset + this._f146.fbeSize), buffer, this._f146.fbeOffset + this._f146.fbeSize) this._f148 = new fbe.FieldModelOptional(new fbe.FieldModelTimestamp(buffer, this._f147.fbeOffset + this._f147.fbeSize), buffer, this._f147.fbeOffset + this._f147.fbeSize) this._f149 = new fbe.FieldModelOptional(new fbe.FieldModelTimestamp(buffer, this._f148.fbeOffset + this._f148.fbeSize), buffer, this._f148.fbeOffset + this._f148.fbeSize) this._f150 = new fbe.FieldModelOptional(new fbe.FieldModelTimestamp(buffer, this._f149.fbeOffset + this._f149.fbeSize), buffer, this._f149.fbeOffset + this._f149.fbeSize) this._f151 = new fbe.FieldModelOptional(new fbe.FieldModelUUID(buffer, this._f150.fbeOffset + this._f150.fbeSize), buffer, this._f150.fbeOffset + this._f150.fbeSize) this._f152 = new fbe.FieldModelOptional(new fbe.FieldModelUUID(buffer, this._f151.fbeOffset + this._f151.fbeSize), buffer, this._f151.fbeOffset + this._f151.fbeSize) this._f153 = new fbe.FieldModelOptional(new fbe.FieldModelUUID(buffer, this._f152.fbeOffset + this._f152.fbeSize), buffer, this._f152.fbeOffset + this._f152.fbeSize) this._f154 = new fbe.FieldModelOptional(new proto.FieldModelOrderSide(buffer, this._f153.fbeOffset + this._f153.fbeSize), buffer, this._f153.fbeOffset + this._f153.fbeSize) this._f155 = new fbe.FieldModelOptional(new proto.FieldModelOrderSide(buffer, this._f154.fbeOffset + this._f154.fbeSize), buffer, this._f154.fbeOffset + this._f154.fbeSize) this._f156 = new fbe.FieldModelOptional(new proto.FieldModelOrderType(buffer, this._f155.fbeOffset + this._f155.fbeSize), buffer, this._f155.fbeOffset + this._f155.fbeSize) this._f157 = new fbe.FieldModelOptional(new proto.FieldModelOrderType(buffer, this._f156.fbeOffset + this._f156.fbeSize), buffer, this._f156.fbeOffset + this._f156.fbeSize) this._f158 = new fbe.FieldModelOptional(new proto.FieldModelOrder(buffer, this._f157.fbeOffset + this._f157.fbeSize), buffer, this._f157.fbeOffset + this._f157.fbeSize) this._f159 = new fbe.FieldModelOptional(new proto.FieldModelOrder(buffer, this._f158.fbeOffset + this._f158.fbeSize), buffer, this._f158.fbeOffset + this._f158.fbeSize) this._f160 = new fbe.FieldModelOptional(new proto.FieldModelBalance(buffer, this._f159.fbeOffset + this._f159.fbeSize), buffer, this._f159.fbeOffset + this._f159.fbeSize) this._f161 = new fbe.FieldModelOptional(new proto.FieldModelBalance(buffer, this._f160.fbeOffset + this._f160.fbeSize), buffer, this._f160.fbeOffset + this._f160.fbeSize) this._f162 = new fbe.FieldModelOptional(new proto.FieldModelState(buffer, this._f161.fbeOffset + this._f161.fbeSize), buffer, this._f161.fbeOffset + this._f161.fbeSize) this._f163 = new fbe.FieldModelOptional(new proto.FieldModelState(buffer, this._f162.fbeOffset + this._f162.fbeSize), buffer, this._f162.fbeOffset + this._f162.fbeSize) this._f164 = new fbe.FieldModelOptional(new proto.FieldModelAccount(buffer, this._f163.fbeOffset + this._f163.fbeSize), buffer, this._f163.fbeOffset + this._f163.fbeSize) this._f165 = new fbe.FieldModelOptional(new proto.FieldModelAccount(buffer, this._f164.fbeOffset + this._f164.fbeSize), buffer, this._f164.fbeOffset + this._f164.fbeSize) } /** * Get the StructSimple field model * @this {!FieldModelStructOptional} * @returns {!FieldModelStructSimple} StructSimple field model */ get parent () { return this._parent } /** * Get the f100 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f100 field model */ get f100 () { return this._f100 } /** * Get the f101 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f101 field model */ get f101 () { return this._f101 } /** * Get the f102 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f102 field model */ get f102 () { return this._f102 } /** * Get the f103 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f103 field model */ get f103 () { return this._f103 } /** * Get the f104 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f104 field model */ get f104 () { return this._f104 } /** * Get the f105 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f105 field model */ get f105 () { return this._f105 } /** * Get the f106 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f106 field model */ get f106 () { return this._f106 } /** * Get the f107 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f107 field model */ get f107 () { return this._f107 } /** * Get the f108 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f108 field model */ get f108 () { return this._f108 } /** * Get the f109 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f109 field model */ get f109 () { return this._f109 } /** * Get the f110 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f110 field model */ get f110 () { return this._f110 } /** * Get the f111 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f111 field model */ get f111 () { return this._f111 } /** * Get the f112 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f112 field model */ get f112 () { return this._f112 } /** * Get the f113 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f113 field model */ get f113 () { return this._f113 } /** * Get the f114 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f114 field model */ get f114 () { return this._f114 } /** * Get the f115 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f115 field model */ get f115 () { return this._f115 } /** * Get the f116 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f116 field model */ get f116 () { return this._f116 } /** * Get the f117 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f117 field model */ get f117 () { return this._f117 } /** * Get the f118 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f118 field model */ get f118 () { return this._f118 } /** * Get the f119 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f119 field model */ get f119 () { return this._f119 } /** * Get the f120 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f120 field model */ get f120 () { return this._f120 } /** * Get the f121 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f121 field model */ get f121 () { return this._f121 } /** * Get the f122 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f122 field model */ get f122 () { return this._f122 } /** * Get the f123 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f123 field model */ get f123 () { return this._f123 } /** * Get the f124 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f124 field model */ get f124 () { return this._f124 } /** * Get the f125 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f125 field model */ get f125 () { return this._f125 } /** * Get the f126 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f126 field model */ get f126 () { return this._f126 } /** * Get the f127 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f127 field model */ get f127 () { return this._f127 } /** * Get the f128 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f128 field model */ get f128 () { return this._f128 } /** * Get the f129 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f129 field model */ get f129 () { return this._f129 } /** * Get the f130 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f130 field model */ get f130 () { return this._f130 } /** * Get the f131 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f131 field model */ get f131 () { return this._f131 } /** * Get the f132 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f132 field model */ get f132 () { return this._f132 } /** * Get the f133 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f133 field model */ get f133 () { return this._f133 } /** * Get the f134 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f134 field model */ get f134 () { return this._f134 } /** * Get the f135 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f135 field model */ get f135 () { return this._f135 } /** * Get the f136 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f136 field model */ get f136 () { return this._f136 } /** * Get the f137 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f137 field model */ get f137 () { return this._f137 } /** * Get the f138 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f138 field model */ get f138 () { return this._f138 } /** * Get the f139 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f139 field model */ get f139 () { return this._f139 } /** * Get the f140 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f140 field model */ get f140 () { return this._f140 } /** * Get the f141 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f141 field model */ get f141 () { return this._f141 } /** * Get the f142 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f142 field model */ get f142 () { return this._f142 } /** * Get the f143 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f143 field model */ get f143 () { return this._f143 } /** * Get the f144 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f144 field model */ get f144 () { return this._f144 } /** * Get the f145 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f145 field model */ get f145 () { return this._f145 } /** * Get the f146 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f146 field model */ get f146 () { return this._f146 } /** * Get the f147 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f147 field model */ get f147 () { return this._f147 } /** * Get the f148 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f148 field model */ get f148 () { return this._f148 } /** * Get the f149 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f149 field model */ get f149 () { return this._f149 } /** * Get the f150 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f150 field model */ get f150 () { return this._f150 } /** * Get the f151 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f151 field model */ get f151 () { return this._f151 } /** * Get the f152 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f152 field model */ get f152 () { return this._f152 } /** * Get the f153 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f153 field model */ get f153 () { return this._f153 } /** * Get the f154 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f154 field model */ get f154 () { return this._f154 } /** * Get the f155 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f155 field model */ get f155 () { return this._f155 } /** * Get the f156 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f156 field model */ get f156 () { return this._f156 } /** * Get the f157 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f157 field model */ get f157 () { return this._f157 } /** * Get the f158 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f158 field model */ get f158 () { return this._f158 } /** * Get the f159 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f159 field model */ get f159 () { return this._f159 } /** * Get the f160 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f160 field model */ get f160 () { return this._f160 } /** * Get the f161 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f161 field model */ get f161 () { return this._f161 } /** * Get the f162 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f162 field model */ get f162 () { return this._f162 } /** * Get the f163 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f163 field model */ get f163 () { return this._f163 } /** * Get the f164 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f164 field model */ get f164 () { return this._f164 } /** * Get the f165 field model * @this {!FieldModelStructOptional} * @returns {!fbe.FieldModelOptional} f165 field model */ get f165 () { return this._f165 } /** * Get the field size * @this {!FieldModelStructOptional} * @returns {!number} Field size */ get fbeSize () { return 4 } /** * Get the field body size * @this {!FieldModelStructOptional} * @returns {!number} Field body size */ get fbeBody () { return 4 + 4 + this.parent.fbeBody - 4 - 4 + this.f100.fbeSize + this.f101.fbeSize + this.f102.fbeSize + this.f103.fbeSize + this.f104.fbeSize + this.f105.fbeSize + this.f106.fbeSize + this.f107.fbeSize + this.f108.fbeSize + this.f109.fbeSize + this.f110.fbeSize + this.f111.fbeSize + this.f112.fbeSize + this.f113.fbeSize + this.f114.fbeSize + this.f115.fbeSize + this.f116.fbeSize + this.f117.fbeSize + this.f118.fbeSize + this.f119.fbeSize + this.f120.fbeSize + this.f121.fbeSize + this.f122.fbeSize + this.f123.fbeSize + this.f124.fbeSize + this.f125.fbeSize + this.f126.fbeSize + this.f127.fbeSize + this.f128.fbeSize + this.f129.fbeSize + this.f130.fbeSize + this.f131.fbeSize + this.f132.fbeSize + this.f133.fbeSize + this.f134.fbeSize + this.f135.fbeSize + this.f136.fbeSize + this.f137.fbeSize + this.f138.fbeSize + this.f139.fbeSize + this.f140.fbeSize + this.f141.fbeSize + this.f142.fbeSize + this.f143.fbeSize + this.f144.fbeSize + this.f145.fbeSize + this.f146.fbeSize + this.f147.fbeSize + this.f148.fbeSize + this.f149.fbeSize + this.f150.fbeSize + this.f151.fbeSize + this.f152.fbeSize + this.f153.fbeSize + this.f154.fbeSize + this.f155.fbeSize + this.f156.fbeSize + this.f157.fbeSize + this.f158.fbeSize + this.f159.fbeSize + this.f160.fbeSize + this.f161.fbeSize + this.f162.fbeSize + this.f163.fbeSize + this.f164.fbeSize + this.f165.fbeSize } /** * Get the field extra size * @this {!FieldModelStructOptional} * @returns {!number} Field extra size */ get fbeExtra () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructOffset = this.readUInt32(this.fbeOffset) if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4) > this._buffer.size)) { return 0 } this._buffer.shift(fbeStructOffset) let fbeResult = this.fbeBody + this.parent.fbeExtra + this.f100.fbeExtra + this.f101.fbeExtra + this.f102.fbeExtra + this.f103.fbeExtra + this.f104.fbeExtra + this.f105.fbeExtra + this.f106.fbeExtra + this.f107.fbeExtra + this.f108.fbeExtra + this.f109.fbeExtra + this.f110.fbeExtra + this.f111.fbeExtra + this.f112.fbeExtra + this.f113.fbeExtra + this.f114.fbeExtra + this.f115.fbeExtra + this.f116.fbeExtra + this.f117.fbeExtra + this.f118.fbeExtra + this.f119.fbeExtra + this.f120.fbeExtra + this.f121.fbeExtra + this.f122.fbeExtra + this.f123.fbeExtra + this.f124.fbeExtra + this.f125.fbeExtra + this.f126.fbeExtra + this.f127.fbeExtra + this.f128.fbeExtra + this.f129.fbeExtra + this.f130.fbeExtra + this.f131.fbeExtra + this.f132.fbeExtra + this.f133.fbeExtra + this.f134.fbeExtra + this.f135.fbeExtra + this.f136.fbeExtra + this.f137.fbeExtra + this.f138.fbeExtra + this.f139.fbeExtra + this.f140.fbeExtra + this.f141.fbeExtra + this.f142.fbeExtra + this.f143.fbeExtra + this.f144.fbeExtra + this.f145.fbeExtra + this.f146.fbeExtra + this.f147.fbeExtra + this.f148.fbeExtra + this.f149.fbeExtra + this.f150.fbeExtra + this.f151.fbeExtra + this.f152.fbeExtra + this.f153.fbeExtra + this.f154.fbeExtra + this.f155.fbeExtra + this.f156.fbeExtra + this.f157.fbeExtra + this.f158.fbeExtra + this.f159.fbeExtra + this.f160.fbeExtra + this.f161.fbeExtra + this.f162.fbeExtra + this.f163.fbeExtra + this.f164.fbeExtra + this.f165.fbeExtra this._buffer.unshift(fbeStructOffset) return fbeResult } /** * Get the field type * @this {!FieldModelStructOptional} * @returns {!number} Field type */ get fbeType () { return FieldModelStructOptional.fbeType } /** * Get the field type (static) * @this {!FieldModelStructOptional} * @returns {!number} Field type */ static get fbeType () { return 111 } /** * Check if the struct value is valid * @this {!FieldModelStructOptional} * @param {!boolean} fbeVerifyType Verify model type flag, defaults is true * @returns {!boolean} Field model valid state */ verify (fbeVerifyType = true) { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return true } let fbeStructOffset = this.readUInt32(this.fbeOffset) if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4 + 4) > this._buffer.size)) { return false } let fbeStructSize = this.readUInt32(fbeStructOffset) if (fbeStructSize < (4 + 4)) { return false } let fbeStructType = this.readUInt32(fbeStructOffset + 4) if (fbeVerifyType && (fbeStructType !== this.fbeType)) { return false } this._buffer.shift(fbeStructOffset) let fbeResult = this.verifyFields(fbeStructSize) this._buffer.unshift(fbeStructOffset) return fbeResult } /** * Check if the struct fields are valid * @this {!FieldModelStructOptional} * @param {!number} fbeStructSize FBE struct size * @returns {!boolean} Field model valid state */ verifyFields (fbeStructSize) { let fbeCurrentSize = 4 + 4 if ((fbeCurrentSize + this.parent.fbeBody - 4 - 4) > fbeStructSize) { return true } if (!this.parent.verifyFields(fbeStructSize)) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.parent.fbeBody - 4 - 4 if ((fbeCurrentSize + this.f100.fbeSize) > fbeStructSize) { return true } if (!this.f100.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f100.fbeSize if ((fbeCurrentSize + this.f101.fbeSize) > fbeStructSize) { return true } if (!this.f101.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f101.fbeSize if ((fbeCurrentSize + this.f102.fbeSize) > fbeStructSize) { return true } if (!this.f102.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f102.fbeSize if ((fbeCurrentSize + this.f103.fbeSize) > fbeStructSize) { return true } if (!this.f103.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f103.fbeSize if ((fbeCurrentSize + this.f104.fbeSize) > fbeStructSize) { return true } if (!this.f104.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f104.fbeSize if ((fbeCurrentSize + this.f105.fbeSize) > fbeStructSize) { return true } if (!this.f105.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f105.fbeSize if ((fbeCurrentSize + this.f106.fbeSize) > fbeStructSize) { return true } if (!this.f106.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f106.fbeSize if ((fbeCurrentSize + this.f107.fbeSize) > fbeStructSize) { return true } if (!this.f107.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f107.fbeSize if ((fbeCurrentSize + this.f108.fbeSize) > fbeStructSize) { return true } if (!this.f108.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f108.fbeSize if ((fbeCurrentSize + this.f109.fbeSize) > fbeStructSize) { return true } if (!this.f109.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f109.fbeSize if ((fbeCurrentSize + this.f110.fbeSize) > fbeStructSize) { return true } if (!this.f110.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f110.fbeSize if ((fbeCurrentSize + this.f111.fbeSize) > fbeStructSize) { return true } if (!this.f111.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f111.fbeSize if ((fbeCurrentSize + this.f112.fbeSize) > fbeStructSize) { return true } if (!this.f112.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f112.fbeSize if ((fbeCurrentSize + this.f113.fbeSize) > fbeStructSize) { return true } if (!this.f113.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f113.fbeSize if ((fbeCurrentSize + this.f114.fbeSize) > fbeStructSize) { return true } if (!this.f114.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f114.fbeSize if ((fbeCurrentSize + this.f115.fbeSize) > fbeStructSize) { return true } if (!this.f115.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f115.fbeSize if ((fbeCurrentSize + this.f116.fbeSize) > fbeStructSize) { return true } if (!this.f116.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f116.fbeSize if ((fbeCurrentSize + this.f117.fbeSize) > fbeStructSize) { return true } if (!this.f117.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f117.fbeSize if ((fbeCurrentSize + this.f118.fbeSize) > fbeStructSize) { return true } if (!this.f118.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f118.fbeSize if ((fbeCurrentSize + this.f119.fbeSize) > fbeStructSize) { return true } if (!this.f119.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f119.fbeSize if ((fbeCurrentSize + this.f120.fbeSize) > fbeStructSize) { return true } if (!this.f120.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f120.fbeSize if ((fbeCurrentSize + this.f121.fbeSize) > fbeStructSize) { return true } if (!this.f121.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f121.fbeSize if ((fbeCurrentSize + this.f122.fbeSize) > fbeStructSize) { return true } if (!this.f122.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f122.fbeSize if ((fbeCurrentSize + this.f123.fbeSize) > fbeStructSize) { return true } if (!this.f123.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f123.fbeSize if ((fbeCurrentSize + this.f124.fbeSize) > fbeStructSize) { return true } if (!this.f124.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f124.fbeSize if ((fbeCurrentSize + this.f125.fbeSize) > fbeStructSize) { return true } if (!this.f125.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f125.fbeSize if ((fbeCurrentSize + this.f126.fbeSize) > fbeStructSize) { return true } if (!this.f126.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f126.fbeSize if ((fbeCurrentSize + this.f127.fbeSize) > fbeStructSize) { return true } if (!this.f127.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f127.fbeSize if ((fbeCurrentSize + this.f128.fbeSize) > fbeStructSize) { return true } if (!this.f128.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f128.fbeSize if ((fbeCurrentSize + this.f129.fbeSize) > fbeStructSize) { return true } if (!this.f129.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f129.fbeSize if ((fbeCurrentSize + this.f130.fbeSize) > fbeStructSize) { return true } if (!this.f130.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f130.fbeSize if ((fbeCurrentSize + this.f131.fbeSize) > fbeStructSize) { return true } if (!this.f131.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f131.fbeSize if ((fbeCurrentSize + this.f132.fbeSize) > fbeStructSize) { return true } if (!this.f132.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f132.fbeSize if ((fbeCurrentSize + this.f133.fbeSize) > fbeStructSize) { return true } if (!this.f133.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f133.fbeSize if ((fbeCurrentSize + this.f134.fbeSize) > fbeStructSize) { return true } if (!this.f134.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f134.fbeSize if ((fbeCurrentSize + this.f135.fbeSize) > fbeStructSize) { return true } if (!this.f135.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f135.fbeSize if ((fbeCurrentSize + this.f136.fbeSize) > fbeStructSize) { return true } if (!this.f136.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f136.fbeSize if ((fbeCurrentSize + this.f137.fbeSize) > fbeStructSize) { return true } if (!this.f137.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f137.fbeSize if ((fbeCurrentSize + this.f138.fbeSize) > fbeStructSize) { return true } if (!this.f138.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f138.fbeSize if ((fbeCurrentSize + this.f139.fbeSize) > fbeStructSize) { return true } if (!this.f139.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f139.fbeSize if ((fbeCurrentSize + this.f140.fbeSize) > fbeStructSize) { return true } if (!this.f140.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f140.fbeSize if ((fbeCurrentSize + this.f141.fbeSize) > fbeStructSize) { return true } if (!this.f141.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f141.fbeSize if ((fbeCurrentSize + this.f142.fbeSize) > fbeStructSize) { return true } if (!this.f142.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f142.fbeSize if ((fbeCurrentSize + this.f143.fbeSize) > fbeStructSize) { return true } if (!this.f143.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f143.fbeSize if ((fbeCurrentSize + this.f144.fbeSize) > fbeStructSize) { return true } if (!this.f144.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f144.fbeSize if ((fbeCurrentSize + this.f145.fbeSize) > fbeStructSize) { return true } if (!this.f145.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f145.fbeSize if ((fbeCurrentSize + this.f146.fbeSize) > fbeStructSize) { return true } if (!this.f146.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f146.fbeSize if ((fbeCurrentSize + this.f147.fbeSize) > fbeStructSize) { return true } if (!this.f147.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f147.fbeSize if ((fbeCurrentSize + this.f148.fbeSize) > fbeStructSize) { return true } if (!this.f148.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f148.fbeSize if ((fbeCurrentSize + this.f149.fbeSize) > fbeStructSize) { return true } if (!this.f149.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f149.fbeSize if ((fbeCurrentSize + this.f150.fbeSize) > fbeStructSize) { return true } if (!this.f150.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f150.fbeSize if ((fbeCurrentSize + this.f151.fbeSize) > fbeStructSize) { return true } if (!this.f151.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f151.fbeSize if ((fbeCurrentSize + this.f152.fbeSize) > fbeStructSize) { return true } if (!this.f152.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f152.fbeSize if ((fbeCurrentSize + this.f153.fbeSize) > fbeStructSize) { return true } if (!this.f153.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f153.fbeSize if ((fbeCurrentSize + this.f154.fbeSize) > fbeStructSize) { return true } if (!this.f154.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f154.fbeSize if ((fbeCurrentSize + this.f155.fbeSize) > fbeStructSize) { return true } if (!this.f155.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f155.fbeSize if ((fbeCurrentSize + this.f156.fbeSize) > fbeStructSize) { return true } if (!this.f156.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f156.fbeSize if ((fbeCurrentSize + this.f157.fbeSize) > fbeStructSize) { return true } if (!this.f157.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f157.fbeSize if ((fbeCurrentSize + this.f158.fbeSize) > fbeStructSize) { return true } if (!this.f158.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f158.fbeSize if ((fbeCurrentSize + this.f159.fbeSize) > fbeStructSize) { return true } if (!this.f159.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f159.fbeSize if ((fbeCurrentSize + this.f160.fbeSize) > fbeStructSize) { return true } if (!this.f160.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f160.fbeSize if ((fbeCurrentSize + this.f161.fbeSize) > fbeStructSize) { return true } if (!this.f161.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f161.fbeSize if ((fbeCurrentSize + this.f162.fbeSize) > fbeStructSize) { return true } if (!this.f162.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f162.fbeSize if ((fbeCurrentSize + this.f163.fbeSize) > fbeStructSize) { return true } if (!this.f163.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f163.fbeSize if ((fbeCurrentSize + this.f164.fbeSize) > fbeStructSize) { return true } if (!this.f164.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f164.fbeSize if ((fbeCurrentSize + this.f165.fbeSize) > fbeStructSize) { return true } if (!this.f165.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f165.fbeSize return true } /** * Get the struct value (begin phase) * @this {!FieldModelStructOptional} * @returns {!number} Field model begin offset */ getBegin () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructOffset = this.readUInt32(this.fbeOffset) console.assert((fbeStructOffset > 0) && ((this._buffer.offset + fbeStructOffset + 4 + 4) <= this._buffer.size), 'Model is broken!') if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4 + 4) > this._buffer.size)) { return 0 } let fbeStructSize = this.readUInt32(fbeStructOffset) console.assert((fbeStructSize >= (4 + 4)), 'Model is broken!') if (fbeStructSize < (4 + 4)) { return 0 } this._buffer.shift(fbeStructOffset) return fbeStructOffset } /** * Get the struct value (end phase) * @this {!FieldModelStructOptional} * @param {!number} fbeBegin Field model begin offset */ getEnd (fbeBegin) { this._buffer.unshift(fbeBegin) } /** * Get the struct value * @this {!FieldModelStructOptional} * @param {!StructOptional} fbeValue Default value, defaults is new StructOptional() * @returns {!StructOptional} StructOptional value */ get (fbeValue = new StructOptional()) { let fbeBegin = this.getBegin() if (fbeBegin === 0) { return fbeValue } let fbeStructSize = this.readUInt32(0) this.getFields(fbeValue, fbeStructSize) this.getEnd(fbeBegin) return fbeValue } /** * Get the struct fields values * @this {!FieldModelStructOptional} * @param {!StructOptional} fbeValue StructOptional value * @param {!number} fbeStructSize Struct size */ getFields (fbeValue, fbeStructSize) { let fbeCurrentSize = 4 + 4 if ((fbeCurrentSize + this.parent.fbeBody - 4 - 4) <= fbeStructSize) { this.parent.getFields(fbeValue, fbeStructSize) } // noinspection JSUnusedAssignment fbeCurrentSize += this.parent.fbeBody - 4 - 4 if ((fbeCurrentSize + this.f100.fbeSize) <= fbeStructSize) { fbeValue.f100 = this.f100.get() } else { fbeValue.f100 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f100.fbeSize if ((fbeCurrentSize + this.f101.fbeSize) <= fbeStructSize) { fbeValue.f101 = this.f101.get(true) } else { fbeValue.f101 = true } // noinspection JSUnusedAssignment fbeCurrentSize += this.f101.fbeSize if ((fbeCurrentSize + this.f102.fbeSize) <= fbeStructSize) { fbeValue.f102 = this.f102.get(undefined) } else { fbeValue.f102 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f102.fbeSize if ((fbeCurrentSize + this.f103.fbeSize) <= fbeStructSize) { fbeValue.f103 = this.f103.get() } else { fbeValue.f103 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f103.fbeSize if ((fbeCurrentSize + this.f104.fbeSize) <= fbeStructSize) { fbeValue.f104 = this.f104.get(255) } else { fbeValue.f104 = 255 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f104.fbeSize if ((fbeCurrentSize + this.f105.fbeSize) <= fbeStructSize) { fbeValue.f105 = this.f105.get(undefined) } else { fbeValue.f105 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f105.fbeSize if ((fbeCurrentSize + this.f106.fbeSize) <= fbeStructSize) { fbeValue.f106 = this.f106.get() } else { fbeValue.f106 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f106.fbeSize if ((fbeCurrentSize + this.f107.fbeSize) <= fbeStructSize) { fbeValue.f107 = this.f107.get('!') } else { fbeValue.f107 = '!' } // noinspection JSUnusedAssignment fbeCurrentSize += this.f107.fbeSize if ((fbeCurrentSize + this.f108.fbeSize) <= fbeStructSize) { fbeValue.f108 = this.f108.get(undefined) } else { fbeValue.f108 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f108.fbeSize if ((fbeCurrentSize + this.f109.fbeSize) <= fbeStructSize) { fbeValue.f109 = this.f109.get() } else { fbeValue.f109 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f109.fbeSize if ((fbeCurrentSize + this.f110.fbeSize) <= fbeStructSize) { fbeValue.f110 = this.f110.get(String.fromCharCode(0x0444)) } else { fbeValue.f110 = String.fromCharCode(0x0444) } // noinspection JSUnusedAssignment fbeCurrentSize += this.f110.fbeSize if ((fbeCurrentSize + this.f111.fbeSize) <= fbeStructSize) { fbeValue.f111 = this.f111.get(undefined) } else { fbeValue.f111 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f111.fbeSize if ((fbeCurrentSize + this.f112.fbeSize) <= fbeStructSize) { fbeValue.f112 = this.f112.get() } else { fbeValue.f112 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f112.fbeSize if ((fbeCurrentSize + this.f113.fbeSize) <= fbeStructSize) { fbeValue.f113 = this.f113.get(127) } else { fbeValue.f113 = 127 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f113.fbeSize if ((fbeCurrentSize + this.f114.fbeSize) <= fbeStructSize) { fbeValue.f114 = this.f114.get(undefined) } else { fbeValue.f114 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f114.fbeSize if ((fbeCurrentSize + this.f115.fbeSize) <= fbeStructSize) { fbeValue.f115 = this.f115.get() } else { fbeValue.f115 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f115.fbeSize if ((fbeCurrentSize + this.f116.fbeSize) <= fbeStructSize) { fbeValue.f116 = this.f116.get(255) } else { fbeValue.f116 = 255 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f116.fbeSize if ((fbeCurrentSize + this.f117.fbeSize) <= fbeStructSize) { fbeValue.f117 = this.f117.get(undefined) } else { fbeValue.f117 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f117.fbeSize if ((fbeCurrentSize + this.f118.fbeSize) <= fbeStructSize) { fbeValue.f118 = this.f118.get() } else { fbeValue.f118 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f118.fbeSize if ((fbeCurrentSize + this.f119.fbeSize) <= fbeStructSize) { fbeValue.f119 = this.f119.get(32767) } else { fbeValue.f119 = 32767 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f119.fbeSize if ((fbeCurrentSize + this.f120.fbeSize) <= fbeStructSize) { fbeValue.f120 = this.f120.get(undefined) } else { fbeValue.f120 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f120.fbeSize if ((fbeCurrentSize + this.f121.fbeSize) <= fbeStructSize) { fbeValue.f121 = this.f121.get() } else { fbeValue.f121 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f121.fbeSize if ((fbeCurrentSize + this.f122.fbeSize) <= fbeStructSize) { fbeValue.f122 = this.f122.get(65535) } else { fbeValue.f122 = 65535 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f122.fbeSize if ((fbeCurrentSize + this.f123.fbeSize) <= fbeStructSize) { fbeValue.f123 = this.f123.get(undefined) } else { fbeValue.f123 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f123.fbeSize if ((fbeCurrentSize + this.f124.fbeSize) <= fbeStructSize) { fbeValue.f124 = this.f124.get() } else { fbeValue.f124 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f124.fbeSize if ((fbeCurrentSize + this.f125.fbeSize) <= fbeStructSize) { fbeValue.f125 = this.f125.get(2147483647) } else { fbeValue.f125 = 2147483647 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f125.fbeSize if ((fbeCurrentSize + this.f126.fbeSize) <= fbeStructSize) { fbeValue.f126 = this.f126.get(undefined) } else { fbeValue.f126 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f126.fbeSize if ((fbeCurrentSize + this.f127.fbeSize) <= fbeStructSize) { fbeValue.f127 = this.f127.get() } else { fbeValue.f127 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f127.fbeSize if ((fbeCurrentSize + this.f128.fbeSize) <= fbeStructSize) { fbeValue.f128 = this.f128.get(4294967295) } else { fbeValue.f128 = 4294967295 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f128.fbeSize if ((fbeCurrentSize + this.f129.fbeSize) <= fbeStructSize) { fbeValue.f129 = this.f129.get(undefined) } else { fbeValue.f129 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f129.fbeSize if ((fbeCurrentSize + this.f130.fbeSize) <= fbeStructSize) { fbeValue.f130 = this.f130.get() } else { fbeValue.f130 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f130.fbeSize if ((fbeCurrentSize + this.f131.fbeSize) <= fbeStructSize) { fbeValue.f131 = this.f131.get(new Int64(4294967295, 2147483647)) } else { fbeValue.f131 = new Int64(4294967295, 2147483647) } // noinspection JSUnusedAssignment fbeCurrentSize += this.f131.fbeSize if ((fbeCurrentSize + this.f132.fbeSize) <= fbeStructSize) { fbeValue.f132 = this.f132.get(undefined) } else { fbeValue.f132 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f132.fbeSize if ((fbeCurrentSize + this.f133.fbeSize) <= fbeStructSize) { fbeValue.f133 = this.f133.get() } else { fbeValue.f133 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f133.fbeSize if ((fbeCurrentSize + this.f134.fbeSize) <= fbeStructSize) { fbeValue.f134 = this.f134.get(new UInt64(4294967295, 4294967295)) } else { fbeValue.f134 = new UInt64(4294967295, 4294967295) } // noinspection JSUnusedAssignment fbeCurrentSize += this.f134.fbeSize if ((fbeCurrentSize + this.f135.fbeSize) <= fbeStructSize) { fbeValue.f135 = this.f135.get(undefined) } else { fbeValue.f135 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f135.fbeSize if ((fbeCurrentSize + this.f136.fbeSize) <= fbeStructSize) { fbeValue.f136 = this.f136.get() } else { fbeValue.f136 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f136.fbeSize if ((fbeCurrentSize + this.f137.fbeSize) <= fbeStructSize) { fbeValue.f137 = this.f137.get(123.456) } else { fbeValue.f137 = 123.456 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f137.fbeSize if ((fbeCurrentSize + this.f138.fbeSize) <= fbeStructSize) { fbeValue.f138 = this.f138.get(undefined) } else { fbeValue.f138 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f138.fbeSize if ((fbeCurrentSize + this.f139.fbeSize) <= fbeStructSize) { fbeValue.f139 = this.f139.get() } else { fbeValue.f139 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f139.fbeSize if ((fbeCurrentSize + this.f140.fbeSize) <= fbeStructSize) { fbeValue.f140 = this.f140.get(-123.456e+123) } else { fbeValue.f140 = -123.456e+123 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f140.fbeSize if ((fbeCurrentSize + this.f141.fbeSize) <= fbeStructSize) { fbeValue.f141 = this.f141.get(undefined) } else { fbeValue.f141 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f141.fbeSize if ((fbeCurrentSize + this.f142.fbeSize) <= fbeStructSize) { fbeValue.f142 = this.f142.get() } else { fbeValue.f142 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f142.fbeSize if ((fbeCurrentSize + this.f143.fbeSize) <= fbeStructSize) { fbeValue.f143 = this.f143.get(new Big('123456.123456')) } else { fbeValue.f143 = new Big('123456.123456') } // noinspection JSUnusedAssignment fbeCurrentSize += this.f143.fbeSize if ((fbeCurrentSize + this.f144.fbeSize) <= fbeStructSize) { fbeValue.f144 = this.f144.get(undefined) } else { fbeValue.f144 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f144.fbeSize if ((fbeCurrentSize + this.f145.fbeSize) <= fbeStructSize) { fbeValue.f145 = this.f145.get() } else { fbeValue.f145 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f145.fbeSize if ((fbeCurrentSize + this.f146.fbeSize) <= fbeStructSize) { fbeValue.f146 = this.f146.get('Initial string!') } else { fbeValue.f146 = 'Initial string!' } // noinspection JSUnusedAssignment fbeCurrentSize += this.f146.fbeSize if ((fbeCurrentSize + this.f147.fbeSize) <= fbeStructSize) { fbeValue.f147 = this.f147.get(undefined) } else { fbeValue.f147 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f147.fbeSize if ((fbeCurrentSize + this.f148.fbeSize) <= fbeStructSize) { fbeValue.f148 = this.f148.get() } else { fbeValue.f148 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f148.fbeSize if ((fbeCurrentSize + this.f149.fbeSize) <= fbeStructSize) { fbeValue.f149 = this.f149.get(new Date(Date.now())) } else { fbeValue.f149 = new Date(Date.now()) } // noinspection JSUnusedAssignment fbeCurrentSize += this.f149.fbeSize if ((fbeCurrentSize + this.f150.fbeSize) <= fbeStructSize) { fbeValue.f150 = this.f150.get(undefined) } else { fbeValue.f150 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f150.fbeSize if ((fbeCurrentSize + this.f151.fbeSize) <= fbeStructSize) { fbeValue.f151 = this.f151.get() } else { fbeValue.f151 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f151.fbeSize if ((fbeCurrentSize + this.f152.fbeSize) <= fbeStructSize) { fbeValue.f152 = this.f152.get(new UUID('123e4567-e89b-12d3-a456-426655440000')) } else { fbeValue.f152 = new UUID('123e4567-e89b-12d3-a456-426655440000') } // noinspection JSUnusedAssignment fbeCurrentSize += this.f152.fbeSize if ((fbeCurrentSize + this.f153.fbeSize) <= fbeStructSize) { fbeValue.f153 = this.f153.get(undefined) } else { fbeValue.f153 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f153.fbeSize if ((fbeCurrentSize + this.f154.fbeSize) <= fbeStructSize) { fbeValue.f154 = this.f154.get() } else { fbeValue.f154 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f154.fbeSize if ((fbeCurrentSize + this.f155.fbeSize) <= fbeStructSize) { fbeValue.f155 = this.f155.get(undefined) } else { fbeValue.f155 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f155.fbeSize if ((fbeCurrentSize + this.f156.fbeSize) <= fbeStructSize) { fbeValue.f156 = this.f156.get() } else { fbeValue.f156 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f156.fbeSize if ((fbeCurrentSize + this.f157.fbeSize) <= fbeStructSize) { fbeValue.f157 = this.f157.get(undefined) } else { fbeValue.f157 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f157.fbeSize if ((fbeCurrentSize + this.f158.fbeSize) <= fbeStructSize) { fbeValue.f158 = this.f158.get() } else { fbeValue.f158 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f158.fbeSize if ((fbeCurrentSize + this.f159.fbeSize) <= fbeStructSize) { fbeValue.f159 = this.f159.get(undefined) } else { fbeValue.f159 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f159.fbeSize if ((fbeCurrentSize + this.f160.fbeSize) <= fbeStructSize) { fbeValue.f160 = this.f160.get() } else { fbeValue.f160 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f160.fbeSize if ((fbeCurrentSize + this.f161.fbeSize) <= fbeStructSize) { fbeValue.f161 = this.f161.get(undefined) } else { fbeValue.f161 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f161.fbeSize if ((fbeCurrentSize + this.f162.fbeSize) <= fbeStructSize) { fbeValue.f162 = this.f162.get() } else { fbeValue.f162 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f162.fbeSize if ((fbeCurrentSize + this.f163.fbeSize) <= fbeStructSize) { fbeValue.f163 = this.f163.get(undefined) } else { fbeValue.f163 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f163.fbeSize if ((fbeCurrentSize + this.f164.fbeSize) <= fbeStructSize) { fbeValue.f164 = this.f164.get() } else { fbeValue.f164 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f164.fbeSize if ((fbeCurrentSize + this.f165.fbeSize) <= fbeStructSize) { fbeValue.f165 = this.f165.get(undefined) } else { fbeValue.f165 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f165.fbeSize } /** * Set the struct value (begin phase) * @this {!FieldModelStructOptional} * @returns {!number} Field model begin offset */ setBegin () { console.assert(((this._buffer.offset + this.fbeOffset + this.fbeSize) <= this._buffer.size), 'Model is broken!') if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructSize = this.fbeBody let fbeStructOffset = this._buffer.allocate(fbeStructSize) - this._buffer.offset console.assert((fbeStructOffset > 0) && ((this._buffer.offset + fbeStructOffset + fbeStructSize) <= this._buffer.size), 'Model is broken!') if ((fbeStructOffset <= 0) || ((this._buffer.offset + fbeStructOffset + fbeStructSize) > this._buffer.size)) { return 0 } this.writeUInt32(this.fbeOffset, fbeStructOffset) this.writeUInt32(fbeStructOffset, fbeStructSize) this.writeUInt32(fbeStructOffset + 4, this.fbeType) this._buffer.shift(fbeStructOffset) return fbeStructOffset } /** * Set the struct value (end phase) * @this {!FieldModelStructOptional} * @param {!number} fbeBegin Field model begin offset */ setEnd (fbeBegin) { this._buffer.unshift(fbeBegin) } /** * Set the struct value * @this {!FieldModelStructOptional} * @param {!StructOptional} fbeValue StructOptional value */ set (fbeValue) { let fbeBegin = this.setBegin() if (fbeBegin === 0) { return } this.setFields(fbeValue) this.setEnd(fbeBegin) } /** * Set the struct fields values * @this {!FieldModelStructOptional} * @param {StructOptional} fbeValue StructOptional value */ setFields (fbeValue) { this.parent.setFields(fbeValue) this.f100.set(fbeValue.f100) this.f101.set(fbeValue.f101) this.f102.set(fbeValue.f102) this.f103.set(fbeValue.f103) this.f104.set(fbeValue.f104) this.f105.set(fbeValue.f105) this.f106.set(fbeValue.f106) this.f107.set(fbeValue.f107) this.f108.set(fbeValue.f108) this.f109.set(fbeValue.f109) this.f110.set(fbeValue.f110) this.f111.set(fbeValue.f111) this.f112.set(fbeValue.f112) this.f113.set(fbeValue.f113) this.f114.set(fbeValue.f114) this.f115.set(fbeValue.f115) this.f116.set(fbeValue.f116) this.f117.set(fbeValue.f117) this.f118.set(fbeValue.f118) this.f119.set(fbeValue.f119) this.f120.set(fbeValue.f120) this.f121.set(fbeValue.f121) this.f122.set(fbeValue.f122) this.f123.set(fbeValue.f123) this.f124.set(fbeValue.f124) this.f125.set(fbeValue.f125) this.f126.set(fbeValue.f126) this.f127.set(fbeValue.f127) this.f128.set(fbeValue.f128) this.f129.set(fbeValue.f129) this.f130.set(fbeValue.f130) this.f131.set(fbeValue.f131) this.f132.set(fbeValue.f132) this.f133.set(fbeValue.f133) this.f134.set(fbeValue.f134) this.f135.set(fbeValue.f135) this.f136.set(fbeValue.f136) this.f137.set(fbeValue.f137) this.f138.set(fbeValue.f138) this.f139.set(fbeValue.f139) this.f140.set(fbeValue.f140) this.f141.set(fbeValue.f141) this.f142.set(fbeValue.f142) this.f143.set(fbeValue.f143) this.f144.set(fbeValue.f144) this.f145.set(fbeValue.f145) this.f146.set(fbeValue.f146) this.f147.set(fbeValue.f147) this.f148.set(fbeValue.f148) this.f149.set(fbeValue.f149) this.f150.set(fbeValue.f150) this.f151.set(fbeValue.f151) this.f152.set(fbeValue.f152) this.f153.set(fbeValue.f153) this.f154.set(fbeValue.f154) this.f155.set(fbeValue.f155) this.f156.set(fbeValue.f156) this.f157.set(fbeValue.f157) this.f158.set(fbeValue.f158) this.f159.set(fbeValue.f159) this.f160.set(fbeValue.f160) this.f161.set(fbeValue.f161) this.f162.set(fbeValue.f162) this.f163.set(fbeValue.f163) this.f164.set(fbeValue.f164) this.f165.set(fbeValue.f165) } } exports.FieldModelStructOptional = FieldModelStructOptional /** * Fast Binary Encoding StructOptional model */ class StructOptionalModel extends fbe.Model { /** * Initialize model with the given buffer * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Read/Write buffer, defaults is new fbe.WriteBuffer() * @constructor */ constructor (buffer = new fbe.WriteBuffer()) { super(buffer) this._model = new FieldModelStructOptional(this.buffer, 4) } /** * Get the StructOptional model * @this {!StructOptionalModel} * @returns {!FieldModelStructOptional} model StructOptional model */ get model () { return this._model } /** * Get the model size * @this {!StructOptionalModel} * @returns {!number} Model size */ get fbeSize () { return this.model.fbeSize + this.model.fbeExtra } /** * Get the model type * @this {!StructOptionalModel} * @returns {!number} Model type */ get fbeType () { return StructOptionalModel.fbeType } /** * Get the model type (static) * @this {!StructOptionalModel} * @returns {!number} Model type */ static get fbeType () { return FieldModelStructOptional.fbeType } /** * Check if the struct value is valid * @this {!StructOptionalModel} * @returns {!boolean} Model valid state */ verify () { if ((this.buffer.offset + this.model.fbeOffset - 4) > this.buffer.size) { return false } let fbeFullSize = this.readUInt32(this.model.fbeOffset - 4) if (fbeFullSize < this.model.fbeSize) { return false } return this.model.verify() } /** * Create a new model (begin phase) * @this {!StructOptionalModel} * @returns {!number} Model begin offset */ createBegin () { return this.buffer.allocate(4 + this.model.fbeSize) } /** * Create a new model (end phase) * @this {!StructOptionalModel} * @param {!number} fbeBegin Model begin offset */ createEnd (fbeBegin) { let fbeEnd = this.buffer.size let fbeFullSize = fbeEnd - fbeBegin this.writeUInt32(this.model.fbeOffset - 4, fbeFullSize) return fbeFullSize } /** * Serialize the struct value * @this {!StructOptionalModel} * @param {!StructOptional} value StructOptional value * @return {!number} Model begin offset */ serialize (value) { let fbeBegin = this.createBegin() this.model.set(value) return this.createEnd(fbeBegin) } /** * Deserialize the struct value * @this {!StructOptionalModel} * @param {!StructOptional} value StructOptional value, defaults is new StructOptional() * @return {!object} Deserialized StructOptional value and its size */ deserialize (value = new StructOptional()) { if ((this.buffer.offset + this.model.fbeOffset - 4) > this.buffer.size) { return { value: new StructOptional(), size: 0 } } let fbeFullSize = this.readUInt32(this.model.fbeOffset - 4) console.assert((fbeFullSize >= this.model.fbeSize), 'Model is broken!') if (fbeFullSize < this.model.fbeSize) { return { value: new StructOptional(), size: 0 } } this.model.get(value) return { value, size: fbeFullSize } } /** * Move to the next struct value * @this {!StructOptionalModel} * @param {!number} prev Previous StructOptional model size */ next (prev) { this.model.fbeShift(prev) } } exports.StructOptionalModel = StructOptionalModel /** * Fast Binary Encoding StructOptional final model */ class FinalModelStructOptional extends fbe.FinalModel { /** * Initialize final model with the given buffer and offset * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Buffer * @param {!number} offset Offset * @constructor */ constructor (buffer, offset) { super(buffer, offset) this._parent = new FinalModelStructSimple(buffer, 0) this._f100 = new fbe.FinalModelOptional(new fbe.FinalModelBool(buffer, 0), buffer, 0) this._f101 = new fbe.FinalModelOptional(new fbe.FinalModelBool(buffer, 0), buffer, 0) this._f102 = new fbe.FinalModelOptional(new fbe.FinalModelBool(buffer, 0), buffer, 0) this._f103 = new fbe.FinalModelOptional(new fbe.FinalModelByte(buffer, 0), buffer, 0) this._f104 = new fbe.FinalModelOptional(new fbe.FinalModelByte(buffer, 0), buffer, 0) this._f105 = new fbe.FinalModelOptional(new fbe.FinalModelByte(buffer, 0), buffer, 0) this._f106 = new fbe.FinalModelOptional(new fbe.FinalModelChar(buffer, 0), buffer, 0) this._f107 = new fbe.FinalModelOptional(new fbe.FinalModelChar(buffer, 0), buffer, 0) this._f108 = new fbe.FinalModelOptional(new fbe.FinalModelChar(buffer, 0), buffer, 0) this._f109 = new fbe.FinalModelOptional(new fbe.FinalModelWChar(buffer, 0), buffer, 0) this._f110 = new fbe.FinalModelOptional(new fbe.FinalModelWChar(buffer, 0), buffer, 0) this._f111 = new fbe.FinalModelOptional(new fbe.FinalModelWChar(buffer, 0), buffer, 0) this._f112 = new fbe.FinalModelOptional(new fbe.FinalModelInt8(buffer, 0), buffer, 0) this._f113 = new fbe.FinalModelOptional(new fbe.FinalModelInt8(buffer, 0), buffer, 0) this._f114 = new fbe.FinalModelOptional(new fbe.FinalModelInt8(buffer, 0), buffer, 0) this._f115 = new fbe.FinalModelOptional(new fbe.FinalModelUInt8(buffer, 0), buffer, 0) this._f116 = new fbe.FinalModelOptional(new fbe.FinalModelUInt8(buffer, 0), buffer, 0) this._f117 = new fbe.FinalModelOptional(new fbe.FinalModelUInt8(buffer, 0), buffer, 0) this._f118 = new fbe.FinalModelOptional(new fbe.FinalModelInt16(buffer, 0), buffer, 0) this._f119 = new fbe.FinalModelOptional(new fbe.FinalModelInt16(buffer, 0), buffer, 0) this._f120 = new fbe.FinalModelOptional(new fbe.FinalModelInt16(buffer, 0), buffer, 0) this._f121 = new fbe.FinalModelOptional(new fbe.FinalModelUInt16(buffer, 0), buffer, 0) this._f122 = new fbe.FinalModelOptional(new fbe.FinalModelUInt16(buffer, 0), buffer, 0) this._f123 = new fbe.FinalModelOptional(new fbe.FinalModelUInt16(buffer, 0), buffer, 0) this._f124 = new fbe.FinalModelOptional(new fbe.FinalModelInt32(buffer, 0), buffer, 0) this._f125 = new fbe.FinalModelOptional(new fbe.FinalModelInt32(buffer, 0), buffer, 0) this._f126 = new fbe.FinalModelOptional(new fbe.FinalModelInt32(buffer, 0), buffer, 0) this._f127 = new fbe.FinalModelOptional(new fbe.FinalModelUInt32(buffer, 0), buffer, 0) this._f128 = new fbe.FinalModelOptional(new fbe.FinalModelUInt32(buffer, 0), buffer, 0) this._f129 = new fbe.FinalModelOptional(new fbe.FinalModelUInt32(buffer, 0), buffer, 0) this._f130 = new fbe.FinalModelOptional(new fbe.FinalModelInt64(buffer, 0), buffer, 0) this._f131 = new fbe.FinalModelOptional(new fbe.FinalModelInt64(buffer, 0), buffer, 0) this._f132 = new fbe.FinalModelOptional(new fbe.FinalModelInt64(buffer, 0), buffer, 0) this._f133 = new fbe.FinalModelOptional(new fbe.FinalModelUInt64(buffer, 0), buffer, 0) this._f134 = new fbe.FinalModelOptional(new fbe.FinalModelUInt64(buffer, 0), buffer, 0) this._f135 = new fbe.FinalModelOptional(new fbe.FinalModelUInt64(buffer, 0), buffer, 0) this._f136 = new fbe.FinalModelOptional(new fbe.FinalModelFloat(buffer, 0), buffer, 0) this._f137 = new fbe.FinalModelOptional(new fbe.FinalModelFloat(buffer, 0), buffer, 0) this._f138 = new fbe.FinalModelOptional(new fbe.FinalModelFloat(buffer, 0), buffer, 0) this._f139 = new fbe.FinalModelOptional(new fbe.FinalModelDouble(buffer, 0), buffer, 0) this._f140 = new fbe.FinalModelOptional(new fbe.FinalModelDouble(buffer, 0), buffer, 0) this._f141 = new fbe.FinalModelOptional(new fbe.FinalModelDouble(buffer, 0), buffer, 0) this._f142 = new fbe.FinalModelOptional(new fbe.FinalModelDecimal(buffer, 0), buffer, 0) this._f143 = new fbe.FinalModelOptional(new fbe.FinalModelDecimal(buffer, 0), buffer, 0) this._f144 = new fbe.FinalModelOptional(new fbe.FinalModelDecimal(buffer, 0), buffer, 0) this._f145 = new fbe.FinalModelOptional(new fbe.FinalModelString(buffer, 0), buffer, 0) this._f146 = new fbe.FinalModelOptional(new fbe.FinalModelString(buffer, 0), buffer, 0) this._f147 = new fbe.FinalModelOptional(new fbe.FinalModelString(buffer, 0), buffer, 0) this._f148 = new fbe.FinalModelOptional(new fbe.FinalModelTimestamp(buffer, 0), buffer, 0) this._f149 = new fbe.FinalModelOptional(new fbe.FinalModelTimestamp(buffer, 0), buffer, 0) this._f150 = new fbe.FinalModelOptional(new fbe.FinalModelTimestamp(buffer, 0), buffer, 0) this._f151 = new fbe.FinalModelOptional(new fbe.FinalModelUUID(buffer, 0), buffer, 0) this._f152 = new fbe.FinalModelOptional(new fbe.FinalModelUUID(buffer, 0), buffer, 0) this._f153 = new fbe.FinalModelOptional(new fbe.FinalModelUUID(buffer, 0), buffer, 0) this._f154 = new fbe.FinalModelOptional(new proto.FinalModelOrderSide(buffer, 0), buffer, 0) this._f155 = new fbe.FinalModelOptional(new proto.FinalModelOrderSide(buffer, 0), buffer, 0) this._f156 = new fbe.FinalModelOptional(new proto.FinalModelOrderType(buffer, 0), buffer, 0) this._f157 = new fbe.FinalModelOptional(new proto.FinalModelOrderType(buffer, 0), buffer, 0) this._f158 = new fbe.FinalModelOptional(new proto.FinalModelOrder(buffer, 0), buffer, 0) this._f159 = new fbe.FinalModelOptional(new proto.FinalModelOrder(buffer, 0), buffer, 0) this._f160 = new fbe.FinalModelOptional(new proto.FinalModelBalance(buffer, 0), buffer, 0) this._f161 = new fbe.FinalModelOptional(new proto.FinalModelBalance(buffer, 0), buffer, 0) this._f162 = new fbe.FinalModelOptional(new proto.FinalModelState(buffer, 0), buffer, 0) this._f163 = new fbe.FinalModelOptional(new proto.FinalModelState(buffer, 0), buffer, 0) this._f164 = new fbe.FinalModelOptional(new proto.FinalModelAccount(buffer, 0), buffer, 0) this._f165 = new fbe.FinalModelOptional(new proto.FinalModelAccount(buffer, 0), buffer, 0) } /** * Get the StructSimple final model * @this {!FinalModelStructOptional} * @returns {!FinalModelStructSimple} StructSimple field model */ get parent () { return this._parent } /** * Get the f100 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f100 final model */ get f100 () { return this._f100 } /** * Get the f101 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f101 final model */ get f101 () { return this._f101 } /** * Get the f102 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f102 final model */ get f102 () { return this._f102 } /** * Get the f103 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f103 final model */ get f103 () { return this._f103 } /** * Get the f104 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f104 final model */ get f104 () { return this._f104 } /** * Get the f105 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f105 final model */ get f105 () { return this._f105 } /** * Get the f106 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f106 final model */ get f106 () { return this._f106 } /** * Get the f107 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f107 final model */ get f107 () { return this._f107 } /** * Get the f108 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f108 final model */ get f108 () { return this._f108 } /** * Get the f109 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f109 final model */ get f109 () { return this._f109 } /** * Get the f110 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f110 final model */ get f110 () { return this._f110 } /** * Get the f111 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f111 final model */ get f111 () { return this._f111 } /** * Get the f112 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f112 final model */ get f112 () { return this._f112 } /** * Get the f113 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f113 final model */ get f113 () { return this._f113 } /** * Get the f114 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f114 final model */ get f114 () { return this._f114 } /** * Get the f115 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f115 final model */ get f115 () { return this._f115 } /** * Get the f116 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f116 final model */ get f116 () { return this._f116 } /** * Get the f117 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f117 final model */ get f117 () { return this._f117 } /** * Get the f118 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f118 final model */ get f118 () { return this._f118 } /** * Get the f119 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f119 final model */ get f119 () { return this._f119 } /** * Get the f120 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f120 final model */ get f120 () { return this._f120 } /** * Get the f121 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f121 final model */ get f121 () { return this._f121 } /** * Get the f122 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f122 final model */ get f122 () { return this._f122 } /** * Get the f123 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f123 final model */ get f123 () { return this._f123 } /** * Get the f124 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f124 final model */ get f124 () { return this._f124 } /** * Get the f125 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f125 final model */ get f125 () { return this._f125 } /** * Get the f126 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f126 final model */ get f126 () { return this._f126 } /** * Get the f127 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f127 final model */ get f127 () { return this._f127 } /** * Get the f128 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f128 final model */ get f128 () { return this._f128 } /** * Get the f129 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f129 final model */ get f129 () { return this._f129 } /** * Get the f130 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f130 final model */ get f130 () { return this._f130 } /** * Get the f131 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f131 final model */ get f131 () { return this._f131 } /** * Get the f132 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f132 final model */ get f132 () { return this._f132 } /** * Get the f133 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f133 final model */ get f133 () { return this._f133 } /** * Get the f134 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f134 final model */ get f134 () { return this._f134 } /** * Get the f135 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f135 final model */ get f135 () { return this._f135 } /** * Get the f136 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f136 final model */ get f136 () { return this._f136 } /** * Get the f137 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f137 final model */ get f137 () { return this._f137 } /** * Get the f138 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f138 final model */ get f138 () { return this._f138 } /** * Get the f139 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f139 final model */ get f139 () { return this._f139 } /** * Get the f140 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f140 final model */ get f140 () { return this._f140 } /** * Get the f141 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f141 final model */ get f141 () { return this._f141 } /** * Get the f142 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f142 final model */ get f142 () { return this._f142 } /** * Get the f143 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f143 final model */ get f143 () { return this._f143 } /** * Get the f144 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f144 final model */ get f144 () { return this._f144 } /** * Get the f145 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f145 final model */ get f145 () { return this._f145 } /** * Get the f146 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f146 final model */ get f146 () { return this._f146 } /** * Get the f147 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f147 final model */ get f147 () { return this._f147 } /** * Get the f148 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f148 final model */ get f148 () { return this._f148 } /** * Get the f149 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f149 final model */ get f149 () { return this._f149 } /** * Get the f150 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f150 final model */ get f150 () { return this._f150 } /** * Get the f151 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f151 final model */ get f151 () { return this._f151 } /** * Get the f152 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f152 final model */ get f152 () { return this._f152 } /** * Get the f153 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f153 final model */ get f153 () { return this._f153 } /** * Get the f154 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f154 final model */ get f154 () { return this._f154 } /** * Get the f155 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f155 final model */ get f155 () { return this._f155 } /** * Get the f156 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f156 final model */ get f156 () { return this._f156 } /** * Get the f157 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f157 final model */ get f157 () { return this._f157 } /** * Get the f158 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f158 final model */ get f158 () { return this._f158 } /** * Get the f159 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f159 final model */ get f159 () { return this._f159 } /** * Get the f160 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f160 final model */ get f160 () { return this._f160 } /** * Get the f161 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f161 final model */ get f161 () { return this._f161 } /** * Get the f162 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f162 final model */ get f162 () { return this._f162 } /** * Get the f163 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f163 final model */ get f163 () { return this._f163 } /** * Get the f164 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f164 final model */ get f164 () { return this._f164 } /** * Get the f165 final model * @this {!FinalModelStructOptional} * @returns {!fbe.FinalModelOptional} f165 final model */ get f165 () { return this._f165 } /** * Get the allocation size * @this {!FinalModelStructOptional} * @param {!StructOptional} fbeValue StructOptional value * @returns {!number} Allocation size */ fbeAllocationSize (fbeValue) { return 0 + this.parent.fbeAllocationSize(fbeValue) + this.f100.fbeAllocationSize(fbeValue.f100) + this.f101.fbeAllocationSize(fbeValue.f101) + this.f102.fbeAllocationSize(fbeValue.f102) + this.f103.fbeAllocationSize(fbeValue.f103) + this.f104.fbeAllocationSize(fbeValue.f104) + this.f105.fbeAllocationSize(fbeValue.f105) + this.f106.fbeAllocationSize(fbeValue.f106) + this.f107.fbeAllocationSize(fbeValue.f107) + this.f108.fbeAllocationSize(fbeValue.f108) + this.f109.fbeAllocationSize(fbeValue.f109) + this.f110.fbeAllocationSize(fbeValue.f110) + this.f111.fbeAllocationSize(fbeValue.f111) + this.f112.fbeAllocationSize(fbeValue.f112) + this.f113.fbeAllocationSize(fbeValue.f113) + this.f114.fbeAllocationSize(fbeValue.f114) + this.f115.fbeAllocationSize(fbeValue.f115) + this.f116.fbeAllocationSize(fbeValue.f116) + this.f117.fbeAllocationSize(fbeValue.f117) + this.f118.fbeAllocationSize(fbeValue.f118) + this.f119.fbeAllocationSize(fbeValue.f119) + this.f120.fbeAllocationSize(fbeValue.f120) + this.f121.fbeAllocationSize(fbeValue.f121) + this.f122.fbeAllocationSize(fbeValue.f122) + this.f123.fbeAllocationSize(fbeValue.f123) + this.f124.fbeAllocationSize(fbeValue.f124) + this.f125.fbeAllocationSize(fbeValue.f125) + this.f126.fbeAllocationSize(fbeValue.f126) + this.f127.fbeAllocationSize(fbeValue.f127) + this.f128.fbeAllocationSize(fbeValue.f128) + this.f129.fbeAllocationSize(fbeValue.f129) + this.f130.fbeAllocationSize(fbeValue.f130) + this.f131.fbeAllocationSize(fbeValue.f131) + this.f132.fbeAllocationSize(fbeValue.f132) + this.f133.fbeAllocationSize(fbeValue.f133) + this.f134.fbeAllocationSize(fbeValue.f134) + this.f135.fbeAllocationSize(fbeValue.f135) + this.f136.fbeAllocationSize(fbeValue.f136) + this.f137.fbeAllocationSize(fbeValue.f137) + this.f138.fbeAllocationSize(fbeValue.f138) + this.f139.fbeAllocationSize(fbeValue.f139) + this.f140.fbeAllocationSize(fbeValue.f140) + this.f141.fbeAllocationSize(fbeValue.f141) + this.f142.fbeAllocationSize(fbeValue.f142) + this.f143.fbeAllocationSize(fbeValue.f143) + this.f144.fbeAllocationSize(fbeValue.f144) + this.f145.fbeAllocationSize(fbeValue.f145) + this.f146.fbeAllocationSize(fbeValue.f146) + this.f147.fbeAllocationSize(fbeValue.f147) + this.f148.fbeAllocationSize(fbeValue.f148) + this.f149.fbeAllocationSize(fbeValue.f149) + this.f150.fbeAllocationSize(fbeValue.f150) + this.f151.fbeAllocationSize(fbeValue.f151) + this.f152.fbeAllocationSize(fbeValue.f152) + this.f153.fbeAllocationSize(fbeValue.f153) + this.f154.fbeAllocationSize(fbeValue.f154) + this.f155.fbeAllocationSize(fbeValue.f155) + this.f156.fbeAllocationSize(fbeValue.f156) + this.f157.fbeAllocationSize(fbeValue.f157) + this.f158.fbeAllocationSize(fbeValue.f158) + this.f159.fbeAllocationSize(fbeValue.f159) + this.f160.fbeAllocationSize(fbeValue.f160) + this.f161.fbeAllocationSize(fbeValue.f161) + this.f162.fbeAllocationSize(fbeValue.f162) + this.f163.fbeAllocationSize(fbeValue.f163) + this.f164.fbeAllocationSize(fbeValue.f164) + this.f165.fbeAllocationSize(fbeValue.f165) } /** * Get the final type * @this {!FinalModelStructOptional} * @returns {!number} Final type */ get fbeType () { return FinalModelStructOptional.fbeType } /** * Get the final type (static) * @this {!FinalModelStructOptional} * @returns {!number} Final type */ static get fbeType () { return 111 } /** * Check if the struct value is valid * @this {!FinalModelStructOptional} * @returns {!number} Final model size or Number.MAX_SAFE_INTEGER in case of any error */ verify () { this._buffer.shift(this.fbeOffset) let fbeResult = this.verifyFields() this._buffer.unshift(this.fbeOffset) return fbeResult } /** * Check if the struct fields are valid * @this {!FinalModelStructOptional} * @returns {!number} Final model size or Number.MAX_SAFE_INTEGER in case of any error */ verifyFields () { let fbeCurrentOffset = 0 let fbeFieldSize this.parent.fbeOffset = fbeCurrentOffset fbeFieldSize = this.parent.verifyFields() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f100.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f100.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f101.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f101.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f102.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f102.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f103.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f103.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f104.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f104.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f105.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f105.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f106.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f106.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f107.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f107.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f108.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f108.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f109.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f109.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f110.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f110.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f111.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f111.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f112.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f112.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f113.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f113.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f114.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f114.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f115.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f115.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f116.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f116.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f117.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f117.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f118.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f118.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f119.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f119.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f120.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f120.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f121.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f121.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f122.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f122.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f123.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f123.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f124.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f124.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f125.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f125.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f126.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f126.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f127.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f127.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f128.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f128.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f129.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f129.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f130.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f130.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f131.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f131.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f132.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f132.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f133.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f133.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f134.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f134.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f135.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f135.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f136.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f136.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f137.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f137.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f138.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f138.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f139.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f139.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f140.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f140.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f141.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f141.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f142.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f142.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f143.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f143.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f144.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f144.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f145.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f145.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f146.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f146.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f147.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f147.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f148.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f148.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f149.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f149.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f150.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f150.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f151.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f151.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f152.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f152.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f153.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f153.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f154.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f154.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f155.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f155.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f156.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f156.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f157.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f157.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f158.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f158.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f159.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f159.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f160.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f160.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f161.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f161.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f162.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f162.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f163.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f163.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f164.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f164.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f165.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f165.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize return fbeCurrentOffset } /** * Get the struct value * @this {!FinalModelStructOptional} * @param {!StructOptional} fbeValue StructOptional value, defaults is new StructOptional() * @returns {!object} Result struct value and its size */ get (fbeValue = new StructOptional()) { this._buffer.shift(this.fbeOffset) let fbeSize = this.getFields(fbeValue) this._buffer.unshift(this.fbeOffset) return { value: fbeValue, size: fbeSize } } /** * Get the struct fields values * @this {!FinalModelStructOptional} * @param {!StructOptional} fbeValue StructOptional value * @returns {!number} Struct size */ getFields (fbeValue) { let fbeCurrentOffset = 0 let fbeCurrentSize = 0 let fbeResult this.parent.fbeOffset = fbeCurrentOffset fbeResult = this.parent.getFields(fbeValue) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult fbeCurrentSize += fbeResult this.f100.fbeOffset = fbeCurrentOffset fbeResult = this.f100.get() fbeValue.f100 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f101.fbeOffset = fbeCurrentOffset fbeResult = this.f101.get() fbeValue.f101 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f102.fbeOffset = fbeCurrentOffset fbeResult = this.f102.get() fbeValue.f102 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f103.fbeOffset = fbeCurrentOffset fbeResult = this.f103.get() fbeValue.f103 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f104.fbeOffset = fbeCurrentOffset fbeResult = this.f104.get() fbeValue.f104 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f105.fbeOffset = fbeCurrentOffset fbeResult = this.f105.get() fbeValue.f105 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f106.fbeOffset = fbeCurrentOffset fbeResult = this.f106.get() fbeValue.f106 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f107.fbeOffset = fbeCurrentOffset fbeResult = this.f107.get() fbeValue.f107 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f108.fbeOffset = fbeCurrentOffset fbeResult = this.f108.get() fbeValue.f108 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f109.fbeOffset = fbeCurrentOffset fbeResult = this.f109.get() fbeValue.f109 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f110.fbeOffset = fbeCurrentOffset fbeResult = this.f110.get() fbeValue.f110 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f111.fbeOffset = fbeCurrentOffset fbeResult = this.f111.get() fbeValue.f111 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f112.fbeOffset = fbeCurrentOffset fbeResult = this.f112.get() fbeValue.f112 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f113.fbeOffset = fbeCurrentOffset fbeResult = this.f113.get() fbeValue.f113 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f114.fbeOffset = fbeCurrentOffset fbeResult = this.f114.get() fbeValue.f114 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f115.fbeOffset = fbeCurrentOffset fbeResult = this.f115.get() fbeValue.f115 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f116.fbeOffset = fbeCurrentOffset fbeResult = this.f116.get() fbeValue.f116 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f117.fbeOffset = fbeCurrentOffset fbeResult = this.f117.get() fbeValue.f117 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f118.fbeOffset = fbeCurrentOffset fbeResult = this.f118.get() fbeValue.f118 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f119.fbeOffset = fbeCurrentOffset fbeResult = this.f119.get() fbeValue.f119 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f120.fbeOffset = fbeCurrentOffset fbeResult = this.f120.get() fbeValue.f120 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f121.fbeOffset = fbeCurrentOffset fbeResult = this.f121.get() fbeValue.f121 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f122.fbeOffset = fbeCurrentOffset fbeResult = this.f122.get() fbeValue.f122 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f123.fbeOffset = fbeCurrentOffset fbeResult = this.f123.get() fbeValue.f123 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f124.fbeOffset = fbeCurrentOffset fbeResult = this.f124.get() fbeValue.f124 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f125.fbeOffset = fbeCurrentOffset fbeResult = this.f125.get() fbeValue.f125 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f126.fbeOffset = fbeCurrentOffset fbeResult = this.f126.get() fbeValue.f126 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f127.fbeOffset = fbeCurrentOffset fbeResult = this.f127.get() fbeValue.f127 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f128.fbeOffset = fbeCurrentOffset fbeResult = this.f128.get() fbeValue.f128 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f129.fbeOffset = fbeCurrentOffset fbeResult = this.f129.get() fbeValue.f129 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f130.fbeOffset = fbeCurrentOffset fbeResult = this.f130.get() fbeValue.f130 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f131.fbeOffset = fbeCurrentOffset fbeResult = this.f131.get() fbeValue.f131 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f132.fbeOffset = fbeCurrentOffset fbeResult = this.f132.get() fbeValue.f132 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f133.fbeOffset = fbeCurrentOffset fbeResult = this.f133.get() fbeValue.f133 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f134.fbeOffset = fbeCurrentOffset fbeResult = this.f134.get() fbeValue.f134 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f135.fbeOffset = fbeCurrentOffset fbeResult = this.f135.get() fbeValue.f135 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f136.fbeOffset = fbeCurrentOffset fbeResult = this.f136.get() fbeValue.f136 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f137.fbeOffset = fbeCurrentOffset fbeResult = this.f137.get() fbeValue.f137 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f138.fbeOffset = fbeCurrentOffset fbeResult = this.f138.get() fbeValue.f138 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f139.fbeOffset = fbeCurrentOffset fbeResult = this.f139.get() fbeValue.f139 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f140.fbeOffset = fbeCurrentOffset fbeResult = this.f140.get() fbeValue.f140 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f141.fbeOffset = fbeCurrentOffset fbeResult = this.f141.get() fbeValue.f141 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f142.fbeOffset = fbeCurrentOffset fbeResult = this.f142.get() fbeValue.f142 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f143.fbeOffset = fbeCurrentOffset fbeResult = this.f143.get() fbeValue.f143 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f144.fbeOffset = fbeCurrentOffset fbeResult = this.f144.get() fbeValue.f144 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f145.fbeOffset = fbeCurrentOffset fbeResult = this.f145.get() fbeValue.f145 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f146.fbeOffset = fbeCurrentOffset fbeResult = this.f146.get() fbeValue.f146 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f147.fbeOffset = fbeCurrentOffset fbeResult = this.f147.get() fbeValue.f147 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f148.fbeOffset = fbeCurrentOffset fbeResult = this.f148.get() fbeValue.f148 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f149.fbeOffset = fbeCurrentOffset fbeResult = this.f149.get() fbeValue.f149 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f150.fbeOffset = fbeCurrentOffset fbeResult = this.f150.get() fbeValue.f150 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f151.fbeOffset = fbeCurrentOffset fbeResult = this.f151.get() fbeValue.f151 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f152.fbeOffset = fbeCurrentOffset fbeResult = this.f152.get() fbeValue.f152 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f153.fbeOffset = fbeCurrentOffset fbeResult = this.f153.get() fbeValue.f153 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f154.fbeOffset = fbeCurrentOffset fbeResult = this.f154.get() fbeValue.f154 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f155.fbeOffset = fbeCurrentOffset fbeResult = this.f155.get() fbeValue.f155 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f156.fbeOffset = fbeCurrentOffset fbeResult = this.f156.get() fbeValue.f156 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f157.fbeOffset = fbeCurrentOffset fbeResult = this.f157.get() fbeValue.f157 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f158.fbeOffset = fbeCurrentOffset fbeResult = this.f158.get() fbeValue.f158 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f159.fbeOffset = fbeCurrentOffset fbeResult = this.f159.get() fbeValue.f159 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f160.fbeOffset = fbeCurrentOffset fbeResult = this.f160.get() fbeValue.f160 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f161.fbeOffset = fbeCurrentOffset fbeResult = this.f161.get() fbeValue.f161 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f162.fbeOffset = fbeCurrentOffset fbeResult = this.f162.get() fbeValue.f162 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f163.fbeOffset = fbeCurrentOffset fbeResult = this.f163.get() fbeValue.f163 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f164.fbeOffset = fbeCurrentOffset fbeResult = this.f164.get() fbeValue.f164 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f165.fbeOffset = fbeCurrentOffset fbeResult = this.f165.get() fbeValue.f165 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size return fbeCurrentSize } /** * Set the struct value * @this {!FinalModelStructOptional} * @param {!StructOptional} fbeValue StructOptional value * @returns {!number} Final model size */ set (fbeValue) { this._buffer.shift(this.fbeOffset) let fbeSize = this.setFields(fbeValue) this._buffer.unshift(this.fbeOffset) return fbeSize } /** * Set the struct fields values * @this {!FinalModelStructOptional} * @param {StructOptional} fbeValue StructOptional value * @returns {!number} Final model size */ setFields (fbeValue) { let fbeCurrentOffset = 0 let fbeCurrentSize = 0 let fbeFieldSize this.parent.fbeOffset = fbeCurrentOffset fbeFieldSize = this.parent.setFields(fbeValue) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f100.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f100.set(fbeValue.f100) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f101.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f101.set(fbeValue.f101) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f102.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f102.set(fbeValue.f102) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f103.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f103.set(fbeValue.f103) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f104.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f104.set(fbeValue.f104) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f105.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f105.set(fbeValue.f105) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f106.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f106.set(fbeValue.f106) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f107.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f107.set(fbeValue.f107) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f108.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f108.set(fbeValue.f108) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f109.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f109.set(fbeValue.f109) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f110.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f110.set(fbeValue.f110) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f111.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f111.set(fbeValue.f111) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f112.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f112.set(fbeValue.f112) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f113.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f113.set(fbeValue.f113) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f114.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f114.set(fbeValue.f114) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f115.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f115.set(fbeValue.f115) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f116.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f116.set(fbeValue.f116) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f117.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f117.set(fbeValue.f117) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f118.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f118.set(fbeValue.f118) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f119.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f119.set(fbeValue.f119) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f120.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f120.set(fbeValue.f120) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f121.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f121.set(fbeValue.f121) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f122.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f122.set(fbeValue.f122) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f123.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f123.set(fbeValue.f123) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f124.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f124.set(fbeValue.f124) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f125.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f125.set(fbeValue.f125) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f126.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f126.set(fbeValue.f126) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f127.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f127.set(fbeValue.f127) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f128.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f128.set(fbeValue.f128) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f129.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f129.set(fbeValue.f129) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f130.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f130.set(fbeValue.f130) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f131.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f131.set(fbeValue.f131) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f132.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f132.set(fbeValue.f132) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f133.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f133.set(fbeValue.f133) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f134.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f134.set(fbeValue.f134) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f135.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f135.set(fbeValue.f135) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f136.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f136.set(fbeValue.f136) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f137.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f137.set(fbeValue.f137) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f138.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f138.set(fbeValue.f138) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f139.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f139.set(fbeValue.f139) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f140.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f140.set(fbeValue.f140) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f141.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f141.set(fbeValue.f141) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f142.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f142.set(fbeValue.f142) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f143.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f143.set(fbeValue.f143) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f144.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f144.set(fbeValue.f144) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f145.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f145.set(fbeValue.f145) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f146.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f146.set(fbeValue.f146) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f147.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f147.set(fbeValue.f147) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f148.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f148.set(fbeValue.f148) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f149.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f149.set(fbeValue.f149) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f150.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f150.set(fbeValue.f150) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f151.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f151.set(fbeValue.f151) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f152.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f152.set(fbeValue.f152) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f153.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f153.set(fbeValue.f153) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f154.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f154.set(fbeValue.f154) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f155.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f155.set(fbeValue.f155) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f156.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f156.set(fbeValue.f156) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f157.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f157.set(fbeValue.f157) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f158.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f158.set(fbeValue.f158) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f159.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f159.set(fbeValue.f159) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f160.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f160.set(fbeValue.f160) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f161.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f161.set(fbeValue.f161) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f162.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f162.set(fbeValue.f162) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f163.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f163.set(fbeValue.f163) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f164.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f164.set(fbeValue.f164) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f165.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f165.set(fbeValue.f165) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize return fbeCurrentSize } } exports.FinalModelStructOptional = FinalModelStructOptional /** * Fast Binary Encoding StructOptional final model */ class StructOptionalFinalModel extends fbe.Model { /** * Initialize final model with the given buffer * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Read/Write buffer, defaults is new fbe.WriteBuffer() * @constructor */ constructor (buffer = new fbe.WriteBuffer()) { super(buffer) this._model = new FinalModelStructOptional(this.buffer, 8) } /** * Get the model type * @this {!StructOptionalFinalModel} * @returns {!number} Model type */ get fbeType () { return StructOptionalFinalModel.fbeType } /** * Get the model type (static) * @this {!StructOptionalFinalModel} * @returns {!number} Model type */ static get fbeType () { return FinalModelStructOptional.fbeType } /** * Check if the struct value is valid * @this {!StructOptionalFinalModel} * @returns {!boolean} Model valid state */ verify () { if ((this.buffer.offset + this._model.fbeOffset) > this.buffer.size) { return false } let fbeStructSize = this.readUInt32(this._model.fbeOffset - 8) let fbeStructType = this.readUInt32(this._model.fbeOffset - 4) if ((fbeStructSize <= 0) || (fbeStructType !== this.fbeType)) { return false } return ((8 + this._model.verify()) === fbeStructSize) } /** * Serialize the struct value * @this {!StructOptionalFinalModel} * @param {!StructOptional} value StructOptional value * @return {!number} Struct size */ serialize (value) { let fbeInitialSize = this.buffer.size let fbeStructType = this.fbeType let fbeStructSize = 8 + this._model.fbeAllocationSize(value) let fbeStructOffset = this.buffer.allocate(fbeStructSize) - this.buffer.offset console.assert(((this.buffer.offset + fbeStructOffset + fbeStructSize) <= this.buffer.size), 'Model is broken!') if ((this.buffer.offset + fbeStructOffset + fbeStructSize) > this.buffer.size) { return 0 } fbeStructSize = 8 + this._model.set(value) this.buffer.resize(fbeInitialSize + fbeStructSize) this.writeUInt32(this._model.fbeOffset - 8, fbeStructSize) this.writeUInt32(this._model.fbeOffset - 4, fbeStructType) return fbeStructSize } /** * Deserialize the struct value * @this {!StructOptionalFinalModel} * @param {!StructOptional} value StructOptional value, defaults is new StructOptional() * @return {!object} Deserialized StructOptional value and its size */ deserialize (value = new StructOptional()) { console.assert(((this.buffer.offset + this._model.fbeOffset) <= this.buffer.size), 'Model is broken!') if ((this.buffer.offset + this._model.fbeOffset) > this.buffer.size) { return { value: new StructOptional(), size: 0 } } let fbeStructSize = this.readUInt32(this._model.fbeOffset - 8) let fbeStructType = this.readUInt32(this._model.fbeOffset - 4) console.assert(((fbeStructSize > 0) && (fbeStructType === this.fbeType)), 'Model is broken!') if ((fbeStructSize <= 0) || (fbeStructType !== this.fbeType)) { return { value: new StructOptional(), size: 8 } } let fbeResult = this._model.get(value) return { value: fbeResult.value, size: (8 + fbeResult.size) } } /** * Move to the next struct value * @this {!StructOptionalFinalModel} * @param {!number} prev Previous StructOptional model size */ next (prev) { this._model.fbeShift(prev) } } exports.StructOptionalFinalModel = StructOptionalFinalModel /** * StructNested struct */ class StructNested extends StructOptional { /** * Initialize struct * @param {!StructOptional=} parent * @param {!EnumSimple=} f1000 * @param {EnumSimple=} f1001 * @param {!EnumTyped=} f1002 * @param {EnumTyped=} f1003 * @param {!FlagsSimple=} f1004 * @param {FlagsSimple=} f1005 * @param {!FlagsTyped=} f1006 * @param {FlagsTyped=} f1007 * @param {!StructSimple=} f1008 * @param {StructSimple=} f1009 * @param {!StructOptional=} f1010 * @param {StructOptional=} f1011 * @constructor */ constructor (parent = new StructOptional(), argf1000 = new EnumSimple(), argf1001 = undefined, argf1002 = new EnumTyped(EnumTyped.ENUM_VALUE_2), argf1003 = undefined, argf1004 = new FlagsSimple(), argf1005 = undefined, argf1006 = new FlagsTyped(FlagsTyped.FLAG_VALUE_2 | FlagsTyped.FLAG_VALUE_4 | FlagsTyped.FLAG_VALUE_6), argf1007 = undefined, argf1008 = new StructSimple(), argf1009 = undefined, argf1010 = new StructOptional(), argf1011 = undefined) { super() super.copy(parent) this.f1000 = argf1000 this.f1001 = argf1001 this.f1002 = argf1002 this.f1003 = argf1003 this.f1004 = argf1004 this.f1005 = argf1005 this.f1006 = argf1006 this.f1007 = argf1007 this.f1008 = argf1008 this.f1009 = argf1009 this.f1010 = argf1010 this.f1011 = argf1011 } /** * Copy struct (shallow copy) * @this {!StructNested} * @param {!StructNested} other Other struct * @returns {!StructNested} This struct */ copy (other) { super.copy(other) if (other.f1000 != null) { this.f1000 = EnumSimple.fromObject(other.f1000) } else { this.f1000 = undefined } if (other.f1001 != null) { this.f1001 = EnumSimple.fromObject(other.f1001) } else { this.f1001 = undefined } if (other.f1002 != null) { this.f1002 = EnumTyped.fromObject(other.f1002) } else { this.f1002 = undefined } if (other.f1003 != null) { this.f1003 = EnumTyped.fromObject(other.f1003) } else { this.f1003 = undefined } if (other.f1004 != null) { this.f1004 = FlagsSimple.fromObject(other.f1004) } else { this.f1004 = undefined } if (other.f1005 != null) { this.f1005 = FlagsSimple.fromObject(other.f1005) } else { this.f1005 = undefined } if (other.f1006 != null) { this.f1006 = FlagsTyped.fromObject(other.f1006) } else { this.f1006 = undefined } if (other.f1007 != null) { this.f1007 = FlagsTyped.fromObject(other.f1007) } else { this.f1007 = undefined } if (other.f1008 != null) { this.f1008 = StructSimple.fromObject(other.f1008) } else { this.f1008 = undefined } if (other.f1009 != null) { this.f1009 = StructSimple.fromObject(other.f1009) } else { this.f1009 = undefined } if (other.f1010 != null) { this.f1010 = StructOptional.fromObject(other.f1010) } else { this.f1010 = undefined } if (other.f1011 != null) { this.f1011 = StructOptional.fromObject(other.f1011) } else { this.f1011 = undefined } return this } /** * Clone struct (deep clone) * @this {!StructNested} * @returns {!StructNested} Cloned struct */ clone () { // Serialize the struct to the FBE stream let writer = new StructNestedModel(new fbe.WriteBuffer()) writer.serialize(this) // Deserialize the struct from the FBE stream let reader = new StructNestedModel(new fbe.ReadBuffer()) reader.attachBuffer(writer.buffer) return reader.deserialize().value } /** * Is this struct equal to other one? * @this {!StructNested} * @param {!StructNested} other Other struct * @returns {boolean} Equal result */ eq (other) { if (!(other instanceof StructNested)) { throw new TypeError('Instance of StructNested is required!') } // noinspection RedundantIfStatementJS if (!super.eq(other)) { return false } return true } /** * Convert struct to string * @this {!StructNested} * @returns {!string} Struct value string */ toString () { let result = '' result += 'StructNested(' result += super.toString() result += ',f1000=' result += this.f1000.toString() result += ',f1001=' if (this.f1001 != null) { result += this.f1001.toString() } else { result += 'null' } result += ',f1002=' result += this.f1002.toString() result += ',f1003=' if (this.f1003 != null) { result += this.f1003.toString() } else { result += 'null' } result += ',f1004=' result += this.f1004.toString() result += ',f1005=' if (this.f1005 != null) { result += this.f1005.toString() } else { result += 'null' } result += ',f1006=' result += this.f1006.toString() result += ',f1007=' if (this.f1007 != null) { result += this.f1007.toString() } else { result += 'null' } result += ',f1008=' result += this.f1008.toString() result += ',f1009=' if (this.f1009 != null) { result += this.f1009.toString() } else { result += 'null' } result += ',f1010=' result += this.f1010.toString() result += ',f1011=' if (this.f1011 != null) { result += this.f1011.toString() } else { result += 'null' } result += ')' return result } /** * Inspect struct * @this {!StructNested} * @returns {!string} Struct value string */ [util.inspect.custom] () { return this.toString() } /** * Convert struct to JSON * @this {!StructNested} * @returns {!object} Struct value for JSON */ toJSON () { let parent = super.toJSON() let current = { f1000: ((this.f1000 != null) ? this.f1000 : null), f1001: ((this.f1001 != null) ? this.f1001 : null), f1002: ((this.f1002 != null) ? this.f1002 : null), f1003: ((this.f1003 != null) ? this.f1003 : null), f1004: ((this.f1004 != null) ? this.f1004 : null), f1005: ((this.f1005 != null) ? this.f1005 : null), f1006: ((this.f1006 != null) ? this.f1006 : null), f1007: ((this.f1007 != null) ? this.f1007 : null), f1008: ((this.f1008 != null) ? this.f1008 : null), f1009: ((this.f1009 != null) ? this.f1009 : null), f1010: ((this.f1010 != null) ? this.f1010 : null), f1011: ((this.f1011 != null) ? this.f1011 : null) } return { ...parent, ...current } } /** * Convert JSON to struct * @param {!string} json JSON string * @returns {!object} Struct value for JSON */ static fromJSON (json) { return StructNested.fromObject(JSON.parse(json)) } /** * Create struct from object value * @param {!StructNested} other Object value * @returns {!StructNested} Created struct */ static fromObject (other) { return new StructNested().copy(other) } /** * Get the FBE type * @this {!StructNested} * @returns {!number} FBE type */ get fbeType () { return StructNested.fbeType } /** * Get the FBE type (static) * @this {!StructNested} * @returns {!number} FBE type */ static get fbeType () { return 112 } } exports.StructNested = StructNested /** * Fast Binary Encoding StructNested field model */ class FieldModelStructNested extends fbe.FieldModel { /** * Initialize field model with the given buffer and offset * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Buffer * @param {!number} offset Offset * @constructor */ constructor (buffer, offset) { super(buffer, offset) this._parent = new FieldModelStructOptional(buffer, 4 + 4) this._f1000 = new FieldModelEnumSimple(buffer, this._parent.fbeOffset + this._parent.fbeBody - 4 - 4) this._f1001 = new fbe.FieldModelOptional(new FieldModelEnumSimple(buffer, this._f1000.fbeOffset + this._f1000.fbeSize), buffer, this._f1000.fbeOffset + this._f1000.fbeSize) this._f1002 = new FieldModelEnumTyped(buffer, this._f1001.fbeOffset + this._f1001.fbeSize) this._f1003 = new fbe.FieldModelOptional(new FieldModelEnumTyped(buffer, this._f1002.fbeOffset + this._f1002.fbeSize), buffer, this._f1002.fbeOffset + this._f1002.fbeSize) this._f1004 = new FieldModelFlagsSimple(buffer, this._f1003.fbeOffset + this._f1003.fbeSize) this._f1005 = new fbe.FieldModelOptional(new FieldModelFlagsSimple(buffer, this._f1004.fbeOffset + this._f1004.fbeSize), buffer, this._f1004.fbeOffset + this._f1004.fbeSize) this._f1006 = new FieldModelFlagsTyped(buffer, this._f1005.fbeOffset + this._f1005.fbeSize) this._f1007 = new fbe.FieldModelOptional(new FieldModelFlagsTyped(buffer, this._f1006.fbeOffset + this._f1006.fbeSize), buffer, this._f1006.fbeOffset + this._f1006.fbeSize) this._f1008 = new FieldModelStructSimple(buffer, this._f1007.fbeOffset + this._f1007.fbeSize) this._f1009 = new fbe.FieldModelOptional(new FieldModelStructSimple(buffer, this._f1008.fbeOffset + this._f1008.fbeSize), buffer, this._f1008.fbeOffset + this._f1008.fbeSize) this._f1010 = new FieldModelStructOptional(buffer, this._f1009.fbeOffset + this._f1009.fbeSize) this._f1011 = new fbe.FieldModelOptional(new FieldModelStructOptional(buffer, this._f1010.fbeOffset + this._f1010.fbeSize), buffer, this._f1010.fbeOffset + this._f1010.fbeSize) } /** * Get the StructOptional field model * @this {!FieldModelStructNested} * @returns {!FieldModelStructOptional} StructOptional field model */ get parent () { return this._parent } /** * Get the f1000 field model * @this {!FieldModelStructNested} * @returns {!FieldModelEnumSimple} f1000 field model */ get f1000 () { return this._f1000 } /** * Get the f1001 field model * @this {!FieldModelStructNested} * @returns {!fbe.FieldModelOptional} f1001 field model */ get f1001 () { return this._f1001 } /** * Get the f1002 field model * @this {!FieldModelStructNested} * @returns {!FieldModelEnumTyped} f1002 field model */ get f1002 () { return this._f1002 } /** * Get the f1003 field model * @this {!FieldModelStructNested} * @returns {!fbe.FieldModelOptional} f1003 field model */ get f1003 () { return this._f1003 } /** * Get the f1004 field model * @this {!FieldModelStructNested} * @returns {!FieldModelFlagsSimple} f1004 field model */ get f1004 () { return this._f1004 } /** * Get the f1005 field model * @this {!FieldModelStructNested} * @returns {!fbe.FieldModelOptional} f1005 field model */ get f1005 () { return this._f1005 } /** * Get the f1006 field model * @this {!FieldModelStructNested} * @returns {!FieldModelFlagsTyped} f1006 field model */ get f1006 () { return this._f1006 } /** * Get the f1007 field model * @this {!FieldModelStructNested} * @returns {!fbe.FieldModelOptional} f1007 field model */ get f1007 () { return this._f1007 } /** * Get the f1008 field model * @this {!FieldModelStructNested} * @returns {!FieldModelStructSimple} f1008 field model */ get f1008 () { return this._f1008 } /** * Get the f1009 field model * @this {!FieldModelStructNested} * @returns {!fbe.FieldModelOptional} f1009 field model */ get f1009 () { return this._f1009 } /** * Get the f1010 field model * @this {!FieldModelStructNested} * @returns {!FieldModelStructOptional} f1010 field model */ get f1010 () { return this._f1010 } /** * Get the f1011 field model * @this {!FieldModelStructNested} * @returns {!fbe.FieldModelOptional} f1011 field model */ get f1011 () { return this._f1011 } /** * Get the field size * @this {!FieldModelStructNested} * @returns {!number} Field size */ get fbeSize () { return 4 } /** * Get the field body size * @this {!FieldModelStructNested} * @returns {!number} Field body size */ get fbeBody () { return 4 + 4 + this.parent.fbeBody - 4 - 4 + this.f1000.fbeSize + this.f1001.fbeSize + this.f1002.fbeSize + this.f1003.fbeSize + this.f1004.fbeSize + this.f1005.fbeSize + this.f1006.fbeSize + this.f1007.fbeSize + this.f1008.fbeSize + this.f1009.fbeSize + this.f1010.fbeSize + this.f1011.fbeSize } /** * Get the field extra size * @this {!FieldModelStructNested} * @returns {!number} Field extra size */ get fbeExtra () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructOffset = this.readUInt32(this.fbeOffset) if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4) > this._buffer.size)) { return 0 } this._buffer.shift(fbeStructOffset) let fbeResult = this.fbeBody + this.parent.fbeExtra + this.f1000.fbeExtra + this.f1001.fbeExtra + this.f1002.fbeExtra + this.f1003.fbeExtra + this.f1004.fbeExtra + this.f1005.fbeExtra + this.f1006.fbeExtra + this.f1007.fbeExtra + this.f1008.fbeExtra + this.f1009.fbeExtra + this.f1010.fbeExtra + this.f1011.fbeExtra this._buffer.unshift(fbeStructOffset) return fbeResult } /** * Get the field type * @this {!FieldModelStructNested} * @returns {!number} Field type */ get fbeType () { return FieldModelStructNested.fbeType } /** * Get the field type (static) * @this {!FieldModelStructNested} * @returns {!number} Field type */ static get fbeType () { return 112 } /** * Check if the struct value is valid * @this {!FieldModelStructNested} * @param {!boolean} fbeVerifyType Verify model type flag, defaults is true * @returns {!boolean} Field model valid state */ verify (fbeVerifyType = true) { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return true } let fbeStructOffset = this.readUInt32(this.fbeOffset) if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4 + 4) > this._buffer.size)) { return false } let fbeStructSize = this.readUInt32(fbeStructOffset) if (fbeStructSize < (4 + 4)) { return false } let fbeStructType = this.readUInt32(fbeStructOffset + 4) if (fbeVerifyType && (fbeStructType !== this.fbeType)) { return false } this._buffer.shift(fbeStructOffset) let fbeResult = this.verifyFields(fbeStructSize) this._buffer.unshift(fbeStructOffset) return fbeResult } /** * Check if the struct fields are valid * @this {!FieldModelStructNested} * @param {!number} fbeStructSize FBE struct size * @returns {!boolean} Field model valid state */ verifyFields (fbeStructSize) { let fbeCurrentSize = 4 + 4 if ((fbeCurrentSize + this.parent.fbeBody - 4 - 4) > fbeStructSize) { return true } if (!this.parent.verifyFields(fbeStructSize)) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.parent.fbeBody - 4 - 4 if ((fbeCurrentSize + this.f1000.fbeSize) > fbeStructSize) { return true } if (!this.f1000.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1000.fbeSize if ((fbeCurrentSize + this.f1001.fbeSize) > fbeStructSize) { return true } if (!this.f1001.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1001.fbeSize if ((fbeCurrentSize + this.f1002.fbeSize) > fbeStructSize) { return true } if (!this.f1002.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1002.fbeSize if ((fbeCurrentSize + this.f1003.fbeSize) > fbeStructSize) { return true } if (!this.f1003.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1003.fbeSize if ((fbeCurrentSize + this.f1004.fbeSize) > fbeStructSize) { return true } if (!this.f1004.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1004.fbeSize if ((fbeCurrentSize + this.f1005.fbeSize) > fbeStructSize) { return true } if (!this.f1005.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1005.fbeSize if ((fbeCurrentSize + this.f1006.fbeSize) > fbeStructSize) { return true } if (!this.f1006.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1006.fbeSize if ((fbeCurrentSize + this.f1007.fbeSize) > fbeStructSize) { return true } if (!this.f1007.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1007.fbeSize if ((fbeCurrentSize + this.f1008.fbeSize) > fbeStructSize) { return true } if (!this.f1008.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1008.fbeSize if ((fbeCurrentSize + this.f1009.fbeSize) > fbeStructSize) { return true } if (!this.f1009.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1009.fbeSize if ((fbeCurrentSize + this.f1010.fbeSize) > fbeStructSize) { return true } if (!this.f1010.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1010.fbeSize if ((fbeCurrentSize + this.f1011.fbeSize) > fbeStructSize) { return true } if (!this.f1011.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1011.fbeSize return true } /** * Get the struct value (begin phase) * @this {!FieldModelStructNested} * @returns {!number} Field model begin offset */ getBegin () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructOffset = this.readUInt32(this.fbeOffset) console.assert((fbeStructOffset > 0) && ((this._buffer.offset + fbeStructOffset + 4 + 4) <= this._buffer.size), 'Model is broken!') if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4 + 4) > this._buffer.size)) { return 0 } let fbeStructSize = this.readUInt32(fbeStructOffset) console.assert((fbeStructSize >= (4 + 4)), 'Model is broken!') if (fbeStructSize < (4 + 4)) { return 0 } this._buffer.shift(fbeStructOffset) return fbeStructOffset } /** * Get the struct value (end phase) * @this {!FieldModelStructNested} * @param {!number} fbeBegin Field model begin offset */ getEnd (fbeBegin) { this._buffer.unshift(fbeBegin) } /** * Get the struct value * @this {!FieldModelStructNested} * @param {!StructNested} fbeValue Default value, defaults is new StructNested() * @returns {!StructNested} StructNested value */ get (fbeValue = new StructNested()) { let fbeBegin = this.getBegin() if (fbeBegin === 0) { return fbeValue } let fbeStructSize = this.readUInt32(0) this.getFields(fbeValue, fbeStructSize) this.getEnd(fbeBegin) return fbeValue } /** * Get the struct fields values * @this {!FieldModelStructNested} * @param {!StructNested} fbeValue StructNested value * @param {!number} fbeStructSize Struct size */ getFields (fbeValue, fbeStructSize) { let fbeCurrentSize = 4 + 4 if ((fbeCurrentSize + this.parent.fbeBody - 4 - 4) <= fbeStructSize) { this.parent.getFields(fbeValue, fbeStructSize) } // noinspection JSUnusedAssignment fbeCurrentSize += this.parent.fbeBody - 4 - 4 if ((fbeCurrentSize + this.f1000.fbeSize) <= fbeStructSize) { fbeValue.f1000 = this.f1000.get() } else { fbeValue.f1000 = new EnumSimple() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1000.fbeSize if ((fbeCurrentSize + this.f1001.fbeSize) <= fbeStructSize) { fbeValue.f1001 = this.f1001.get() } else { fbeValue.f1001 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1001.fbeSize if ((fbeCurrentSize + this.f1002.fbeSize) <= fbeStructSize) { fbeValue.f1002 = this.f1002.get(new EnumTyped(EnumTyped.ENUM_VALUE_2)) } else { fbeValue.f1002 = new EnumTyped(EnumTyped.ENUM_VALUE_2) } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1002.fbeSize if ((fbeCurrentSize + this.f1003.fbeSize) <= fbeStructSize) { fbeValue.f1003 = this.f1003.get(undefined) } else { fbeValue.f1003 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1003.fbeSize if ((fbeCurrentSize + this.f1004.fbeSize) <= fbeStructSize) { fbeValue.f1004 = this.f1004.get() } else { fbeValue.f1004 = new FlagsSimple() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1004.fbeSize if ((fbeCurrentSize + this.f1005.fbeSize) <= fbeStructSize) { fbeValue.f1005 = this.f1005.get() } else { fbeValue.f1005 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1005.fbeSize if ((fbeCurrentSize + this.f1006.fbeSize) <= fbeStructSize) { fbeValue.f1006 = this.f1006.get(new FlagsTyped(FlagsTyped.FLAG_VALUE_2 | FlagsTyped.FLAG_VALUE_4 | FlagsTyped.FLAG_VALUE_6)) } else { fbeValue.f1006 = new FlagsTyped(FlagsTyped.FLAG_VALUE_2 | FlagsTyped.FLAG_VALUE_4 | FlagsTyped.FLAG_VALUE_6) } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1006.fbeSize if ((fbeCurrentSize + this.f1007.fbeSize) <= fbeStructSize) { fbeValue.f1007 = this.f1007.get(undefined) } else { fbeValue.f1007 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1007.fbeSize if ((fbeCurrentSize + this.f1008.fbeSize) <= fbeStructSize) { fbeValue.f1008 = this.f1008.get() } else { fbeValue.f1008 = new StructSimple() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1008.fbeSize if ((fbeCurrentSize + this.f1009.fbeSize) <= fbeStructSize) { fbeValue.f1009 = this.f1009.get() } else { fbeValue.f1009 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1009.fbeSize if ((fbeCurrentSize + this.f1010.fbeSize) <= fbeStructSize) { fbeValue.f1010 = this.f1010.get() } else { fbeValue.f1010 = new StructOptional() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1010.fbeSize if ((fbeCurrentSize + this.f1011.fbeSize) <= fbeStructSize) { fbeValue.f1011 = this.f1011.get(undefined) } else { fbeValue.f1011 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1011.fbeSize } /** * Set the struct value (begin phase) * @this {!FieldModelStructNested} * @returns {!number} Field model begin offset */ setBegin () { console.assert(((this._buffer.offset + this.fbeOffset + this.fbeSize) <= this._buffer.size), 'Model is broken!') if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructSize = this.fbeBody let fbeStructOffset = this._buffer.allocate(fbeStructSize) - this._buffer.offset console.assert((fbeStructOffset > 0) && ((this._buffer.offset + fbeStructOffset + fbeStructSize) <= this._buffer.size), 'Model is broken!') if ((fbeStructOffset <= 0) || ((this._buffer.offset + fbeStructOffset + fbeStructSize) > this._buffer.size)) { return 0 } this.writeUInt32(this.fbeOffset, fbeStructOffset) this.writeUInt32(fbeStructOffset, fbeStructSize) this.writeUInt32(fbeStructOffset + 4, this.fbeType) this._buffer.shift(fbeStructOffset) return fbeStructOffset } /** * Set the struct value (end phase) * @this {!FieldModelStructNested} * @param {!number} fbeBegin Field model begin offset */ setEnd (fbeBegin) { this._buffer.unshift(fbeBegin) } /** * Set the struct value * @this {!FieldModelStructNested} * @param {!StructNested} fbeValue StructNested value */ set (fbeValue) { let fbeBegin = this.setBegin() if (fbeBegin === 0) { return } this.setFields(fbeValue) this.setEnd(fbeBegin) } /** * Set the struct fields values * @this {!FieldModelStructNested} * @param {StructNested} fbeValue StructNested value */ setFields (fbeValue) { this.parent.setFields(fbeValue) this.f1000.set(fbeValue.f1000) this.f1001.set(fbeValue.f1001) this.f1002.set(fbeValue.f1002) this.f1003.set(fbeValue.f1003) this.f1004.set(fbeValue.f1004) this.f1005.set(fbeValue.f1005) this.f1006.set(fbeValue.f1006) this.f1007.set(fbeValue.f1007) this.f1008.set(fbeValue.f1008) this.f1009.set(fbeValue.f1009) this.f1010.set(fbeValue.f1010) this.f1011.set(fbeValue.f1011) } } exports.FieldModelStructNested = FieldModelStructNested /** * Fast Binary Encoding StructNested model */ class StructNestedModel extends fbe.Model { /** * Initialize model with the given buffer * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Read/Write buffer, defaults is new fbe.WriteBuffer() * @constructor */ constructor (buffer = new fbe.WriteBuffer()) { super(buffer) this._model = new FieldModelStructNested(this.buffer, 4) } /** * Get the StructNested model * @this {!StructNestedModel} * @returns {!FieldModelStructNested} model StructNested model */ get model () { return this._model } /** * Get the model size * @this {!StructNestedModel} * @returns {!number} Model size */ get fbeSize () { return this.model.fbeSize + this.model.fbeExtra } /** * Get the model type * @this {!StructNestedModel} * @returns {!number} Model type */ get fbeType () { return StructNestedModel.fbeType } /** * Get the model type (static) * @this {!StructNestedModel} * @returns {!number} Model type */ static get fbeType () { return FieldModelStructNested.fbeType } /** * Check if the struct value is valid * @this {!StructNestedModel} * @returns {!boolean} Model valid state */ verify () { if ((this.buffer.offset + this.model.fbeOffset - 4) > this.buffer.size) { return false } let fbeFullSize = this.readUInt32(this.model.fbeOffset - 4) if (fbeFullSize < this.model.fbeSize) { return false } return this.model.verify() } /** * Create a new model (begin phase) * @this {!StructNestedModel} * @returns {!number} Model begin offset */ createBegin () { return this.buffer.allocate(4 + this.model.fbeSize) } /** * Create a new model (end phase) * @this {!StructNestedModel} * @param {!number} fbeBegin Model begin offset */ createEnd (fbeBegin) { let fbeEnd = this.buffer.size let fbeFullSize = fbeEnd - fbeBegin this.writeUInt32(this.model.fbeOffset - 4, fbeFullSize) return fbeFullSize } /** * Serialize the struct value * @this {!StructNestedModel} * @param {!StructNested} value StructNested value * @return {!number} Model begin offset */ serialize (value) { let fbeBegin = this.createBegin() this.model.set(value) return this.createEnd(fbeBegin) } /** * Deserialize the struct value * @this {!StructNestedModel} * @param {!StructNested} value StructNested value, defaults is new StructNested() * @return {!object} Deserialized StructNested value and its size */ deserialize (value = new StructNested()) { if ((this.buffer.offset + this.model.fbeOffset - 4) > this.buffer.size) { return { value: new StructNested(), size: 0 } } let fbeFullSize = this.readUInt32(this.model.fbeOffset - 4) console.assert((fbeFullSize >= this.model.fbeSize), 'Model is broken!') if (fbeFullSize < this.model.fbeSize) { return { value: new StructNested(), size: 0 } } this.model.get(value) return { value, size: fbeFullSize } } /** * Move to the next struct value * @this {!StructNestedModel} * @param {!number} prev Previous StructNested model size */ next (prev) { this.model.fbeShift(prev) } } exports.StructNestedModel = StructNestedModel /** * Fast Binary Encoding StructNested final model */ class FinalModelStructNested extends fbe.FinalModel { /** * Initialize final model with the given buffer and offset * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Buffer * @param {!number} offset Offset * @constructor */ constructor (buffer, offset) { super(buffer, offset) this._parent = new FinalModelStructOptional(buffer, 0) this._f1000 = new FinalModelEnumSimple(buffer, 0) this._f1001 = new fbe.FinalModelOptional(new FinalModelEnumSimple(buffer, 0), buffer, 0) this._f1002 = new FinalModelEnumTyped(buffer, 0) this._f1003 = new fbe.FinalModelOptional(new FinalModelEnumTyped(buffer, 0), buffer, 0) this._f1004 = new FinalModelFlagsSimple(buffer, 0) this._f1005 = new fbe.FinalModelOptional(new FinalModelFlagsSimple(buffer, 0), buffer, 0) this._f1006 = new FinalModelFlagsTyped(buffer, 0) this._f1007 = new fbe.FinalModelOptional(new FinalModelFlagsTyped(buffer, 0), buffer, 0) this._f1008 = new FinalModelStructSimple(buffer, 0) this._f1009 = new fbe.FinalModelOptional(new FinalModelStructSimple(buffer, 0), buffer, 0) this._f1010 = new FinalModelStructOptional(buffer, 0) this._f1011 = new fbe.FinalModelOptional(new FinalModelStructOptional(buffer, 0), buffer, 0) } /** * Get the StructOptional final model * @this {!FinalModelStructNested} * @returns {!FinalModelStructOptional} StructOptional field model */ get parent () { return this._parent } /** * Get the f1000 final model * @this {!FinalModelStructNested} * @returns {!FinalModelEnumSimple} f1000 final model */ get f1000 () { return this._f1000 } /** * Get the f1001 final model * @this {!FinalModelStructNested} * @returns {!fbe.FinalModelOptional} f1001 final model */ get f1001 () { return this._f1001 } /** * Get the f1002 final model * @this {!FinalModelStructNested} * @returns {!FinalModelEnumTyped} f1002 final model */ get f1002 () { return this._f1002 } /** * Get the f1003 final model * @this {!FinalModelStructNested} * @returns {!fbe.FinalModelOptional} f1003 final model */ get f1003 () { return this._f1003 } /** * Get the f1004 final model * @this {!FinalModelStructNested} * @returns {!FinalModelFlagsSimple} f1004 final model */ get f1004 () { return this._f1004 } /** * Get the f1005 final model * @this {!FinalModelStructNested} * @returns {!fbe.FinalModelOptional} f1005 final model */ get f1005 () { return this._f1005 } /** * Get the f1006 final model * @this {!FinalModelStructNested} * @returns {!FinalModelFlagsTyped} f1006 final model */ get f1006 () { return this._f1006 } /** * Get the f1007 final model * @this {!FinalModelStructNested} * @returns {!fbe.FinalModelOptional} f1007 final model */ get f1007 () { return this._f1007 } /** * Get the f1008 final model * @this {!FinalModelStructNested} * @returns {!FinalModelStructSimple} f1008 final model */ get f1008 () { return this._f1008 } /** * Get the f1009 final model * @this {!FinalModelStructNested} * @returns {!fbe.FinalModelOptional} f1009 final model */ get f1009 () { return this._f1009 } /** * Get the f1010 final model * @this {!FinalModelStructNested} * @returns {!FinalModelStructOptional} f1010 final model */ get f1010 () { return this._f1010 } /** * Get the f1011 final model * @this {!FinalModelStructNested} * @returns {!fbe.FinalModelOptional} f1011 final model */ get f1011 () { return this._f1011 } /** * Get the allocation size * @this {!FinalModelStructNested} * @param {!StructNested} fbeValue StructNested value * @returns {!number} Allocation size */ fbeAllocationSize (fbeValue) { return 0 + this.parent.fbeAllocationSize(fbeValue) + this.f1000.fbeAllocationSize(fbeValue.f1000) + this.f1001.fbeAllocationSize(fbeValue.f1001) + this.f1002.fbeAllocationSize(fbeValue.f1002) + this.f1003.fbeAllocationSize(fbeValue.f1003) + this.f1004.fbeAllocationSize(fbeValue.f1004) + this.f1005.fbeAllocationSize(fbeValue.f1005) + this.f1006.fbeAllocationSize(fbeValue.f1006) + this.f1007.fbeAllocationSize(fbeValue.f1007) + this.f1008.fbeAllocationSize(fbeValue.f1008) + this.f1009.fbeAllocationSize(fbeValue.f1009) + this.f1010.fbeAllocationSize(fbeValue.f1010) + this.f1011.fbeAllocationSize(fbeValue.f1011) } /** * Get the final type * @this {!FinalModelStructNested} * @returns {!number} Final type */ get fbeType () { return FinalModelStructNested.fbeType } /** * Get the final type (static) * @this {!FinalModelStructNested} * @returns {!number} Final type */ static get fbeType () { return 112 } /** * Check if the struct value is valid * @this {!FinalModelStructNested} * @returns {!number} Final model size or Number.MAX_SAFE_INTEGER in case of any error */ verify () { this._buffer.shift(this.fbeOffset) let fbeResult = this.verifyFields() this._buffer.unshift(this.fbeOffset) return fbeResult } /** * Check if the struct fields are valid * @this {!FinalModelStructNested} * @returns {!number} Final model size or Number.MAX_SAFE_INTEGER in case of any error */ verifyFields () { let fbeCurrentOffset = 0 let fbeFieldSize this.parent.fbeOffset = fbeCurrentOffset fbeFieldSize = this.parent.verifyFields() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f1000.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1000.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f1001.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1001.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f1002.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1002.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f1003.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1003.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f1004.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1004.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f1005.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1005.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f1006.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1006.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f1007.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1007.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f1008.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1008.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f1009.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1009.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f1010.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1010.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f1011.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1011.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize return fbeCurrentOffset } /** * Get the struct value * @this {!FinalModelStructNested} * @param {!StructNested} fbeValue StructNested value, defaults is new StructNested() * @returns {!object} Result struct value and its size */ get (fbeValue = new StructNested()) { this._buffer.shift(this.fbeOffset) let fbeSize = this.getFields(fbeValue) this._buffer.unshift(this.fbeOffset) return { value: fbeValue, size: fbeSize } } /** * Get the struct fields values * @this {!FinalModelStructNested} * @param {!StructNested} fbeValue StructNested value * @returns {!number} Struct size */ getFields (fbeValue) { let fbeCurrentOffset = 0 let fbeCurrentSize = 0 let fbeResult this.parent.fbeOffset = fbeCurrentOffset fbeResult = this.parent.getFields(fbeValue) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult fbeCurrentSize += fbeResult this.f1000.fbeOffset = fbeCurrentOffset fbeResult = this.f1000.get() fbeValue.f1000 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f1001.fbeOffset = fbeCurrentOffset fbeResult = this.f1001.get() fbeValue.f1001 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f1002.fbeOffset = fbeCurrentOffset fbeResult = this.f1002.get() fbeValue.f1002 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f1003.fbeOffset = fbeCurrentOffset fbeResult = this.f1003.get() fbeValue.f1003 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f1004.fbeOffset = fbeCurrentOffset fbeResult = this.f1004.get() fbeValue.f1004 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f1005.fbeOffset = fbeCurrentOffset fbeResult = this.f1005.get() fbeValue.f1005 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f1006.fbeOffset = fbeCurrentOffset fbeResult = this.f1006.get() fbeValue.f1006 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f1007.fbeOffset = fbeCurrentOffset fbeResult = this.f1007.get() fbeValue.f1007 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f1008.fbeOffset = fbeCurrentOffset fbeResult = this.f1008.get() fbeValue.f1008 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f1009.fbeOffset = fbeCurrentOffset fbeResult = this.f1009.get() fbeValue.f1009 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f1010.fbeOffset = fbeCurrentOffset fbeResult = this.f1010.get() fbeValue.f1010 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f1011.fbeOffset = fbeCurrentOffset fbeResult = this.f1011.get() fbeValue.f1011 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size return fbeCurrentSize } /** * Set the struct value * @this {!FinalModelStructNested} * @param {!StructNested} fbeValue StructNested value * @returns {!number} Final model size */ set (fbeValue) { this._buffer.shift(this.fbeOffset) let fbeSize = this.setFields(fbeValue) this._buffer.unshift(this.fbeOffset) return fbeSize } /** * Set the struct fields values * @this {!FinalModelStructNested} * @param {StructNested} fbeValue StructNested value * @returns {!number} Final model size */ setFields (fbeValue) { let fbeCurrentOffset = 0 let fbeCurrentSize = 0 let fbeFieldSize this.parent.fbeOffset = fbeCurrentOffset fbeFieldSize = this.parent.setFields(fbeValue) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f1000.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1000.set(fbeValue.f1000) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f1001.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1001.set(fbeValue.f1001) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f1002.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1002.set(fbeValue.f1002) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f1003.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1003.set(fbeValue.f1003) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f1004.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1004.set(fbeValue.f1004) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f1005.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1005.set(fbeValue.f1005) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f1006.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1006.set(fbeValue.f1006) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f1007.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1007.set(fbeValue.f1007) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f1008.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1008.set(fbeValue.f1008) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f1009.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1009.set(fbeValue.f1009) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f1010.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1010.set(fbeValue.f1010) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f1011.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1011.set(fbeValue.f1011) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize return fbeCurrentSize } } exports.FinalModelStructNested = FinalModelStructNested /** * Fast Binary Encoding StructNested final model */ class StructNestedFinalModel extends fbe.Model { /** * Initialize final model with the given buffer * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Read/Write buffer, defaults is new fbe.WriteBuffer() * @constructor */ constructor (buffer = new fbe.WriteBuffer()) { super(buffer) this._model = new FinalModelStructNested(this.buffer, 8) } /** * Get the model type * @this {!StructNestedFinalModel} * @returns {!number} Model type */ get fbeType () { return StructNestedFinalModel.fbeType } /** * Get the model type (static) * @this {!StructNestedFinalModel} * @returns {!number} Model type */ static get fbeType () { return FinalModelStructNested.fbeType } /** * Check if the struct value is valid * @this {!StructNestedFinalModel} * @returns {!boolean} Model valid state */ verify () { if ((this.buffer.offset + this._model.fbeOffset) > this.buffer.size) { return false } let fbeStructSize = this.readUInt32(this._model.fbeOffset - 8) let fbeStructType = this.readUInt32(this._model.fbeOffset - 4) if ((fbeStructSize <= 0) || (fbeStructType !== this.fbeType)) { return false } return ((8 + this._model.verify()) === fbeStructSize) } /** * Serialize the struct value * @this {!StructNestedFinalModel} * @param {!StructNested} value StructNested value * @return {!number} Struct size */ serialize (value) { let fbeInitialSize = this.buffer.size let fbeStructType = this.fbeType let fbeStructSize = 8 + this._model.fbeAllocationSize(value) let fbeStructOffset = this.buffer.allocate(fbeStructSize) - this.buffer.offset console.assert(((this.buffer.offset + fbeStructOffset + fbeStructSize) <= this.buffer.size), 'Model is broken!') if ((this.buffer.offset + fbeStructOffset + fbeStructSize) > this.buffer.size) { return 0 } fbeStructSize = 8 + this._model.set(value) this.buffer.resize(fbeInitialSize + fbeStructSize) this.writeUInt32(this._model.fbeOffset - 8, fbeStructSize) this.writeUInt32(this._model.fbeOffset - 4, fbeStructType) return fbeStructSize } /** * Deserialize the struct value * @this {!StructNestedFinalModel} * @param {!StructNested} value StructNested value, defaults is new StructNested() * @return {!object} Deserialized StructNested value and its size */ deserialize (value = new StructNested()) { console.assert(((this.buffer.offset + this._model.fbeOffset) <= this.buffer.size), 'Model is broken!') if ((this.buffer.offset + this._model.fbeOffset) > this.buffer.size) { return { value: new StructNested(), size: 0 } } let fbeStructSize = this.readUInt32(this._model.fbeOffset - 8) let fbeStructType = this.readUInt32(this._model.fbeOffset - 4) console.assert(((fbeStructSize > 0) && (fbeStructType === this.fbeType)), 'Model is broken!') if ((fbeStructSize <= 0) || (fbeStructType !== this.fbeType)) { return { value: new StructNested(), size: 8 } } let fbeResult = this._model.get(value) return { value: fbeResult.value, size: (8 + fbeResult.size) } } /** * Move to the next struct value * @this {!StructNestedFinalModel} * @param {!number} prev Previous StructNested model size */ next (prev) { this._model.fbeShift(prev) } } exports.StructNestedFinalModel = StructNestedFinalModel /** * StructBytes struct */ class StructBytes { /** * Initialize struct * @param {!Uint8Array=} f1 * @param {Uint8Array=} f2 * @param {Uint8Array=} f3 * @constructor */ constructor (argf1 = new Uint8Array(0), argf2 = undefined, argf3 = undefined) { this.f1 = argf1 this.f2 = argf2 this.f3 = argf3 } /** * Copy struct (shallow copy) * @this {!StructBytes} * @param {!StructBytes} other Other struct * @returns {!StructBytes} This struct */ copy (other) { if (other.f1 != null) { if (typeof other.f1 === 'string') { // noinspection JSUnresolvedFunction this.f1 = Uint8Array.from(Buffer.from(other.f1, 'base64')) } else { this.f1 = Uint8Array.from(other.f1) } } else { this.f1 = undefined } if (other.f2 != null) { if (typeof other.f2 === 'string') { // noinspection JSUnresolvedFunction this.f2 = Uint8Array.from(Buffer.from(other.f2, 'base64')) } else { this.f2 = Uint8Array.from(other.f2) } } else { this.f2 = undefined } if (other.f3 != null) { if (typeof other.f3 === 'string') { // noinspection JSUnresolvedFunction this.f3 = Uint8Array.from(Buffer.from(other.f3, 'base64')) } else { this.f3 = Uint8Array.from(other.f3) } } else { this.f3 = undefined } return this } /** * Clone struct (deep clone) * @this {!StructBytes} * @returns {!StructBytes} Cloned struct */ clone () { // Serialize the struct to the FBE stream let writer = new StructBytesModel(new fbe.WriteBuffer()) writer.serialize(this) // Deserialize the struct from the FBE stream let reader = new StructBytesModel(new fbe.ReadBuffer()) reader.attachBuffer(writer.buffer) return reader.deserialize().value } /** * Is this struct equal to other one? * @this {!StructBytes} * @param {!StructBytes} other Other struct * @returns {boolean} Equal result */ eq (other) { if (!(other instanceof StructBytes)) { throw new TypeError('Instance of StructBytes is required!') } return true } /** * Convert struct to string * @this {!StructBytes} * @returns {!string} Struct value string */ toString () { let result = '' result += 'StructBytes(' result += 'f1=' if (this.f1 != null) { result += 'bytes[' + this.f1.length + ']' } else { result += 'null' } result += ',f2=' if (this.f2 != null) { result += 'bytes[' + this.f2.length + ']' } else { result += 'null' } result += ',f3=' if (this.f3 != null) { result += 'bytes[' + this.f3.length + ']' } else { result += 'null' } result += ')' return result } /** * Inspect struct * @this {!StructBytes} * @returns {!string} Struct value string */ [util.inspect.custom] () { return this.toString() } /** * Convert struct to JSON * @this {!StructBytes} * @returns {!object} Struct value for JSON */ toJSON () { return { f1: ((this.f1 != null) ? Buffer.from(this.f1).toString('base64') : null), f2: ((this.f2 != null) ? Buffer.from(this.f2).toString('base64') : null), f3: ((this.f3 != null) ? Buffer.from(this.f3).toString('base64') : null) } } /** * Convert JSON to struct * @param {!string} json JSON string * @returns {!object} Struct value for JSON */ static fromJSON (json) { return StructBytes.fromObject(JSON.parse(json)) } /** * Create struct from object value * @param {!StructBytes} other Object value * @returns {!StructBytes} Created struct */ static fromObject (other) { return new StructBytes().copy(other) } /** * Get the FBE type * @this {!StructBytes} * @returns {!number} FBE type */ get fbeType () { return StructBytes.fbeType } /** * Get the FBE type (static) * @this {!StructBytes} * @returns {!number} FBE type */ static get fbeType () { return 120 } } exports.StructBytes = StructBytes /** * Fast Binary Encoding StructBytes field model */ class FieldModelStructBytes extends fbe.FieldModel { /** * Initialize field model with the given buffer and offset * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Buffer * @param {!number} offset Offset * @constructor */ constructor (buffer, offset) { super(buffer, offset) this._f1 = new fbe.FieldModelBytes(buffer, 4 + 4) this._f2 = new fbe.FieldModelOptional(new fbe.FieldModelBytes(buffer, this._f1.fbeOffset + this._f1.fbeSize), buffer, this._f1.fbeOffset + this._f1.fbeSize) this._f3 = new fbe.FieldModelOptional(new fbe.FieldModelBytes(buffer, this._f2.fbeOffset + this._f2.fbeSize), buffer, this._f2.fbeOffset + this._f2.fbeSize) } /** * Get the f1 field model * @this {!FieldModelStructBytes} * @returns {!fbe.FieldModelBytes} f1 field model */ get f1 () { return this._f1 } /** * Get the f2 field model * @this {!FieldModelStructBytes} * @returns {!fbe.FieldModelOptional} f2 field model */ get f2 () { return this._f2 } /** * Get the f3 field model * @this {!FieldModelStructBytes} * @returns {!fbe.FieldModelOptional} f3 field model */ get f3 () { return this._f3 } /** * Get the field size * @this {!FieldModelStructBytes} * @returns {!number} Field size */ get fbeSize () { return 4 } /** * Get the field body size * @this {!FieldModelStructBytes} * @returns {!number} Field body size */ get fbeBody () { return 4 + 4 + this.f1.fbeSize + this.f2.fbeSize + this.f3.fbeSize } /** * Get the field extra size * @this {!FieldModelStructBytes} * @returns {!number} Field extra size */ get fbeExtra () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructOffset = this.readUInt32(this.fbeOffset) if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4) > this._buffer.size)) { return 0 } this._buffer.shift(fbeStructOffset) let fbeResult = this.fbeBody + this.f1.fbeExtra + this.f2.fbeExtra + this.f3.fbeExtra this._buffer.unshift(fbeStructOffset) return fbeResult } /** * Get the field type * @this {!FieldModelStructBytes} * @returns {!number} Field type */ get fbeType () { return FieldModelStructBytes.fbeType } /** * Get the field type (static) * @this {!FieldModelStructBytes} * @returns {!number} Field type */ static get fbeType () { return 120 } /** * Check if the struct value is valid * @this {!FieldModelStructBytes} * @param {!boolean} fbeVerifyType Verify model type flag, defaults is true * @returns {!boolean} Field model valid state */ verify (fbeVerifyType = true) { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return true } let fbeStructOffset = this.readUInt32(this.fbeOffset) if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4 + 4) > this._buffer.size)) { return false } let fbeStructSize = this.readUInt32(fbeStructOffset) if (fbeStructSize < (4 + 4)) { return false } let fbeStructType = this.readUInt32(fbeStructOffset + 4) if (fbeVerifyType && (fbeStructType !== this.fbeType)) { return false } this._buffer.shift(fbeStructOffset) let fbeResult = this.verifyFields(fbeStructSize) this._buffer.unshift(fbeStructOffset) return fbeResult } /** * Check if the struct fields are valid * @this {!FieldModelStructBytes} * @param {!number} fbeStructSize FBE struct size * @returns {!boolean} Field model valid state */ verifyFields (fbeStructSize) { let fbeCurrentSize = 4 + 4 if ((fbeCurrentSize + this.f1.fbeSize) > fbeStructSize) { return true } if (!this.f1.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1.fbeSize if ((fbeCurrentSize + this.f2.fbeSize) > fbeStructSize) { return true } if (!this.f2.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f2.fbeSize if ((fbeCurrentSize + this.f3.fbeSize) > fbeStructSize) { return true } if (!this.f3.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f3.fbeSize return true } /** * Get the struct value (begin phase) * @this {!FieldModelStructBytes} * @returns {!number} Field model begin offset */ getBegin () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructOffset = this.readUInt32(this.fbeOffset) console.assert((fbeStructOffset > 0) && ((this._buffer.offset + fbeStructOffset + 4 + 4) <= this._buffer.size), 'Model is broken!') if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4 + 4) > this._buffer.size)) { return 0 } let fbeStructSize = this.readUInt32(fbeStructOffset) console.assert((fbeStructSize >= (4 + 4)), 'Model is broken!') if (fbeStructSize < (4 + 4)) { return 0 } this._buffer.shift(fbeStructOffset) return fbeStructOffset } /** * Get the struct value (end phase) * @this {!FieldModelStructBytes} * @param {!number} fbeBegin Field model begin offset */ getEnd (fbeBegin) { this._buffer.unshift(fbeBegin) } /** * Get the struct value * @this {!FieldModelStructBytes} * @param {!StructBytes} fbeValue Default value, defaults is new StructBytes() * @returns {!StructBytes} StructBytes value */ get (fbeValue = new StructBytes()) { let fbeBegin = this.getBegin() if (fbeBegin === 0) { return fbeValue } let fbeStructSize = this.readUInt32(0) this.getFields(fbeValue, fbeStructSize) this.getEnd(fbeBegin) return fbeValue } /** * Get the struct fields values * @this {!FieldModelStructBytes} * @param {!StructBytes} fbeValue StructBytes value * @param {!number} fbeStructSize Struct size */ getFields (fbeValue, fbeStructSize) { let fbeCurrentSize = 4 + 4 if ((fbeCurrentSize + this.f1.fbeSize) <= fbeStructSize) { fbeValue.f1 = this.f1.get() } else { fbeValue.f1 = new Uint8Array(0) } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1.fbeSize if ((fbeCurrentSize + this.f2.fbeSize) <= fbeStructSize) { fbeValue.f2 = this.f2.get() } else { fbeValue.f2 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f2.fbeSize if ((fbeCurrentSize + this.f3.fbeSize) <= fbeStructSize) { fbeValue.f3 = this.f3.get(undefined) } else { fbeValue.f3 = undefined } // noinspection JSUnusedAssignment fbeCurrentSize += this.f3.fbeSize } /** * Set the struct value (begin phase) * @this {!FieldModelStructBytes} * @returns {!number} Field model begin offset */ setBegin () { console.assert(((this._buffer.offset + this.fbeOffset + this.fbeSize) <= this._buffer.size), 'Model is broken!') if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructSize = this.fbeBody let fbeStructOffset = this._buffer.allocate(fbeStructSize) - this._buffer.offset console.assert((fbeStructOffset > 0) && ((this._buffer.offset + fbeStructOffset + fbeStructSize) <= this._buffer.size), 'Model is broken!') if ((fbeStructOffset <= 0) || ((this._buffer.offset + fbeStructOffset + fbeStructSize) > this._buffer.size)) { return 0 } this.writeUInt32(this.fbeOffset, fbeStructOffset) this.writeUInt32(fbeStructOffset, fbeStructSize) this.writeUInt32(fbeStructOffset + 4, this.fbeType) this._buffer.shift(fbeStructOffset) return fbeStructOffset } /** * Set the struct value (end phase) * @this {!FieldModelStructBytes} * @param {!number} fbeBegin Field model begin offset */ setEnd (fbeBegin) { this._buffer.unshift(fbeBegin) } /** * Set the struct value * @this {!FieldModelStructBytes} * @param {!StructBytes} fbeValue StructBytes value */ set (fbeValue) { let fbeBegin = this.setBegin() if (fbeBegin === 0) { return } this.setFields(fbeValue) this.setEnd(fbeBegin) } /** * Set the struct fields values * @this {!FieldModelStructBytes} * @param {StructBytes} fbeValue StructBytes value */ setFields (fbeValue) { this.f1.set(fbeValue.f1) this.f2.set(fbeValue.f2) this.f3.set(fbeValue.f3) } } exports.FieldModelStructBytes = FieldModelStructBytes /** * Fast Binary Encoding StructBytes model */ class StructBytesModel extends fbe.Model { /** * Initialize model with the given buffer * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Read/Write buffer, defaults is new fbe.WriteBuffer() * @constructor */ constructor (buffer = new fbe.WriteBuffer()) { super(buffer) this._model = new FieldModelStructBytes(this.buffer, 4) } /** * Get the StructBytes model * @this {!StructBytesModel} * @returns {!FieldModelStructBytes} model StructBytes model */ get model () { return this._model } /** * Get the model size * @this {!StructBytesModel} * @returns {!number} Model size */ get fbeSize () { return this.model.fbeSize + this.model.fbeExtra } /** * Get the model type * @this {!StructBytesModel} * @returns {!number} Model type */ get fbeType () { return StructBytesModel.fbeType } /** * Get the model type (static) * @this {!StructBytesModel} * @returns {!number} Model type */ static get fbeType () { return FieldModelStructBytes.fbeType } /** * Check if the struct value is valid * @this {!StructBytesModel} * @returns {!boolean} Model valid state */ verify () { if ((this.buffer.offset + this.model.fbeOffset - 4) > this.buffer.size) { return false } let fbeFullSize = this.readUInt32(this.model.fbeOffset - 4) if (fbeFullSize < this.model.fbeSize) { return false } return this.model.verify() } /** * Create a new model (begin phase) * @this {!StructBytesModel} * @returns {!number} Model begin offset */ createBegin () { return this.buffer.allocate(4 + this.model.fbeSize) } /** * Create a new model (end phase) * @this {!StructBytesModel} * @param {!number} fbeBegin Model begin offset */ createEnd (fbeBegin) { let fbeEnd = this.buffer.size let fbeFullSize = fbeEnd - fbeBegin this.writeUInt32(this.model.fbeOffset - 4, fbeFullSize) return fbeFullSize } /** * Serialize the struct value * @this {!StructBytesModel} * @param {!StructBytes} value StructBytes value * @return {!number} Model begin offset */ serialize (value) { let fbeBegin = this.createBegin() this.model.set(value) return this.createEnd(fbeBegin) } /** * Deserialize the struct value * @this {!StructBytesModel} * @param {!StructBytes} value StructBytes value, defaults is new StructBytes() * @return {!object} Deserialized StructBytes value and its size */ deserialize (value = new StructBytes()) { if ((this.buffer.offset + this.model.fbeOffset - 4) > this.buffer.size) { return { value: new StructBytes(), size: 0 } } let fbeFullSize = this.readUInt32(this.model.fbeOffset - 4) console.assert((fbeFullSize >= this.model.fbeSize), 'Model is broken!') if (fbeFullSize < this.model.fbeSize) { return { value: new StructBytes(), size: 0 } } this.model.get(value) return { value, size: fbeFullSize } } /** * Move to the next struct value * @this {!StructBytesModel} * @param {!number} prev Previous StructBytes model size */ next (prev) { this.model.fbeShift(prev) } } exports.StructBytesModel = StructBytesModel /** * Fast Binary Encoding StructBytes final model */ class FinalModelStructBytes extends fbe.FinalModel { /** * Initialize final model with the given buffer and offset * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Buffer * @param {!number} offset Offset * @constructor */ constructor (buffer, offset) { super(buffer, offset) this._f1 = new fbe.FinalModelBytes(buffer, 0) this._f2 = new fbe.FinalModelOptional(new fbe.FinalModelBytes(buffer, 0), buffer, 0) this._f3 = new fbe.FinalModelOptional(new fbe.FinalModelBytes(buffer, 0), buffer, 0) } /** * Get the f1 final model * @this {!FinalModelStructBytes} * @returns {!fbe.FinalModelBytes} f1 final model */ get f1 () { return this._f1 } /** * Get the f2 final model * @this {!FinalModelStructBytes} * @returns {!fbe.FinalModelOptional} f2 final model */ get f2 () { return this._f2 } /** * Get the f3 final model * @this {!FinalModelStructBytes} * @returns {!fbe.FinalModelOptional} f3 final model */ get f3 () { return this._f3 } /** * Get the allocation size * @this {!FinalModelStructBytes} * @param {!StructBytes} fbeValue StructBytes value * @returns {!number} Allocation size */ fbeAllocationSize (fbeValue) { return 0 + this.f1.fbeAllocationSize(fbeValue.f1) + this.f2.fbeAllocationSize(fbeValue.f2) + this.f3.fbeAllocationSize(fbeValue.f3) } /** * Get the final type * @this {!FinalModelStructBytes} * @returns {!number} Final type */ get fbeType () { return FinalModelStructBytes.fbeType } /** * Get the final type (static) * @this {!FinalModelStructBytes} * @returns {!number} Final type */ static get fbeType () { return 120 } /** * Check if the struct value is valid * @this {!FinalModelStructBytes} * @returns {!number} Final model size or Number.MAX_SAFE_INTEGER in case of any error */ verify () { this._buffer.shift(this.fbeOffset) let fbeResult = this.verifyFields() this._buffer.unshift(this.fbeOffset) return fbeResult } /** * Check if the struct fields are valid * @this {!FinalModelStructBytes} * @returns {!number} Final model size or Number.MAX_SAFE_INTEGER in case of any error */ verifyFields () { let fbeCurrentOffset = 0 let fbeFieldSize this.f1.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f2.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f2.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f3.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f3.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize return fbeCurrentOffset } /** * Get the struct value * @this {!FinalModelStructBytes} * @param {!StructBytes} fbeValue StructBytes value, defaults is new StructBytes() * @returns {!object} Result struct value and its size */ get (fbeValue = new StructBytes()) { this._buffer.shift(this.fbeOffset) let fbeSize = this.getFields(fbeValue) this._buffer.unshift(this.fbeOffset) return { value: fbeValue, size: fbeSize } } /** * Get the struct fields values * @this {!FinalModelStructBytes} * @param {!StructBytes} fbeValue StructBytes value * @returns {!number} Struct size */ getFields (fbeValue) { let fbeCurrentOffset = 0 let fbeCurrentSize = 0 let fbeResult this.f1.fbeOffset = fbeCurrentOffset fbeResult = this.f1.get() fbeValue.f1 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f2.fbeOffset = fbeCurrentOffset fbeResult = this.f2.get() fbeValue.f2 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f3.fbeOffset = fbeCurrentOffset fbeResult = this.f3.get() fbeValue.f3 = fbeResult.value // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size return fbeCurrentSize } /** * Set the struct value * @this {!FinalModelStructBytes} * @param {!StructBytes} fbeValue StructBytes value * @returns {!number} Final model size */ set (fbeValue) { this._buffer.shift(this.fbeOffset) let fbeSize = this.setFields(fbeValue) this._buffer.unshift(this.fbeOffset) return fbeSize } /** * Set the struct fields values * @this {!FinalModelStructBytes} * @param {StructBytes} fbeValue StructBytes value * @returns {!number} Final model size */ setFields (fbeValue) { let fbeCurrentOffset = 0 let fbeCurrentSize = 0 let fbeFieldSize this.f1.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1.set(fbeValue.f1) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f2.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f2.set(fbeValue.f2) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f3.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f3.set(fbeValue.f3) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize return fbeCurrentSize } } exports.FinalModelStructBytes = FinalModelStructBytes /** * Fast Binary Encoding StructBytes final model */ class StructBytesFinalModel extends fbe.Model { /** * Initialize final model with the given buffer * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Read/Write buffer, defaults is new fbe.WriteBuffer() * @constructor */ constructor (buffer = new fbe.WriteBuffer()) { super(buffer) this._model = new FinalModelStructBytes(this.buffer, 8) } /** * Get the model type * @this {!StructBytesFinalModel} * @returns {!number} Model type */ get fbeType () { return StructBytesFinalModel.fbeType } /** * Get the model type (static) * @this {!StructBytesFinalModel} * @returns {!number} Model type */ static get fbeType () { return FinalModelStructBytes.fbeType } /** * Check if the struct value is valid * @this {!StructBytesFinalModel} * @returns {!boolean} Model valid state */ verify () { if ((this.buffer.offset + this._model.fbeOffset) > this.buffer.size) { return false } let fbeStructSize = this.readUInt32(this._model.fbeOffset - 8) let fbeStructType = this.readUInt32(this._model.fbeOffset - 4) if ((fbeStructSize <= 0) || (fbeStructType !== this.fbeType)) { return false } return ((8 + this._model.verify()) === fbeStructSize) } /** * Serialize the struct value * @this {!StructBytesFinalModel} * @param {!StructBytes} value StructBytes value * @return {!number} Struct size */ serialize (value) { let fbeInitialSize = this.buffer.size let fbeStructType = this.fbeType let fbeStructSize = 8 + this._model.fbeAllocationSize(value) let fbeStructOffset = this.buffer.allocate(fbeStructSize) - this.buffer.offset console.assert(((this.buffer.offset + fbeStructOffset + fbeStructSize) <= this.buffer.size), 'Model is broken!') if ((this.buffer.offset + fbeStructOffset + fbeStructSize) > this.buffer.size) { return 0 } fbeStructSize = 8 + this._model.set(value) this.buffer.resize(fbeInitialSize + fbeStructSize) this.writeUInt32(this._model.fbeOffset - 8, fbeStructSize) this.writeUInt32(this._model.fbeOffset - 4, fbeStructType) return fbeStructSize } /** * Deserialize the struct value * @this {!StructBytesFinalModel} * @param {!StructBytes} value StructBytes value, defaults is new StructBytes() * @return {!object} Deserialized StructBytes value and its size */ deserialize (value = new StructBytes()) { console.assert(((this.buffer.offset + this._model.fbeOffset) <= this.buffer.size), 'Model is broken!') if ((this.buffer.offset + this._model.fbeOffset) > this.buffer.size) { return { value: new StructBytes(), size: 0 } } let fbeStructSize = this.readUInt32(this._model.fbeOffset - 8) let fbeStructType = this.readUInt32(this._model.fbeOffset - 4) console.assert(((fbeStructSize > 0) && (fbeStructType === this.fbeType)), 'Model is broken!') if ((fbeStructSize <= 0) || (fbeStructType !== this.fbeType)) { return { value: new StructBytes(), size: 8 } } let fbeResult = this._model.get(value) return { value: fbeResult.value, size: (8 + fbeResult.size) } } /** * Move to the next struct value * @this {!StructBytesFinalModel} * @param {!number} prev Previous StructBytes model size */ next (prev) { this._model.fbeShift(prev) } } exports.StructBytesFinalModel = StructBytesFinalModel /** * StructArray struct */ class StructArray { /** * Initialize struct * @param {!Array=} f1 * @param {Array=} f2 * @param {!Array=} f3 * @param {Array=} f4 * @param {!Array=} f5 * @param {Array=} f6 * @param {!Array=} f7 * @param {Array=} f8 * @param {!Array=} f9 * @param {Array=} f10 * @constructor */ constructor (argf1 = [], argf2 = [], argf3 = [], argf4 = [], argf5 = [], argf6 = [], argf7 = [], argf8 = [], argf9 = [], argf10 = []) { this.f1 = argf1 this.f2 = argf2 this.f3 = argf3 this.f4 = argf4 this.f5 = argf5 this.f6 = argf6 this.f7 = argf7 this.f8 = argf8 this.f9 = argf9 this.f10 = argf10 } /** * Copy struct (shallow copy) * @this {!StructArray} * @param {!StructArray} other Other struct * @returns {!StructArray} This struct */ copy (other) { if (other.f1 != null) { this.f1 = [] for (let item of other.f1) { if (item != null) { let tempItem tempItem = item this.f1.push(tempItem) } else { this.f1.push(undefined) } } } else { this.f1 = undefined } if (other.f2 != null) { this.f2 = [] for (let item of other.f2) { if (item != null) { let tempItem tempItem = item this.f2.push(tempItem) } else { this.f2.push(undefined) } } } else { this.f2 = undefined } if (other.f3 != null) { this.f3 = [] for (let item of other.f3) { if (item != null) { let tempItem if (typeof item === 'string') { // noinspection JSUnresolvedFunction tempItem = Uint8Array.from(Buffer.from(item, 'base64')) } else { tempItem = Uint8Array.from(item) } this.f3.push(tempItem) } else { this.f3.push(undefined) } } } else { this.f3 = undefined } if (other.f4 != null) { this.f4 = [] for (let item of other.f4) { if (item != null) { let tempItem if (typeof item === 'string') { // noinspection JSUnresolvedFunction tempItem = Uint8Array.from(Buffer.from(item, 'base64')) } else { tempItem = Uint8Array.from(item) } this.f4.push(tempItem) } else { this.f4.push(undefined) } } } else { this.f4 = undefined } if (other.f5 != null) { this.f5 = [] for (let item of other.f5) { if (item != null) { let tempItem tempItem = EnumSimple.fromObject(item) this.f5.push(tempItem) } else { this.f5.push(undefined) } } } else { this.f5 = undefined } if (other.f6 != null) { this.f6 = [] for (let item of other.f6) { if (item != null) { let tempItem tempItem = EnumSimple.fromObject(item) this.f6.push(tempItem) } else { this.f6.push(undefined) } } } else { this.f6 = undefined } if (other.f7 != null) { this.f7 = [] for (let item of other.f7) { if (item != null) { let tempItem tempItem = FlagsSimple.fromObject(item) this.f7.push(tempItem) } else { this.f7.push(undefined) } } } else { this.f7 = undefined } if (other.f8 != null) { this.f8 = [] for (let item of other.f8) { if (item != null) { let tempItem tempItem = FlagsSimple.fromObject(item) this.f8.push(tempItem) } else { this.f8.push(undefined) } } } else { this.f8 = undefined } if (other.f9 != null) { this.f9 = [] for (let item of other.f9) { if (item != null) { let tempItem tempItem = StructSimple.fromObject(item) this.f9.push(tempItem) } else { this.f9.push(undefined) } } } else { this.f9 = undefined } if (other.f10 != null) { this.f10 = [] for (let item of other.f10) { if (item != null) { let tempItem tempItem = StructSimple.fromObject(item) this.f10.push(tempItem) } else { this.f10.push(undefined) } } } else { this.f10 = undefined } return this } /** * Clone struct (deep clone) * @this {!StructArray} * @returns {!StructArray} Cloned struct */ clone () { // Serialize the struct to the FBE stream let writer = new StructArrayModel(new fbe.WriteBuffer()) writer.serialize(this) // Deserialize the struct from the FBE stream let reader = new StructArrayModel(new fbe.ReadBuffer()) reader.attachBuffer(writer.buffer) return reader.deserialize().value } /** * Is this struct equal to other one? * @this {!StructArray} * @param {!StructArray} other Other struct * @returns {boolean} Equal result */ eq (other) { if (!(other instanceof StructArray)) { throw new TypeError('Instance of StructArray is required!') } return true } /** * Convert struct to string * @this {!StructArray} * @returns {!string} Struct value string */ toString () { let result = '' result += 'StructArray(' result += 'f1=' if (this.f1 != null) { let first = true result += '[' + this.f1.length + '][' for (let item of this.f1) { result += first ? '' : ',' result += item.toString() first = false } result += ']' } else { result += '[0][]' } result += ',f2=' if (this.f2 != null) { let first = true result += '[' + this.f2.length + '][' for (let item of this.f2) { if (item != null) { result += first ? '' : ',' result += item.toString() } else { result += first ? '' : ',' result += 'null' } first = false } result += ']' } else { result += '[0][]' } result += ',f3=' if (this.f3 != null) { let first = true result += '[' + this.f3.length + '][' for (let item of this.f3) { if (item != null) { result += first ? '' : ',' result += 'bytes[' + item.length + ']' } else { result += first ? '' : ',' result += 'null' } first = false } result += ']' } else { result += '[0][]' } result += ',f4=' if (this.f4 != null) { let first = true result += '[' + this.f4.length + '][' for (let item of this.f4) { if (item != null) { result += first ? '' : ',' result += 'bytes[' + item.length + ']' } else { result += first ? '' : ',' result += 'null' } first = false } result += ']' } else { result += '[0][]' } result += ',f5=' if (this.f5 != null) { let first = true result += '[' + this.f5.length + '][' for (let item of this.f5) { result += first ? '' : ',' result += item.toString() first = false } result += ']' } else { result += '[0][]' } result += ',f6=' if (this.f6 != null) { let first = true result += '[' + this.f6.length + '][' for (let item of this.f6) { if (item != null) { result += first ? '' : ',' result += item.toString() } else { result += first ? '' : ',' result += 'null' } first = false } result += ']' } else { result += '[0][]' } result += ',f7=' if (this.f7 != null) { let first = true result += '[' + this.f7.length + '][' for (let item of this.f7) { result += first ? '' : ',' result += item.toString() first = false } result += ']' } else { result += '[0][]' } result += ',f8=' if (this.f8 != null) { let first = true result += '[' + this.f8.length + '][' for (let item of this.f8) { if (item != null) { result += first ? '' : ',' result += item.toString() } else { result += first ? '' : ',' result += 'null' } first = false } result += ']' } else { result += '[0][]' } result += ',f9=' if (this.f9 != null) { let first = true result += '[' + this.f9.length + '][' for (let item of this.f9) { result += first ? '' : ',' result += item.toString() first = false } result += ']' } else { result += '[0][]' } result += ',f10=' if (this.f10 != null) { let first = true result += '[' + this.f10.length + '][' for (let item of this.f10) { if (item != null) { result += first ? '' : ',' result += item.toString() } else { result += first ? '' : ',' result += 'null' } first = false } result += ']' } else { result += '[0][]' } result += ')' return result } /** * Inspect struct * @this {!StructArray} * @returns {!string} Struct value string */ [util.inspect.custom] () { return this.toString() } /** * Convert struct to JSON * @this {!StructArray} * @returns {!object} Struct value for JSON */ toJSON () { return { f1: ((this.f1 != null) ? Array.from(this.f1, item => ((item != null) ? item : null)) : null), f2: ((this.f2 != null) ? Array.from(this.f2, item => ((item != null) ? item : null)) : null), f3: ((this.f3 != null) ? Array.from(this.f3, item => ((item != null) ? Buffer.from(item).toString('base64') : null)) : null), f4: ((this.f4 != null) ? Array.from(this.f4, item => ((item != null) ? Buffer.from(item).toString('base64') : null)) : null), f5: ((this.f5 != null) ? Array.from(this.f5, item => ((item != null) ? item : null)) : null), f6: ((this.f6 != null) ? Array.from(this.f6, item => ((item != null) ? item : null)) : null), f7: ((this.f7 != null) ? Array.from(this.f7, item => ((item != null) ? item : null)) : null), f8: ((this.f8 != null) ? Array.from(this.f8, item => ((item != null) ? item : null)) : null), f9: ((this.f9 != null) ? Array.from(this.f9, item => ((item != null) ? item : null)) : null), f10: ((this.f10 != null) ? Array.from(this.f10, item => ((item != null) ? item : null)) : null) } } /** * Convert JSON to struct * @param {!string} json JSON string * @returns {!object} Struct value for JSON */ static fromJSON (json) { return StructArray.fromObject(JSON.parse(json)) } /** * Create struct from object value * @param {!StructArray} other Object value * @returns {!StructArray} Created struct */ static fromObject (other) { return new StructArray().copy(other) } /** * Get the FBE type * @this {!StructArray} * @returns {!number} FBE type */ get fbeType () { return StructArray.fbeType } /** * Get the FBE type (static) * @this {!StructArray} * @returns {!number} FBE type */ static get fbeType () { return 125 } } exports.StructArray = StructArray /** * Fast Binary Encoding StructArray field model */ class FieldModelStructArray extends fbe.FieldModel { /** * Initialize field model with the given buffer and offset * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Buffer * @param {!number} offset Offset * @constructor */ constructor (buffer, offset) { super(buffer, offset) this._f1 = new fbe.FieldModelArray(new fbe.FieldModelByte(buffer, 4 + 4), buffer, 4 + 4, 2) this._f2 = new fbe.FieldModelArray(new fbe.FieldModelOptional(new fbe.FieldModelByte(buffer, this._f1.fbeOffset + this._f1.fbeSize), buffer, this._f1.fbeOffset + this._f1.fbeSize), buffer, this._f1.fbeOffset + this._f1.fbeSize, 2) this._f3 = new fbe.FieldModelArray(new fbe.FieldModelBytes(buffer, this._f2.fbeOffset + this._f2.fbeSize), buffer, this._f2.fbeOffset + this._f2.fbeSize, 2) this._f4 = new fbe.FieldModelArray(new fbe.FieldModelOptional(new fbe.FieldModelBytes(buffer, this._f3.fbeOffset + this._f3.fbeSize), buffer, this._f3.fbeOffset + this._f3.fbeSize), buffer, this._f3.fbeOffset + this._f3.fbeSize, 2) this._f5 = new fbe.FieldModelArray(new FieldModelEnumSimple(buffer, this._f4.fbeOffset + this._f4.fbeSize), buffer, this._f4.fbeOffset + this._f4.fbeSize, 2) this._f6 = new fbe.FieldModelArray(new fbe.FieldModelOptional(new FieldModelEnumSimple(buffer, this._f5.fbeOffset + this._f5.fbeSize), buffer, this._f5.fbeOffset + this._f5.fbeSize), buffer, this._f5.fbeOffset + this._f5.fbeSize, 2) this._f7 = new fbe.FieldModelArray(new FieldModelFlagsSimple(buffer, this._f6.fbeOffset + this._f6.fbeSize), buffer, this._f6.fbeOffset + this._f6.fbeSize, 2) this._f8 = new fbe.FieldModelArray(new fbe.FieldModelOptional(new FieldModelFlagsSimple(buffer, this._f7.fbeOffset + this._f7.fbeSize), buffer, this._f7.fbeOffset + this._f7.fbeSize), buffer, this._f7.fbeOffset + this._f7.fbeSize, 2) this._f9 = new fbe.FieldModelArray(new FieldModelStructSimple(buffer, this._f8.fbeOffset + this._f8.fbeSize), buffer, this._f8.fbeOffset + this._f8.fbeSize, 2) this._f10 = new fbe.FieldModelArray(new fbe.FieldModelOptional(new FieldModelStructSimple(buffer, this._f9.fbeOffset + this._f9.fbeSize), buffer, this._f9.fbeOffset + this._f9.fbeSize), buffer, this._f9.fbeOffset + this._f9.fbeSize, 2) } /** * Get the f1 field model * @this {!FieldModelStructArray} * @returns {!fbe.FieldModelArray} f1 field model */ get f1 () { return this._f1 } /** * Get the f2 field model * @this {!FieldModelStructArray} * @returns {!fbe.FieldModelArray} f2 field model */ get f2 () { return this._f2 } /** * Get the f3 field model * @this {!FieldModelStructArray} * @returns {!fbe.FieldModelArray} f3 field model */ get f3 () { return this._f3 } /** * Get the f4 field model * @this {!FieldModelStructArray} * @returns {!fbe.FieldModelArray} f4 field model */ get f4 () { return this._f4 } /** * Get the f5 field model * @this {!FieldModelStructArray} * @returns {!fbe.FieldModelArray} f5 field model */ get f5 () { return this._f5 } /** * Get the f6 field model * @this {!FieldModelStructArray} * @returns {!fbe.FieldModelArray} f6 field model */ get f6 () { return this._f6 } /** * Get the f7 field model * @this {!FieldModelStructArray} * @returns {!fbe.FieldModelArray} f7 field model */ get f7 () { return this._f7 } /** * Get the f8 field model * @this {!FieldModelStructArray} * @returns {!fbe.FieldModelArray} f8 field model */ get f8 () { return this._f8 } /** * Get the f9 field model * @this {!FieldModelStructArray} * @returns {!fbe.FieldModelArray} f9 field model */ get f9 () { return this._f9 } /** * Get the f10 field model * @this {!FieldModelStructArray} * @returns {!fbe.FieldModelArray} f10 field model */ get f10 () { return this._f10 } /** * Get the field size * @this {!FieldModelStructArray} * @returns {!number} Field size */ get fbeSize () { return 4 } /** * Get the field body size * @this {!FieldModelStructArray} * @returns {!number} Field body size */ get fbeBody () { return 4 + 4 + this.f1.fbeSize + this.f2.fbeSize + this.f3.fbeSize + this.f4.fbeSize + this.f5.fbeSize + this.f6.fbeSize + this.f7.fbeSize + this.f8.fbeSize + this.f9.fbeSize + this.f10.fbeSize } /** * Get the field extra size * @this {!FieldModelStructArray} * @returns {!number} Field extra size */ get fbeExtra () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructOffset = this.readUInt32(this.fbeOffset) if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4) > this._buffer.size)) { return 0 } this._buffer.shift(fbeStructOffset) let fbeResult = this.fbeBody + this.f1.fbeExtra + this.f2.fbeExtra + this.f3.fbeExtra + this.f4.fbeExtra + this.f5.fbeExtra + this.f6.fbeExtra + this.f7.fbeExtra + this.f8.fbeExtra + this.f9.fbeExtra + this.f10.fbeExtra this._buffer.unshift(fbeStructOffset) return fbeResult } /** * Get the field type * @this {!FieldModelStructArray} * @returns {!number} Field type */ get fbeType () { return FieldModelStructArray.fbeType } /** * Get the field type (static) * @this {!FieldModelStructArray} * @returns {!number} Field type */ static get fbeType () { return 125 } /** * Check if the struct value is valid * @this {!FieldModelStructArray} * @param {!boolean} fbeVerifyType Verify model type flag, defaults is true * @returns {!boolean} Field model valid state */ verify (fbeVerifyType = true) { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return true } let fbeStructOffset = this.readUInt32(this.fbeOffset) if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4 + 4) > this._buffer.size)) { return false } let fbeStructSize = this.readUInt32(fbeStructOffset) if (fbeStructSize < (4 + 4)) { return false } let fbeStructType = this.readUInt32(fbeStructOffset + 4) if (fbeVerifyType && (fbeStructType !== this.fbeType)) { return false } this._buffer.shift(fbeStructOffset) let fbeResult = this.verifyFields(fbeStructSize) this._buffer.unshift(fbeStructOffset) return fbeResult } /** * Check if the struct fields are valid * @this {!FieldModelStructArray} * @param {!number} fbeStructSize FBE struct size * @returns {!boolean} Field model valid state */ verifyFields (fbeStructSize) { let fbeCurrentSize = 4 + 4 if ((fbeCurrentSize + this.f1.fbeSize) > fbeStructSize) { return true } if (!this.f1.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1.fbeSize if ((fbeCurrentSize + this.f2.fbeSize) > fbeStructSize) { return true } if (!this.f2.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f2.fbeSize if ((fbeCurrentSize + this.f3.fbeSize) > fbeStructSize) { return true } if (!this.f3.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f3.fbeSize if ((fbeCurrentSize + this.f4.fbeSize) > fbeStructSize) { return true } if (!this.f4.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f4.fbeSize if ((fbeCurrentSize + this.f5.fbeSize) > fbeStructSize) { return true } if (!this.f5.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f5.fbeSize if ((fbeCurrentSize + this.f6.fbeSize) > fbeStructSize) { return true } if (!this.f6.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f6.fbeSize if ((fbeCurrentSize + this.f7.fbeSize) > fbeStructSize) { return true } if (!this.f7.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f7.fbeSize if ((fbeCurrentSize + this.f8.fbeSize) > fbeStructSize) { return true } if (!this.f8.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f8.fbeSize if ((fbeCurrentSize + this.f9.fbeSize) > fbeStructSize) { return true } if (!this.f9.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f9.fbeSize if ((fbeCurrentSize + this.f10.fbeSize) > fbeStructSize) { return true } if (!this.f10.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f10.fbeSize return true } /** * Get the struct value (begin phase) * @this {!FieldModelStructArray} * @returns {!number} Field model begin offset */ getBegin () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructOffset = this.readUInt32(this.fbeOffset) console.assert((fbeStructOffset > 0) && ((this._buffer.offset + fbeStructOffset + 4 + 4) <= this._buffer.size), 'Model is broken!') if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4 + 4) > this._buffer.size)) { return 0 } let fbeStructSize = this.readUInt32(fbeStructOffset) console.assert((fbeStructSize >= (4 + 4)), 'Model is broken!') if (fbeStructSize < (4 + 4)) { return 0 } this._buffer.shift(fbeStructOffset) return fbeStructOffset } /** * Get the struct value (end phase) * @this {!FieldModelStructArray} * @param {!number} fbeBegin Field model begin offset */ getEnd (fbeBegin) { this._buffer.unshift(fbeBegin) } /** * Get the struct value * @this {!FieldModelStructArray} * @param {!StructArray} fbeValue Default value, defaults is new StructArray() * @returns {!StructArray} StructArray value */ get (fbeValue = new StructArray()) { let fbeBegin = this.getBegin() if (fbeBegin === 0) { return fbeValue } let fbeStructSize = this.readUInt32(0) this.getFields(fbeValue, fbeStructSize) this.getEnd(fbeBegin) return fbeValue } /** * Get the struct fields values * @this {!FieldModelStructArray} * @param {!StructArray} fbeValue StructArray value * @param {!number} fbeStructSize Struct size */ getFields (fbeValue, fbeStructSize) { let fbeCurrentSize = 4 + 4 if ((fbeCurrentSize + this.f1.fbeSize) <= fbeStructSize) { this.f1.get(fbeValue.f1) } else { fbeValue.f1.length = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1.fbeSize if ((fbeCurrentSize + this.f2.fbeSize) <= fbeStructSize) { this.f2.get(fbeValue.f2) } else { fbeValue.f2.length = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f2.fbeSize if ((fbeCurrentSize + this.f3.fbeSize) <= fbeStructSize) { this.f3.get(fbeValue.f3) } else { fbeValue.f3.length = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f3.fbeSize if ((fbeCurrentSize + this.f4.fbeSize) <= fbeStructSize) { this.f4.get(fbeValue.f4) } else { fbeValue.f4.length = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f4.fbeSize if ((fbeCurrentSize + this.f5.fbeSize) <= fbeStructSize) { this.f5.get(fbeValue.f5) } else { fbeValue.f5.length = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f5.fbeSize if ((fbeCurrentSize + this.f6.fbeSize) <= fbeStructSize) { this.f6.get(fbeValue.f6) } else { fbeValue.f6.length = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f6.fbeSize if ((fbeCurrentSize + this.f7.fbeSize) <= fbeStructSize) { this.f7.get(fbeValue.f7) } else { fbeValue.f7.length = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f7.fbeSize if ((fbeCurrentSize + this.f8.fbeSize) <= fbeStructSize) { this.f8.get(fbeValue.f8) } else { fbeValue.f8.length = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f8.fbeSize if ((fbeCurrentSize + this.f9.fbeSize) <= fbeStructSize) { this.f9.get(fbeValue.f9) } else { fbeValue.f9.length = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f9.fbeSize if ((fbeCurrentSize + this.f10.fbeSize) <= fbeStructSize) { this.f10.get(fbeValue.f10) } else { fbeValue.f10.length = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f10.fbeSize } /** * Set the struct value (begin phase) * @this {!FieldModelStructArray} * @returns {!number} Field model begin offset */ setBegin () { console.assert(((this._buffer.offset + this.fbeOffset + this.fbeSize) <= this._buffer.size), 'Model is broken!') if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructSize = this.fbeBody let fbeStructOffset = this._buffer.allocate(fbeStructSize) - this._buffer.offset console.assert((fbeStructOffset > 0) && ((this._buffer.offset + fbeStructOffset + fbeStructSize) <= this._buffer.size), 'Model is broken!') if ((fbeStructOffset <= 0) || ((this._buffer.offset + fbeStructOffset + fbeStructSize) > this._buffer.size)) { return 0 } this.writeUInt32(this.fbeOffset, fbeStructOffset) this.writeUInt32(fbeStructOffset, fbeStructSize) this.writeUInt32(fbeStructOffset + 4, this.fbeType) this._buffer.shift(fbeStructOffset) return fbeStructOffset } /** * Set the struct value (end phase) * @this {!FieldModelStructArray} * @param {!number} fbeBegin Field model begin offset */ setEnd (fbeBegin) { this._buffer.unshift(fbeBegin) } /** * Set the struct value * @this {!FieldModelStructArray} * @param {!StructArray} fbeValue StructArray value */ set (fbeValue) { let fbeBegin = this.setBegin() if (fbeBegin === 0) { return } this.setFields(fbeValue) this.setEnd(fbeBegin) } /** * Set the struct fields values * @this {!FieldModelStructArray} * @param {StructArray} fbeValue StructArray value */ setFields (fbeValue) { this.f1.set(fbeValue.f1) this.f2.set(fbeValue.f2) this.f3.set(fbeValue.f3) this.f4.set(fbeValue.f4) this.f5.set(fbeValue.f5) this.f6.set(fbeValue.f6) this.f7.set(fbeValue.f7) this.f8.set(fbeValue.f8) this.f9.set(fbeValue.f9) this.f10.set(fbeValue.f10) } } exports.FieldModelStructArray = FieldModelStructArray /** * Fast Binary Encoding StructArray model */ class StructArrayModel extends fbe.Model { /** * Initialize model with the given buffer * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Read/Write buffer, defaults is new fbe.WriteBuffer() * @constructor */ constructor (buffer = new fbe.WriteBuffer()) { super(buffer) this._model = new FieldModelStructArray(this.buffer, 4) } /** * Get the StructArray model * @this {!StructArrayModel} * @returns {!FieldModelStructArray} model StructArray model */ get model () { return this._model } /** * Get the model size * @this {!StructArrayModel} * @returns {!number} Model size */ get fbeSize () { return this.model.fbeSize + this.model.fbeExtra } /** * Get the model type * @this {!StructArrayModel} * @returns {!number} Model type */ get fbeType () { return StructArrayModel.fbeType } /** * Get the model type (static) * @this {!StructArrayModel} * @returns {!number} Model type */ static get fbeType () { return FieldModelStructArray.fbeType } /** * Check if the struct value is valid * @this {!StructArrayModel} * @returns {!boolean} Model valid state */ verify () { if ((this.buffer.offset + this.model.fbeOffset - 4) > this.buffer.size) { return false } let fbeFullSize = this.readUInt32(this.model.fbeOffset - 4) if (fbeFullSize < this.model.fbeSize) { return false } return this.model.verify() } /** * Create a new model (begin phase) * @this {!StructArrayModel} * @returns {!number} Model begin offset */ createBegin () { return this.buffer.allocate(4 + this.model.fbeSize) } /** * Create a new model (end phase) * @this {!StructArrayModel} * @param {!number} fbeBegin Model begin offset */ createEnd (fbeBegin) { let fbeEnd = this.buffer.size let fbeFullSize = fbeEnd - fbeBegin this.writeUInt32(this.model.fbeOffset - 4, fbeFullSize) return fbeFullSize } /** * Serialize the struct value * @this {!StructArrayModel} * @param {!StructArray} value StructArray value * @return {!number} Model begin offset */ serialize (value) { let fbeBegin = this.createBegin() this.model.set(value) return this.createEnd(fbeBegin) } /** * Deserialize the struct value * @this {!StructArrayModel} * @param {!StructArray} value StructArray value, defaults is new StructArray() * @return {!object} Deserialized StructArray value and its size */ deserialize (value = new StructArray()) { if ((this.buffer.offset + this.model.fbeOffset - 4) > this.buffer.size) { return { value: new StructArray(), size: 0 } } let fbeFullSize = this.readUInt32(this.model.fbeOffset - 4) console.assert((fbeFullSize >= this.model.fbeSize), 'Model is broken!') if (fbeFullSize < this.model.fbeSize) { return { value: new StructArray(), size: 0 } } this.model.get(value) return { value, size: fbeFullSize } } /** * Move to the next struct value * @this {!StructArrayModel} * @param {!number} prev Previous StructArray model size */ next (prev) { this.model.fbeShift(prev) } } exports.StructArrayModel = StructArrayModel /** * Fast Binary Encoding StructArray final model */ class FinalModelStructArray extends fbe.FinalModel { /** * Initialize final model with the given buffer and offset * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Buffer * @param {!number} offset Offset * @constructor */ constructor (buffer, offset) { super(buffer, offset) this._f1 = new fbe.FinalModelArray(new fbe.FinalModelByte(buffer, 0), buffer, 0, 2) this._f2 = new fbe.FinalModelArray(new fbe.FinalModelOptional(new fbe.FinalModelByte(buffer, 0), buffer, 0), buffer, 0, 2) this._f3 = new fbe.FinalModelArray(new fbe.FinalModelBytes(buffer, 0), buffer, 0, 2) this._f4 = new fbe.FinalModelArray(new fbe.FinalModelOptional(new fbe.FinalModelBytes(buffer, 0), buffer, 0), buffer, 0, 2) this._f5 = new fbe.FinalModelArray(new FinalModelEnumSimple(buffer, 0), buffer, 0, 2) this._f6 = new fbe.FinalModelArray(new fbe.FinalModelOptional(new FinalModelEnumSimple(buffer, 0), buffer, 0), buffer, 0, 2) this._f7 = new fbe.FinalModelArray(new FinalModelFlagsSimple(buffer, 0), buffer, 0, 2) this._f8 = new fbe.FinalModelArray(new fbe.FinalModelOptional(new FinalModelFlagsSimple(buffer, 0), buffer, 0), buffer, 0, 2) this._f9 = new fbe.FinalModelArray(new FinalModelStructSimple(buffer, 0), buffer, 0, 2) this._f10 = new fbe.FinalModelArray(new fbe.FinalModelOptional(new FinalModelStructSimple(buffer, 0), buffer, 0), buffer, 0, 2) } /** * Get the f1 final model * @this {!FinalModelStructArray} * @returns {!fbe.FinalModelArray} f1 final model */ get f1 () { return this._f1 } /** * Get the f2 final model * @this {!FinalModelStructArray} * @returns {!fbe.FinalModelArray} f2 final model */ get f2 () { return this._f2 } /** * Get the f3 final model * @this {!FinalModelStructArray} * @returns {!fbe.FinalModelArray} f3 final model */ get f3 () { return this._f3 } /** * Get the f4 final model * @this {!FinalModelStructArray} * @returns {!fbe.FinalModelArray} f4 final model */ get f4 () { return this._f4 } /** * Get the f5 final model * @this {!FinalModelStructArray} * @returns {!fbe.FinalModelArray} f5 final model */ get f5 () { return this._f5 } /** * Get the f6 final model * @this {!FinalModelStructArray} * @returns {!fbe.FinalModelArray} f6 final model */ get f6 () { return this._f6 } /** * Get the f7 final model * @this {!FinalModelStructArray} * @returns {!fbe.FinalModelArray} f7 final model */ get f7 () { return this._f7 } /** * Get the f8 final model * @this {!FinalModelStructArray} * @returns {!fbe.FinalModelArray} f8 final model */ get f8 () { return this._f8 } /** * Get the f9 final model * @this {!FinalModelStructArray} * @returns {!fbe.FinalModelArray} f9 final model */ get f9 () { return this._f9 } /** * Get the f10 final model * @this {!FinalModelStructArray} * @returns {!fbe.FinalModelArray} f10 final model */ get f10 () { return this._f10 } /** * Get the allocation size * @this {!FinalModelStructArray} * @param {!StructArray} fbeValue StructArray value * @returns {!number} Allocation size */ fbeAllocationSize (fbeValue) { return 0 + this.f1.fbeAllocationSize(fbeValue.f1) + this.f2.fbeAllocationSize(fbeValue.f2) + this.f3.fbeAllocationSize(fbeValue.f3) + this.f4.fbeAllocationSize(fbeValue.f4) + this.f5.fbeAllocationSize(fbeValue.f5) + this.f6.fbeAllocationSize(fbeValue.f6) + this.f7.fbeAllocationSize(fbeValue.f7) + this.f8.fbeAllocationSize(fbeValue.f8) + this.f9.fbeAllocationSize(fbeValue.f9) + this.f10.fbeAllocationSize(fbeValue.f10) } /** * Get the final type * @this {!FinalModelStructArray} * @returns {!number} Final type */ get fbeType () { return FinalModelStructArray.fbeType } /** * Get the final type (static) * @this {!FinalModelStructArray} * @returns {!number} Final type */ static get fbeType () { return 125 } /** * Check if the struct value is valid * @this {!FinalModelStructArray} * @returns {!number} Final model size or Number.MAX_SAFE_INTEGER in case of any error */ verify () { this._buffer.shift(this.fbeOffset) let fbeResult = this.verifyFields() this._buffer.unshift(this.fbeOffset) return fbeResult } /** * Check if the struct fields are valid * @this {!FinalModelStructArray} * @returns {!number} Final model size or Number.MAX_SAFE_INTEGER in case of any error */ verifyFields () { let fbeCurrentOffset = 0 let fbeFieldSize this.f1.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f2.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f2.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f3.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f3.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f4.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f4.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f5.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f5.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f6.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f6.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f7.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f7.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f8.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f8.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f9.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f9.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f10.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f10.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize return fbeCurrentOffset } /** * Get the struct value * @this {!FinalModelStructArray} * @param {!StructArray} fbeValue StructArray value, defaults is new StructArray() * @returns {!object} Result struct value and its size */ get (fbeValue = new StructArray()) { this._buffer.shift(this.fbeOffset) let fbeSize = this.getFields(fbeValue) this._buffer.unshift(this.fbeOffset) return { value: fbeValue, size: fbeSize } } /** * Get the struct fields values * @this {!FinalModelStructArray} * @param {!StructArray} fbeValue StructArray value * @returns {!number} Struct size */ getFields (fbeValue) { let fbeCurrentOffset = 0 let fbeCurrentSize = 0 let fbeResult this.f1.fbeOffset = fbeCurrentOffset fbeResult = this.f1.get(fbeValue.f1) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f2.fbeOffset = fbeCurrentOffset fbeResult = this.f2.get(fbeValue.f2) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f3.fbeOffset = fbeCurrentOffset fbeResult = this.f3.get(fbeValue.f3) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f4.fbeOffset = fbeCurrentOffset fbeResult = this.f4.get(fbeValue.f4) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f5.fbeOffset = fbeCurrentOffset fbeResult = this.f5.get(fbeValue.f5) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f6.fbeOffset = fbeCurrentOffset fbeResult = this.f6.get(fbeValue.f6) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f7.fbeOffset = fbeCurrentOffset fbeResult = this.f7.get(fbeValue.f7) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f8.fbeOffset = fbeCurrentOffset fbeResult = this.f8.get(fbeValue.f8) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f9.fbeOffset = fbeCurrentOffset fbeResult = this.f9.get(fbeValue.f9) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f10.fbeOffset = fbeCurrentOffset fbeResult = this.f10.get(fbeValue.f10) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size return fbeCurrentSize } /** * Set the struct value * @this {!FinalModelStructArray} * @param {!StructArray} fbeValue StructArray value * @returns {!number} Final model size */ set (fbeValue) { this._buffer.shift(this.fbeOffset) let fbeSize = this.setFields(fbeValue) this._buffer.unshift(this.fbeOffset) return fbeSize } /** * Set the struct fields values * @this {!FinalModelStructArray} * @param {StructArray} fbeValue StructArray value * @returns {!number} Final model size */ setFields (fbeValue) { let fbeCurrentOffset = 0 let fbeCurrentSize = 0 let fbeFieldSize this.f1.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1.set(fbeValue.f1) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f2.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f2.set(fbeValue.f2) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f3.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f3.set(fbeValue.f3) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f4.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f4.set(fbeValue.f4) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f5.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f5.set(fbeValue.f5) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f6.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f6.set(fbeValue.f6) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f7.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f7.set(fbeValue.f7) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f8.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f8.set(fbeValue.f8) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f9.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f9.set(fbeValue.f9) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f10.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f10.set(fbeValue.f10) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize return fbeCurrentSize } } exports.FinalModelStructArray = FinalModelStructArray /** * Fast Binary Encoding StructArray final model */ class StructArrayFinalModel extends fbe.Model { /** * Initialize final model with the given buffer * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Read/Write buffer, defaults is new fbe.WriteBuffer() * @constructor */ constructor (buffer = new fbe.WriteBuffer()) { super(buffer) this._model = new FinalModelStructArray(this.buffer, 8) } /** * Get the model type * @this {!StructArrayFinalModel} * @returns {!number} Model type */ get fbeType () { return StructArrayFinalModel.fbeType } /** * Get the model type (static) * @this {!StructArrayFinalModel} * @returns {!number} Model type */ static get fbeType () { return FinalModelStructArray.fbeType } /** * Check if the struct value is valid * @this {!StructArrayFinalModel} * @returns {!boolean} Model valid state */ verify () { if ((this.buffer.offset + this._model.fbeOffset) > this.buffer.size) { return false } let fbeStructSize = this.readUInt32(this._model.fbeOffset - 8) let fbeStructType = this.readUInt32(this._model.fbeOffset - 4) if ((fbeStructSize <= 0) || (fbeStructType !== this.fbeType)) { return false } return ((8 + this._model.verify()) === fbeStructSize) } /** * Serialize the struct value * @this {!StructArrayFinalModel} * @param {!StructArray} value StructArray value * @return {!number} Struct size */ serialize (value) { let fbeInitialSize = this.buffer.size let fbeStructType = this.fbeType let fbeStructSize = 8 + this._model.fbeAllocationSize(value) let fbeStructOffset = this.buffer.allocate(fbeStructSize) - this.buffer.offset console.assert(((this.buffer.offset + fbeStructOffset + fbeStructSize) <= this.buffer.size), 'Model is broken!') if ((this.buffer.offset + fbeStructOffset + fbeStructSize) > this.buffer.size) { return 0 } fbeStructSize = 8 + this._model.set(value) this.buffer.resize(fbeInitialSize + fbeStructSize) this.writeUInt32(this._model.fbeOffset - 8, fbeStructSize) this.writeUInt32(this._model.fbeOffset - 4, fbeStructType) return fbeStructSize } /** * Deserialize the struct value * @this {!StructArrayFinalModel} * @param {!StructArray} value StructArray value, defaults is new StructArray() * @return {!object} Deserialized StructArray value and its size */ deserialize (value = new StructArray()) { console.assert(((this.buffer.offset + this._model.fbeOffset) <= this.buffer.size), 'Model is broken!') if ((this.buffer.offset + this._model.fbeOffset) > this.buffer.size) { return { value: new StructArray(), size: 0 } } let fbeStructSize = this.readUInt32(this._model.fbeOffset - 8) let fbeStructType = this.readUInt32(this._model.fbeOffset - 4) console.assert(((fbeStructSize > 0) && (fbeStructType === this.fbeType)), 'Model is broken!') if ((fbeStructSize <= 0) || (fbeStructType !== this.fbeType)) { return { value: new StructArray(), size: 8 } } let fbeResult = this._model.get(value) return { value: fbeResult.value, size: (8 + fbeResult.size) } } /** * Move to the next struct value * @this {!StructArrayFinalModel} * @param {!number} prev Previous StructArray model size */ next (prev) { this._model.fbeShift(prev) } } exports.StructArrayFinalModel = StructArrayFinalModel /** * StructVector struct */ class StructVector { /** * Initialize struct * @param {!Array=} f1 * @param {Array=} f2 * @param {!Array=} f3 * @param {Array=} f4 * @param {!Array=} f5 * @param {Array=} f6 * @param {!Array=} f7 * @param {Array=} f8 * @param {!Array=} f9 * @param {Array=} f10 * @constructor */ constructor (argf1 = [], argf2 = [], argf3 = [], argf4 = [], argf5 = [], argf6 = [], argf7 = [], argf8 = [], argf9 = [], argf10 = []) { this.f1 = argf1 this.f2 = argf2 this.f3 = argf3 this.f4 = argf4 this.f5 = argf5 this.f6 = argf6 this.f7 = argf7 this.f8 = argf8 this.f9 = argf9 this.f10 = argf10 } /** * Copy struct (shallow copy) * @this {!StructVector} * @param {!StructVector} other Other struct * @returns {!StructVector} This struct */ copy (other) { if (other.f1 != null) { this.f1 = [] for (let item of other.f1) { if (item != null) { let tempItem tempItem = item this.f1.push(tempItem) } else { this.f1.push(undefined) } } } else { this.f1 = undefined } if (other.f2 != null) { this.f2 = [] for (let item of other.f2) { if (item != null) { let tempItem tempItem = item this.f2.push(tempItem) } else { this.f2.push(undefined) } } } else { this.f2 = undefined } if (other.f3 != null) { this.f3 = [] for (let item of other.f3) { if (item != null) { let tempItem if (typeof item === 'string') { // noinspection JSUnresolvedFunction tempItem = Uint8Array.from(Buffer.from(item, 'base64')) } else { tempItem = Uint8Array.from(item) } this.f3.push(tempItem) } else { this.f3.push(undefined) } } } else { this.f3 = undefined } if (other.f4 != null) { this.f4 = [] for (let item of other.f4) { if (item != null) { let tempItem if (typeof item === 'string') { // noinspection JSUnresolvedFunction tempItem = Uint8Array.from(Buffer.from(item, 'base64')) } else { tempItem = Uint8Array.from(item) } this.f4.push(tempItem) } else { this.f4.push(undefined) } } } else { this.f4 = undefined } if (other.f5 != null) { this.f5 = [] for (let item of other.f5) { if (item != null) { let tempItem tempItem = EnumSimple.fromObject(item) this.f5.push(tempItem) } else { this.f5.push(undefined) } } } else { this.f5 = undefined } if (other.f6 != null) { this.f6 = [] for (let item of other.f6) { if (item != null) { let tempItem tempItem = EnumSimple.fromObject(item) this.f6.push(tempItem) } else { this.f6.push(undefined) } } } else { this.f6 = undefined } if (other.f7 != null) { this.f7 = [] for (let item of other.f7) { if (item != null) { let tempItem tempItem = FlagsSimple.fromObject(item) this.f7.push(tempItem) } else { this.f7.push(undefined) } } } else { this.f7 = undefined } if (other.f8 != null) { this.f8 = [] for (let item of other.f8) { if (item != null) { let tempItem tempItem = FlagsSimple.fromObject(item) this.f8.push(tempItem) } else { this.f8.push(undefined) } } } else { this.f8 = undefined } if (other.f9 != null) { this.f9 = [] for (let item of other.f9) { if (item != null) { let tempItem tempItem = StructSimple.fromObject(item) this.f9.push(tempItem) } else { this.f9.push(undefined) } } } else { this.f9 = undefined } if (other.f10 != null) { this.f10 = [] for (let item of other.f10) { if (item != null) { let tempItem tempItem = StructSimple.fromObject(item) this.f10.push(tempItem) } else { this.f10.push(undefined) } } } else { this.f10 = undefined } return this } /** * Clone struct (deep clone) * @this {!StructVector} * @returns {!StructVector} Cloned struct */ clone () { // Serialize the struct to the FBE stream let writer = new StructVectorModel(new fbe.WriteBuffer()) writer.serialize(this) // Deserialize the struct from the FBE stream let reader = new StructVectorModel(new fbe.ReadBuffer()) reader.attachBuffer(writer.buffer) return reader.deserialize().value } /** * Is this struct equal to other one? * @this {!StructVector} * @param {!StructVector} other Other struct * @returns {boolean} Equal result */ eq (other) { if (!(other instanceof StructVector)) { throw new TypeError('Instance of StructVector is required!') } return true } /** * Convert struct to string * @this {!StructVector} * @returns {!string} Struct value string */ toString () { let result = '' result += 'StructVector(' result += 'f1=' if (this.f1 != null) { let first = true result += '[' + this.f1.length + '][' for (let item of this.f1) { result += first ? '' : ',' result += item.toString() first = false } result += ']' } else { result += '[0][]' } result += ',f2=' if (this.f2 != null) { let first = true result += '[' + this.f2.length + '][' for (let item of this.f2) { if (item != null) { result += first ? '' : ',' result += item.toString() } else { result += first ? '' : ',' result += 'null' } first = false } result += ']' } else { result += '[0][]' } result += ',f3=' if (this.f3 != null) { let first = true result += '[' + this.f3.length + '][' for (let item of this.f3) { if (item != null) { result += first ? '' : ',' result += 'bytes[' + item.length + ']' } else { result += first ? '' : ',' result += 'null' } first = false } result += ']' } else { result += '[0][]' } result += ',f4=' if (this.f4 != null) { let first = true result += '[' + this.f4.length + '][' for (let item of this.f4) { if (item != null) { result += first ? '' : ',' result += 'bytes[' + item.length + ']' } else { result += first ? '' : ',' result += 'null' } first = false } result += ']' } else { result += '[0][]' } result += ',f5=' if (this.f5 != null) { let first = true result += '[' + this.f5.length + '][' for (let item of this.f5) { result += first ? '' : ',' result += item.toString() first = false } result += ']' } else { result += '[0][]' } result += ',f6=' if (this.f6 != null) { let first = true result += '[' + this.f6.length + '][' for (let item of this.f6) { if (item != null) { result += first ? '' : ',' result += item.toString() } else { result += first ? '' : ',' result += 'null' } first = false } result += ']' } else { result += '[0][]' } result += ',f7=' if (this.f7 != null) { let first = true result += '[' + this.f7.length + '][' for (let item of this.f7) { result += first ? '' : ',' result += item.toString() first = false } result += ']' } else { result += '[0][]' } result += ',f8=' if (this.f8 != null) { let first = true result += '[' + this.f8.length + '][' for (let item of this.f8) { if (item != null) { result += first ? '' : ',' result += item.toString() } else { result += first ? '' : ',' result += 'null' } first = false } result += ']' } else { result += '[0][]' } result += ',f9=' if (this.f9 != null) { let first = true result += '[' + this.f9.length + '][' for (let item of this.f9) { result += first ? '' : ',' result += item.toString() first = false } result += ']' } else { result += '[0][]' } result += ',f10=' if (this.f10 != null) { let first = true result += '[' + this.f10.length + '][' for (let item of this.f10) { if (item != null) { result += first ? '' : ',' result += item.toString() } else { result += first ? '' : ',' result += 'null' } first = false } result += ']' } else { result += '[0][]' } result += ')' return result } /** * Inspect struct * @this {!StructVector} * @returns {!string} Struct value string */ [util.inspect.custom] () { return this.toString() } /** * Convert struct to JSON * @this {!StructVector} * @returns {!object} Struct value for JSON */ toJSON () { return { f1: ((this.f1 != null) ? Array.from(this.f1, item => ((item != null) ? item : null)) : null), f2: ((this.f2 != null) ? Array.from(this.f2, item => ((item != null) ? item : null)) : null), f3: ((this.f3 != null) ? Array.from(this.f3, item => ((item != null) ? Buffer.from(item).toString('base64') : null)) : null), f4: ((this.f4 != null) ? Array.from(this.f4, item => ((item != null) ? Buffer.from(item).toString('base64') : null)) : null), f5: ((this.f5 != null) ? Array.from(this.f5, item => ((item != null) ? item : null)) : null), f6: ((this.f6 != null) ? Array.from(this.f6, item => ((item != null) ? item : null)) : null), f7: ((this.f7 != null) ? Array.from(this.f7, item => ((item != null) ? item : null)) : null), f8: ((this.f8 != null) ? Array.from(this.f8, item => ((item != null) ? item : null)) : null), f9: ((this.f9 != null) ? Array.from(this.f9, item => ((item != null) ? item : null)) : null), f10: ((this.f10 != null) ? Array.from(this.f10, item => ((item != null) ? item : null)) : null) } } /** * Convert JSON to struct * @param {!string} json JSON string * @returns {!object} Struct value for JSON */ static fromJSON (json) { return StructVector.fromObject(JSON.parse(json)) } /** * Create struct from object value * @param {!StructVector} other Object value * @returns {!StructVector} Created struct */ static fromObject (other) { return new StructVector().copy(other) } /** * Get the FBE type * @this {!StructVector} * @returns {!number} FBE type */ get fbeType () { return StructVector.fbeType } /** * Get the FBE type (static) * @this {!StructVector} * @returns {!number} FBE type */ static get fbeType () { return 130 } } exports.StructVector = StructVector /** * Fast Binary Encoding StructVector field model */ class FieldModelStructVector extends fbe.FieldModel { /** * Initialize field model with the given buffer and offset * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Buffer * @param {!number} offset Offset * @constructor */ constructor (buffer, offset) { super(buffer, offset) this._f1 = new fbe.FieldModelVector(new fbe.FieldModelByte(buffer, 4 + 4), buffer, 4 + 4) this._f2 = new fbe.FieldModelVector(new fbe.FieldModelOptional(new fbe.FieldModelByte(buffer, this._f1.fbeOffset + this._f1.fbeSize), buffer, this._f1.fbeOffset + this._f1.fbeSize), buffer, this._f1.fbeOffset + this._f1.fbeSize) this._f3 = new fbe.FieldModelVector(new fbe.FieldModelBytes(buffer, this._f2.fbeOffset + this._f2.fbeSize), buffer, this._f2.fbeOffset + this._f2.fbeSize) this._f4 = new fbe.FieldModelVector(new fbe.FieldModelOptional(new fbe.FieldModelBytes(buffer, this._f3.fbeOffset + this._f3.fbeSize), buffer, this._f3.fbeOffset + this._f3.fbeSize), buffer, this._f3.fbeOffset + this._f3.fbeSize) this._f5 = new fbe.FieldModelVector(new FieldModelEnumSimple(buffer, this._f4.fbeOffset + this._f4.fbeSize), buffer, this._f4.fbeOffset + this._f4.fbeSize) this._f6 = new fbe.FieldModelVector(new fbe.FieldModelOptional(new FieldModelEnumSimple(buffer, this._f5.fbeOffset + this._f5.fbeSize), buffer, this._f5.fbeOffset + this._f5.fbeSize), buffer, this._f5.fbeOffset + this._f5.fbeSize) this._f7 = new fbe.FieldModelVector(new FieldModelFlagsSimple(buffer, this._f6.fbeOffset + this._f6.fbeSize), buffer, this._f6.fbeOffset + this._f6.fbeSize) this._f8 = new fbe.FieldModelVector(new fbe.FieldModelOptional(new FieldModelFlagsSimple(buffer, this._f7.fbeOffset + this._f7.fbeSize), buffer, this._f7.fbeOffset + this._f7.fbeSize), buffer, this._f7.fbeOffset + this._f7.fbeSize) this._f9 = new fbe.FieldModelVector(new FieldModelStructSimple(buffer, this._f8.fbeOffset + this._f8.fbeSize), buffer, this._f8.fbeOffset + this._f8.fbeSize) this._f10 = new fbe.FieldModelVector(new fbe.FieldModelOptional(new FieldModelStructSimple(buffer, this._f9.fbeOffset + this._f9.fbeSize), buffer, this._f9.fbeOffset + this._f9.fbeSize), buffer, this._f9.fbeOffset + this._f9.fbeSize) } /** * Get the f1 field model * @this {!FieldModelStructVector} * @returns {!fbe.FieldModelVector} f1 field model */ get f1 () { return this._f1 } /** * Get the f2 field model * @this {!FieldModelStructVector} * @returns {!fbe.FieldModelVector} f2 field model */ get f2 () { return this._f2 } /** * Get the f3 field model * @this {!FieldModelStructVector} * @returns {!fbe.FieldModelVector} f3 field model */ get f3 () { return this._f3 } /** * Get the f4 field model * @this {!FieldModelStructVector} * @returns {!fbe.FieldModelVector} f4 field model */ get f4 () { return this._f4 } /** * Get the f5 field model * @this {!FieldModelStructVector} * @returns {!fbe.FieldModelVector} f5 field model */ get f5 () { return this._f5 } /** * Get the f6 field model * @this {!FieldModelStructVector} * @returns {!fbe.FieldModelVector} f6 field model */ get f6 () { return this._f6 } /** * Get the f7 field model * @this {!FieldModelStructVector} * @returns {!fbe.FieldModelVector} f7 field model */ get f7 () { return this._f7 } /** * Get the f8 field model * @this {!FieldModelStructVector} * @returns {!fbe.FieldModelVector} f8 field model */ get f8 () { return this._f8 } /** * Get the f9 field model * @this {!FieldModelStructVector} * @returns {!fbe.FieldModelVector} f9 field model */ get f9 () { return this._f9 } /** * Get the f10 field model * @this {!FieldModelStructVector} * @returns {!fbe.FieldModelVector} f10 field model */ get f10 () { return this._f10 } /** * Get the field size * @this {!FieldModelStructVector} * @returns {!number} Field size */ get fbeSize () { return 4 } /** * Get the field body size * @this {!FieldModelStructVector} * @returns {!number} Field body size */ get fbeBody () { return 4 + 4 + this.f1.fbeSize + this.f2.fbeSize + this.f3.fbeSize + this.f4.fbeSize + this.f5.fbeSize + this.f6.fbeSize + this.f7.fbeSize + this.f8.fbeSize + this.f9.fbeSize + this.f10.fbeSize } /** * Get the field extra size * @this {!FieldModelStructVector} * @returns {!number} Field extra size */ get fbeExtra () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructOffset = this.readUInt32(this.fbeOffset) if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4) > this._buffer.size)) { return 0 } this._buffer.shift(fbeStructOffset) let fbeResult = this.fbeBody + this.f1.fbeExtra + this.f2.fbeExtra + this.f3.fbeExtra + this.f4.fbeExtra + this.f5.fbeExtra + this.f6.fbeExtra + this.f7.fbeExtra + this.f8.fbeExtra + this.f9.fbeExtra + this.f10.fbeExtra this._buffer.unshift(fbeStructOffset) return fbeResult } /** * Get the field type * @this {!FieldModelStructVector} * @returns {!number} Field type */ get fbeType () { return FieldModelStructVector.fbeType } /** * Get the field type (static) * @this {!FieldModelStructVector} * @returns {!number} Field type */ static get fbeType () { return 130 } /** * Check if the struct value is valid * @this {!FieldModelStructVector} * @param {!boolean} fbeVerifyType Verify model type flag, defaults is true * @returns {!boolean} Field model valid state */ verify (fbeVerifyType = true) { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return true } let fbeStructOffset = this.readUInt32(this.fbeOffset) if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4 + 4) > this._buffer.size)) { return false } let fbeStructSize = this.readUInt32(fbeStructOffset) if (fbeStructSize < (4 + 4)) { return false } let fbeStructType = this.readUInt32(fbeStructOffset + 4) if (fbeVerifyType && (fbeStructType !== this.fbeType)) { return false } this._buffer.shift(fbeStructOffset) let fbeResult = this.verifyFields(fbeStructSize) this._buffer.unshift(fbeStructOffset) return fbeResult } /** * Check if the struct fields are valid * @this {!FieldModelStructVector} * @param {!number} fbeStructSize FBE struct size * @returns {!boolean} Field model valid state */ verifyFields (fbeStructSize) { let fbeCurrentSize = 4 + 4 if ((fbeCurrentSize + this.f1.fbeSize) > fbeStructSize) { return true } if (!this.f1.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1.fbeSize if ((fbeCurrentSize + this.f2.fbeSize) > fbeStructSize) { return true } if (!this.f2.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f2.fbeSize if ((fbeCurrentSize + this.f3.fbeSize) > fbeStructSize) { return true } if (!this.f3.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f3.fbeSize if ((fbeCurrentSize + this.f4.fbeSize) > fbeStructSize) { return true } if (!this.f4.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f4.fbeSize if ((fbeCurrentSize + this.f5.fbeSize) > fbeStructSize) { return true } if (!this.f5.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f5.fbeSize if ((fbeCurrentSize + this.f6.fbeSize) > fbeStructSize) { return true } if (!this.f6.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f6.fbeSize if ((fbeCurrentSize + this.f7.fbeSize) > fbeStructSize) { return true } if (!this.f7.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f7.fbeSize if ((fbeCurrentSize + this.f8.fbeSize) > fbeStructSize) { return true } if (!this.f8.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f8.fbeSize if ((fbeCurrentSize + this.f9.fbeSize) > fbeStructSize) { return true } if (!this.f9.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f9.fbeSize if ((fbeCurrentSize + this.f10.fbeSize) > fbeStructSize) { return true } if (!this.f10.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f10.fbeSize return true } /** * Get the struct value (begin phase) * @this {!FieldModelStructVector} * @returns {!number} Field model begin offset */ getBegin () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructOffset = this.readUInt32(this.fbeOffset) console.assert((fbeStructOffset > 0) && ((this._buffer.offset + fbeStructOffset + 4 + 4) <= this._buffer.size), 'Model is broken!') if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4 + 4) > this._buffer.size)) { return 0 } let fbeStructSize = this.readUInt32(fbeStructOffset) console.assert((fbeStructSize >= (4 + 4)), 'Model is broken!') if (fbeStructSize < (4 + 4)) { return 0 } this._buffer.shift(fbeStructOffset) return fbeStructOffset } /** * Get the struct value (end phase) * @this {!FieldModelStructVector} * @param {!number} fbeBegin Field model begin offset */ getEnd (fbeBegin) { this._buffer.unshift(fbeBegin) } /** * Get the struct value * @this {!FieldModelStructVector} * @param {!StructVector} fbeValue Default value, defaults is new StructVector() * @returns {!StructVector} StructVector value */ get (fbeValue = new StructVector()) { let fbeBegin = this.getBegin() if (fbeBegin === 0) { return fbeValue } let fbeStructSize = this.readUInt32(0) this.getFields(fbeValue, fbeStructSize) this.getEnd(fbeBegin) return fbeValue } /** * Get the struct fields values * @this {!FieldModelStructVector} * @param {!StructVector} fbeValue StructVector value * @param {!number} fbeStructSize Struct size */ getFields (fbeValue, fbeStructSize) { let fbeCurrentSize = 4 + 4 if ((fbeCurrentSize + this.f1.fbeSize) <= fbeStructSize) { this.f1.get(fbeValue.f1) } else { fbeValue.f1.length = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1.fbeSize if ((fbeCurrentSize + this.f2.fbeSize) <= fbeStructSize) { this.f2.get(fbeValue.f2) } else { fbeValue.f2.length = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f2.fbeSize if ((fbeCurrentSize + this.f3.fbeSize) <= fbeStructSize) { this.f3.get(fbeValue.f3) } else { fbeValue.f3.length = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f3.fbeSize if ((fbeCurrentSize + this.f4.fbeSize) <= fbeStructSize) { this.f4.get(fbeValue.f4) } else { fbeValue.f4.length = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f4.fbeSize if ((fbeCurrentSize + this.f5.fbeSize) <= fbeStructSize) { this.f5.get(fbeValue.f5) } else { fbeValue.f5.length = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f5.fbeSize if ((fbeCurrentSize + this.f6.fbeSize) <= fbeStructSize) { this.f6.get(fbeValue.f6) } else { fbeValue.f6.length = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f6.fbeSize if ((fbeCurrentSize + this.f7.fbeSize) <= fbeStructSize) { this.f7.get(fbeValue.f7) } else { fbeValue.f7.length = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f7.fbeSize if ((fbeCurrentSize + this.f8.fbeSize) <= fbeStructSize) { this.f8.get(fbeValue.f8) } else { fbeValue.f8.length = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f8.fbeSize if ((fbeCurrentSize + this.f9.fbeSize) <= fbeStructSize) { this.f9.get(fbeValue.f9) } else { fbeValue.f9.length = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f9.fbeSize if ((fbeCurrentSize + this.f10.fbeSize) <= fbeStructSize) { this.f10.get(fbeValue.f10) } else { fbeValue.f10.length = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f10.fbeSize } /** * Set the struct value (begin phase) * @this {!FieldModelStructVector} * @returns {!number} Field model begin offset */ setBegin () { console.assert(((this._buffer.offset + this.fbeOffset + this.fbeSize) <= this._buffer.size), 'Model is broken!') if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructSize = this.fbeBody let fbeStructOffset = this._buffer.allocate(fbeStructSize) - this._buffer.offset console.assert((fbeStructOffset > 0) && ((this._buffer.offset + fbeStructOffset + fbeStructSize) <= this._buffer.size), 'Model is broken!') if ((fbeStructOffset <= 0) || ((this._buffer.offset + fbeStructOffset + fbeStructSize) > this._buffer.size)) { return 0 } this.writeUInt32(this.fbeOffset, fbeStructOffset) this.writeUInt32(fbeStructOffset, fbeStructSize) this.writeUInt32(fbeStructOffset + 4, this.fbeType) this._buffer.shift(fbeStructOffset) return fbeStructOffset } /** * Set the struct value (end phase) * @this {!FieldModelStructVector} * @param {!number} fbeBegin Field model begin offset */ setEnd (fbeBegin) { this._buffer.unshift(fbeBegin) } /** * Set the struct value * @this {!FieldModelStructVector} * @param {!StructVector} fbeValue StructVector value */ set (fbeValue) { let fbeBegin = this.setBegin() if (fbeBegin === 0) { return } this.setFields(fbeValue) this.setEnd(fbeBegin) } /** * Set the struct fields values * @this {!FieldModelStructVector} * @param {StructVector} fbeValue StructVector value */ setFields (fbeValue) { this.f1.set(fbeValue.f1) this.f2.set(fbeValue.f2) this.f3.set(fbeValue.f3) this.f4.set(fbeValue.f4) this.f5.set(fbeValue.f5) this.f6.set(fbeValue.f6) this.f7.set(fbeValue.f7) this.f8.set(fbeValue.f8) this.f9.set(fbeValue.f9) this.f10.set(fbeValue.f10) } } exports.FieldModelStructVector = FieldModelStructVector /** * Fast Binary Encoding StructVector model */ class StructVectorModel extends fbe.Model { /** * Initialize model with the given buffer * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Read/Write buffer, defaults is new fbe.WriteBuffer() * @constructor */ constructor (buffer = new fbe.WriteBuffer()) { super(buffer) this._model = new FieldModelStructVector(this.buffer, 4) } /** * Get the StructVector model * @this {!StructVectorModel} * @returns {!FieldModelStructVector} model StructVector model */ get model () { return this._model } /** * Get the model size * @this {!StructVectorModel} * @returns {!number} Model size */ get fbeSize () { return this.model.fbeSize + this.model.fbeExtra } /** * Get the model type * @this {!StructVectorModel} * @returns {!number} Model type */ get fbeType () { return StructVectorModel.fbeType } /** * Get the model type (static) * @this {!StructVectorModel} * @returns {!number} Model type */ static get fbeType () { return FieldModelStructVector.fbeType } /** * Check if the struct value is valid * @this {!StructVectorModel} * @returns {!boolean} Model valid state */ verify () { if ((this.buffer.offset + this.model.fbeOffset - 4) > this.buffer.size) { return false } let fbeFullSize = this.readUInt32(this.model.fbeOffset - 4) if (fbeFullSize < this.model.fbeSize) { return false } return this.model.verify() } /** * Create a new model (begin phase) * @this {!StructVectorModel} * @returns {!number} Model begin offset */ createBegin () { return this.buffer.allocate(4 + this.model.fbeSize) } /** * Create a new model (end phase) * @this {!StructVectorModel} * @param {!number} fbeBegin Model begin offset */ createEnd (fbeBegin) { let fbeEnd = this.buffer.size let fbeFullSize = fbeEnd - fbeBegin this.writeUInt32(this.model.fbeOffset - 4, fbeFullSize) return fbeFullSize } /** * Serialize the struct value * @this {!StructVectorModel} * @param {!StructVector} value StructVector value * @return {!number} Model begin offset */ serialize (value) { let fbeBegin = this.createBegin() this.model.set(value) return this.createEnd(fbeBegin) } /** * Deserialize the struct value * @this {!StructVectorModel} * @param {!StructVector} value StructVector value, defaults is new StructVector() * @return {!object} Deserialized StructVector value and its size */ deserialize (value = new StructVector()) { if ((this.buffer.offset + this.model.fbeOffset - 4) > this.buffer.size) { return { value: new StructVector(), size: 0 } } let fbeFullSize = this.readUInt32(this.model.fbeOffset - 4) console.assert((fbeFullSize >= this.model.fbeSize), 'Model is broken!') if (fbeFullSize < this.model.fbeSize) { return { value: new StructVector(), size: 0 } } this.model.get(value) return { value, size: fbeFullSize } } /** * Move to the next struct value * @this {!StructVectorModel} * @param {!number} prev Previous StructVector model size */ next (prev) { this.model.fbeShift(prev) } } exports.StructVectorModel = StructVectorModel /** * Fast Binary Encoding StructVector final model */ class FinalModelStructVector extends fbe.FinalModel { /** * Initialize final model with the given buffer and offset * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Buffer * @param {!number} offset Offset * @constructor */ constructor (buffer, offset) { super(buffer, offset) this._f1 = new fbe.FinalModelVector(new fbe.FinalModelByte(buffer, 0), buffer, 0) this._f2 = new fbe.FinalModelVector(new fbe.FinalModelOptional(new fbe.FinalModelByte(buffer, 0), buffer, 0), buffer, 0) this._f3 = new fbe.FinalModelVector(new fbe.FinalModelBytes(buffer, 0), buffer, 0) this._f4 = new fbe.FinalModelVector(new fbe.FinalModelOptional(new fbe.FinalModelBytes(buffer, 0), buffer, 0), buffer, 0) this._f5 = new fbe.FinalModelVector(new FinalModelEnumSimple(buffer, 0), buffer, 0) this._f6 = new fbe.FinalModelVector(new fbe.FinalModelOptional(new FinalModelEnumSimple(buffer, 0), buffer, 0), buffer, 0) this._f7 = new fbe.FinalModelVector(new FinalModelFlagsSimple(buffer, 0), buffer, 0) this._f8 = new fbe.FinalModelVector(new fbe.FinalModelOptional(new FinalModelFlagsSimple(buffer, 0), buffer, 0), buffer, 0) this._f9 = new fbe.FinalModelVector(new FinalModelStructSimple(buffer, 0), buffer, 0) this._f10 = new fbe.FinalModelVector(new fbe.FinalModelOptional(new FinalModelStructSimple(buffer, 0), buffer, 0), buffer, 0) } /** * Get the f1 final model * @this {!FinalModelStructVector} * @returns {!fbe.FinalModelVector} f1 final model */ get f1 () { return this._f1 } /** * Get the f2 final model * @this {!FinalModelStructVector} * @returns {!fbe.FinalModelVector} f2 final model */ get f2 () { return this._f2 } /** * Get the f3 final model * @this {!FinalModelStructVector} * @returns {!fbe.FinalModelVector} f3 final model */ get f3 () { return this._f3 } /** * Get the f4 final model * @this {!FinalModelStructVector} * @returns {!fbe.FinalModelVector} f4 final model */ get f4 () { return this._f4 } /** * Get the f5 final model * @this {!FinalModelStructVector} * @returns {!fbe.FinalModelVector} f5 final model */ get f5 () { return this._f5 } /** * Get the f6 final model * @this {!FinalModelStructVector} * @returns {!fbe.FinalModelVector} f6 final model */ get f6 () { return this._f6 } /** * Get the f7 final model * @this {!FinalModelStructVector} * @returns {!fbe.FinalModelVector} f7 final model */ get f7 () { return this._f7 } /** * Get the f8 final model * @this {!FinalModelStructVector} * @returns {!fbe.FinalModelVector} f8 final model */ get f8 () { return this._f8 } /** * Get the f9 final model * @this {!FinalModelStructVector} * @returns {!fbe.FinalModelVector} f9 final model */ get f9 () { return this._f9 } /** * Get the f10 final model * @this {!FinalModelStructVector} * @returns {!fbe.FinalModelVector} f10 final model */ get f10 () { return this._f10 } /** * Get the allocation size * @this {!FinalModelStructVector} * @param {!StructVector} fbeValue StructVector value * @returns {!number} Allocation size */ fbeAllocationSize (fbeValue) { return 0 + this.f1.fbeAllocationSize(fbeValue.f1) + this.f2.fbeAllocationSize(fbeValue.f2) + this.f3.fbeAllocationSize(fbeValue.f3) + this.f4.fbeAllocationSize(fbeValue.f4) + this.f5.fbeAllocationSize(fbeValue.f5) + this.f6.fbeAllocationSize(fbeValue.f6) + this.f7.fbeAllocationSize(fbeValue.f7) + this.f8.fbeAllocationSize(fbeValue.f8) + this.f9.fbeAllocationSize(fbeValue.f9) + this.f10.fbeAllocationSize(fbeValue.f10) } /** * Get the final type * @this {!FinalModelStructVector} * @returns {!number} Final type */ get fbeType () { return FinalModelStructVector.fbeType } /** * Get the final type (static) * @this {!FinalModelStructVector} * @returns {!number} Final type */ static get fbeType () { return 130 } /** * Check if the struct value is valid * @this {!FinalModelStructVector} * @returns {!number} Final model size or Number.MAX_SAFE_INTEGER in case of any error */ verify () { this._buffer.shift(this.fbeOffset) let fbeResult = this.verifyFields() this._buffer.unshift(this.fbeOffset) return fbeResult } /** * Check if the struct fields are valid * @this {!FinalModelStructVector} * @returns {!number} Final model size or Number.MAX_SAFE_INTEGER in case of any error */ verifyFields () { let fbeCurrentOffset = 0 let fbeFieldSize this.f1.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f2.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f2.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f3.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f3.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f4.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f4.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f5.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f5.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f6.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f6.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f7.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f7.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f8.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f8.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f9.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f9.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f10.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f10.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize return fbeCurrentOffset } /** * Get the struct value * @this {!FinalModelStructVector} * @param {!StructVector} fbeValue StructVector value, defaults is new StructVector() * @returns {!object} Result struct value and its size */ get (fbeValue = new StructVector()) { this._buffer.shift(this.fbeOffset) let fbeSize = this.getFields(fbeValue) this._buffer.unshift(this.fbeOffset) return { value: fbeValue, size: fbeSize } } /** * Get the struct fields values * @this {!FinalModelStructVector} * @param {!StructVector} fbeValue StructVector value * @returns {!number} Struct size */ getFields (fbeValue) { let fbeCurrentOffset = 0 let fbeCurrentSize = 0 let fbeResult this.f1.fbeOffset = fbeCurrentOffset fbeResult = this.f1.get(fbeValue.f1) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f2.fbeOffset = fbeCurrentOffset fbeResult = this.f2.get(fbeValue.f2) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f3.fbeOffset = fbeCurrentOffset fbeResult = this.f3.get(fbeValue.f3) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f4.fbeOffset = fbeCurrentOffset fbeResult = this.f4.get(fbeValue.f4) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f5.fbeOffset = fbeCurrentOffset fbeResult = this.f5.get(fbeValue.f5) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f6.fbeOffset = fbeCurrentOffset fbeResult = this.f6.get(fbeValue.f6) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f7.fbeOffset = fbeCurrentOffset fbeResult = this.f7.get(fbeValue.f7) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f8.fbeOffset = fbeCurrentOffset fbeResult = this.f8.get(fbeValue.f8) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f9.fbeOffset = fbeCurrentOffset fbeResult = this.f9.get(fbeValue.f9) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f10.fbeOffset = fbeCurrentOffset fbeResult = this.f10.get(fbeValue.f10) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size return fbeCurrentSize } /** * Set the struct value * @this {!FinalModelStructVector} * @param {!StructVector} fbeValue StructVector value * @returns {!number} Final model size */ set (fbeValue) { this._buffer.shift(this.fbeOffset) let fbeSize = this.setFields(fbeValue) this._buffer.unshift(this.fbeOffset) return fbeSize } /** * Set the struct fields values * @this {!FinalModelStructVector} * @param {StructVector} fbeValue StructVector value * @returns {!number} Final model size */ setFields (fbeValue) { let fbeCurrentOffset = 0 let fbeCurrentSize = 0 let fbeFieldSize this.f1.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1.set(fbeValue.f1) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f2.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f2.set(fbeValue.f2) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f3.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f3.set(fbeValue.f3) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f4.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f4.set(fbeValue.f4) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f5.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f5.set(fbeValue.f5) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f6.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f6.set(fbeValue.f6) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f7.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f7.set(fbeValue.f7) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f8.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f8.set(fbeValue.f8) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f9.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f9.set(fbeValue.f9) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f10.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f10.set(fbeValue.f10) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize return fbeCurrentSize } } exports.FinalModelStructVector = FinalModelStructVector /** * Fast Binary Encoding StructVector final model */ class StructVectorFinalModel extends fbe.Model { /** * Initialize final model with the given buffer * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Read/Write buffer, defaults is new fbe.WriteBuffer() * @constructor */ constructor (buffer = new fbe.WriteBuffer()) { super(buffer) this._model = new FinalModelStructVector(this.buffer, 8) } /** * Get the model type * @this {!StructVectorFinalModel} * @returns {!number} Model type */ get fbeType () { return StructVectorFinalModel.fbeType } /** * Get the model type (static) * @this {!StructVectorFinalModel} * @returns {!number} Model type */ static get fbeType () { return FinalModelStructVector.fbeType } /** * Check if the struct value is valid * @this {!StructVectorFinalModel} * @returns {!boolean} Model valid state */ verify () { if ((this.buffer.offset + this._model.fbeOffset) > this.buffer.size) { return false } let fbeStructSize = this.readUInt32(this._model.fbeOffset - 8) let fbeStructType = this.readUInt32(this._model.fbeOffset - 4) if ((fbeStructSize <= 0) || (fbeStructType !== this.fbeType)) { return false } return ((8 + this._model.verify()) === fbeStructSize) } /** * Serialize the struct value * @this {!StructVectorFinalModel} * @param {!StructVector} value StructVector value * @return {!number} Struct size */ serialize (value) { let fbeInitialSize = this.buffer.size let fbeStructType = this.fbeType let fbeStructSize = 8 + this._model.fbeAllocationSize(value) let fbeStructOffset = this.buffer.allocate(fbeStructSize) - this.buffer.offset console.assert(((this.buffer.offset + fbeStructOffset + fbeStructSize) <= this.buffer.size), 'Model is broken!') if ((this.buffer.offset + fbeStructOffset + fbeStructSize) > this.buffer.size) { return 0 } fbeStructSize = 8 + this._model.set(value) this.buffer.resize(fbeInitialSize + fbeStructSize) this.writeUInt32(this._model.fbeOffset - 8, fbeStructSize) this.writeUInt32(this._model.fbeOffset - 4, fbeStructType) return fbeStructSize } /** * Deserialize the struct value * @this {!StructVectorFinalModel} * @param {!StructVector} value StructVector value, defaults is new StructVector() * @return {!object} Deserialized StructVector value and its size */ deserialize (value = new StructVector()) { console.assert(((this.buffer.offset + this._model.fbeOffset) <= this.buffer.size), 'Model is broken!') if ((this.buffer.offset + this._model.fbeOffset) > this.buffer.size) { return { value: new StructVector(), size: 0 } } let fbeStructSize = this.readUInt32(this._model.fbeOffset - 8) let fbeStructType = this.readUInt32(this._model.fbeOffset - 4) console.assert(((fbeStructSize > 0) && (fbeStructType === this.fbeType)), 'Model is broken!') if ((fbeStructSize <= 0) || (fbeStructType !== this.fbeType)) { return { value: new StructVector(), size: 8 } } let fbeResult = this._model.get(value) return { value: fbeResult.value, size: (8 + fbeResult.size) } } /** * Move to the next struct value * @this {!StructVectorFinalModel} * @param {!number} prev Previous StructVector model size */ next (prev) { this._model.fbeShift(prev) } } exports.StructVectorFinalModel = StructVectorFinalModel /** * StructList struct */ class StructList { /** * Initialize struct * @param {!Array=} f1 * @param {Array=} f2 * @param {!Array=} f3 * @param {Array=} f4 * @param {!Array=} f5 * @param {Array=} f6 * @param {!Array=} f7 * @param {Array=} f8 * @param {!Array=} f9 * @param {Array=} f10 * @constructor */ constructor (argf1 = [], argf2 = [], argf3 = [], argf4 = [], argf5 = [], argf6 = [], argf7 = [], argf8 = [], argf9 = [], argf10 = []) { this.f1 = argf1 this.f2 = argf2 this.f3 = argf3 this.f4 = argf4 this.f5 = argf5 this.f6 = argf6 this.f7 = argf7 this.f8 = argf8 this.f9 = argf9 this.f10 = argf10 } /** * Copy struct (shallow copy) * @this {!StructList} * @param {!StructList} other Other struct * @returns {!StructList} This struct */ copy (other) { if (other.f1 != null) { this.f1 = [] for (let item of other.f1) { if (item != null) { let tempItem tempItem = item this.f1.push(tempItem) } else { this.f1.push(undefined) } } } else { this.f1 = undefined } if (other.f2 != null) { this.f2 = [] for (let item of other.f2) { if (item != null) { let tempItem tempItem = item this.f2.push(tempItem) } else { this.f2.push(undefined) } } } else { this.f2 = undefined } if (other.f3 != null) { this.f3 = [] for (let item of other.f3) { if (item != null) { let tempItem if (typeof item === 'string') { // noinspection JSUnresolvedFunction tempItem = Uint8Array.from(Buffer.from(item, 'base64')) } else { tempItem = Uint8Array.from(item) } this.f3.push(tempItem) } else { this.f3.push(undefined) } } } else { this.f3 = undefined } if (other.f4 != null) { this.f4 = [] for (let item of other.f4) { if (item != null) { let tempItem if (typeof item === 'string') { // noinspection JSUnresolvedFunction tempItem = Uint8Array.from(Buffer.from(item, 'base64')) } else { tempItem = Uint8Array.from(item) } this.f4.push(tempItem) } else { this.f4.push(undefined) } } } else { this.f4 = undefined } if (other.f5 != null) { this.f5 = [] for (let item of other.f5) { if (item != null) { let tempItem tempItem = EnumSimple.fromObject(item) this.f5.push(tempItem) } else { this.f5.push(undefined) } } } else { this.f5 = undefined } if (other.f6 != null) { this.f6 = [] for (let item of other.f6) { if (item != null) { let tempItem tempItem = EnumSimple.fromObject(item) this.f6.push(tempItem) } else { this.f6.push(undefined) } } } else { this.f6 = undefined } if (other.f7 != null) { this.f7 = [] for (let item of other.f7) { if (item != null) { let tempItem tempItem = FlagsSimple.fromObject(item) this.f7.push(tempItem) } else { this.f7.push(undefined) } } } else { this.f7 = undefined } if (other.f8 != null) { this.f8 = [] for (let item of other.f8) { if (item != null) { let tempItem tempItem = FlagsSimple.fromObject(item) this.f8.push(tempItem) } else { this.f8.push(undefined) } } } else { this.f8 = undefined } if (other.f9 != null) { this.f9 = [] for (let item of other.f9) { if (item != null) { let tempItem tempItem = StructSimple.fromObject(item) this.f9.push(tempItem) } else { this.f9.push(undefined) } } } else { this.f9 = undefined } if (other.f10 != null) { this.f10 = [] for (let item of other.f10) { if (item != null) { let tempItem tempItem = StructSimple.fromObject(item) this.f10.push(tempItem) } else { this.f10.push(undefined) } } } else { this.f10 = undefined } return this } /** * Clone struct (deep clone) * @this {!StructList} * @returns {!StructList} Cloned struct */ clone () { // Serialize the struct to the FBE stream let writer = new StructListModel(new fbe.WriteBuffer()) writer.serialize(this) // Deserialize the struct from the FBE stream let reader = new StructListModel(new fbe.ReadBuffer()) reader.attachBuffer(writer.buffer) return reader.deserialize().value } /** * Is this struct equal to other one? * @this {!StructList} * @param {!StructList} other Other struct * @returns {boolean} Equal result */ eq (other) { if (!(other instanceof StructList)) { throw new TypeError('Instance of StructList is required!') } return true } /** * Convert struct to string * @this {!StructList} * @returns {!string} Struct value string */ toString () { let result = '' result += 'StructList(' result += 'f1=' if (this.f1 != null) { let first = true result += '[' + this.f1.length + ']<' for (let item of this.f1) { result += first ? '' : ',' result += item.toString() first = false } result += '>' } else { result += '[0]<>' } result += ',f2=' if (this.f2 != null) { let first = true result += '[' + this.f2.length + ']<' for (let item of this.f2) { if (item != null) { result += first ? '' : ',' result += item.toString() } else { result += first ? '' : ',' result += 'null' } first = false } result += '>' } else { result += '[0]<>' } result += ',f3=' if (this.f3 != null) { let first = true result += '[' + this.f3.length + ']<' for (let item of this.f3) { if (item != null) { result += first ? '' : ',' result += 'bytes[' + item.length + ']' } else { result += first ? '' : ',' result += 'null' } first = false } result += '>' } else { result += '[0]<>' } result += ',f4=' if (this.f4 != null) { let first = true result += '[' + this.f4.length + ']<' for (let item of this.f4) { if (item != null) { result += first ? '' : ',' result += 'bytes[' + item.length + ']' } else { result += first ? '' : ',' result += 'null' } first = false } result += '>' } else { result += '[0]<>' } result += ',f5=' if (this.f5 != null) { let first = true result += '[' + this.f5.length + ']<' for (let item of this.f5) { result += first ? '' : ',' result += item.toString() first = false } result += '>' } else { result += '[0]<>' } result += ',f6=' if (this.f6 != null) { let first = true result += '[' + this.f6.length + ']<' for (let item of this.f6) { if (item != null) { result += first ? '' : ',' result += item.toString() } else { result += first ? '' : ',' result += 'null' } first = false } result += '>' } else { result += '[0]<>' } result += ',f7=' if (this.f7 != null) { let first = true result += '[' + this.f7.length + ']<' for (let item of this.f7) { result += first ? '' : ',' result += item.toString() first = false } result += '>' } else { result += '[0]<>' } result += ',f8=' if (this.f8 != null) { let first = true result += '[' + this.f8.length + ']<' for (let item of this.f8) { if (item != null) { result += first ? '' : ',' result += item.toString() } else { result += first ? '' : ',' result += 'null' } first = false } result += '>' } else { result += '[0]<>' } result += ',f9=' if (this.f9 != null) { let first = true result += '[' + this.f9.length + ']<' for (let item of this.f9) { result += first ? '' : ',' result += item.toString() first = false } result += '>' } else { result += '[0]<>' } result += ',f10=' if (this.f10 != null) { let first = true result += '[' + this.f10.length + ']<' for (let item of this.f10) { if (item != null) { result += first ? '' : ',' result += item.toString() } else { result += first ? '' : ',' result += 'null' } first = false } result += '>' } else { result += '[0]<>' } result += ')' return result } /** * Inspect struct * @this {!StructList} * @returns {!string} Struct value string */ [util.inspect.custom] () { return this.toString() } /** * Convert struct to JSON * @this {!StructList} * @returns {!object} Struct value for JSON */ toJSON () { return { f1: ((this.f1 != null) ? Array.from(this.f1, item => ((item != null) ? item : null)) : null), f2: ((this.f2 != null) ? Array.from(this.f2, item => ((item != null) ? item : null)) : null), f3: ((this.f3 != null) ? Array.from(this.f3, item => ((item != null) ? Buffer.from(item).toString('base64') : null)) : null), f4: ((this.f4 != null) ? Array.from(this.f4, item => ((item != null) ? Buffer.from(item).toString('base64') : null)) : null), f5: ((this.f5 != null) ? Array.from(this.f5, item => ((item != null) ? item : null)) : null), f6: ((this.f6 != null) ? Array.from(this.f6, item => ((item != null) ? item : null)) : null), f7: ((this.f7 != null) ? Array.from(this.f7, item => ((item != null) ? item : null)) : null), f8: ((this.f8 != null) ? Array.from(this.f8, item => ((item != null) ? item : null)) : null), f9: ((this.f9 != null) ? Array.from(this.f9, item => ((item != null) ? item : null)) : null), f10: ((this.f10 != null) ? Array.from(this.f10, item => ((item != null) ? item : null)) : null) } } /** * Convert JSON to struct * @param {!string} json JSON string * @returns {!object} Struct value for JSON */ static fromJSON (json) { return StructList.fromObject(JSON.parse(json)) } /** * Create struct from object value * @param {!StructList} other Object value * @returns {!StructList} Created struct */ static fromObject (other) { return new StructList().copy(other) } /** * Get the FBE type * @this {!StructList} * @returns {!number} FBE type */ get fbeType () { return StructList.fbeType } /** * Get the FBE type (static) * @this {!StructList} * @returns {!number} FBE type */ static get fbeType () { return 131 } } exports.StructList = StructList /** * Fast Binary Encoding StructList field model */ class FieldModelStructList extends fbe.FieldModel { /** * Initialize field model with the given buffer and offset * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Buffer * @param {!number} offset Offset * @constructor */ constructor (buffer, offset) { super(buffer, offset) this._f1 = new fbe.FieldModelVector(new fbe.FieldModelByte(buffer, 4 + 4), buffer, 4 + 4) this._f2 = new fbe.FieldModelVector(new fbe.FieldModelOptional(new fbe.FieldModelByte(buffer, this._f1.fbeOffset + this._f1.fbeSize), buffer, this._f1.fbeOffset + this._f1.fbeSize), buffer, this._f1.fbeOffset + this._f1.fbeSize) this._f3 = new fbe.FieldModelVector(new fbe.FieldModelBytes(buffer, this._f2.fbeOffset + this._f2.fbeSize), buffer, this._f2.fbeOffset + this._f2.fbeSize) this._f4 = new fbe.FieldModelVector(new fbe.FieldModelOptional(new fbe.FieldModelBytes(buffer, this._f3.fbeOffset + this._f3.fbeSize), buffer, this._f3.fbeOffset + this._f3.fbeSize), buffer, this._f3.fbeOffset + this._f3.fbeSize) this._f5 = new fbe.FieldModelVector(new FieldModelEnumSimple(buffer, this._f4.fbeOffset + this._f4.fbeSize), buffer, this._f4.fbeOffset + this._f4.fbeSize) this._f6 = new fbe.FieldModelVector(new fbe.FieldModelOptional(new FieldModelEnumSimple(buffer, this._f5.fbeOffset + this._f5.fbeSize), buffer, this._f5.fbeOffset + this._f5.fbeSize), buffer, this._f5.fbeOffset + this._f5.fbeSize) this._f7 = new fbe.FieldModelVector(new FieldModelFlagsSimple(buffer, this._f6.fbeOffset + this._f6.fbeSize), buffer, this._f6.fbeOffset + this._f6.fbeSize) this._f8 = new fbe.FieldModelVector(new fbe.FieldModelOptional(new FieldModelFlagsSimple(buffer, this._f7.fbeOffset + this._f7.fbeSize), buffer, this._f7.fbeOffset + this._f7.fbeSize), buffer, this._f7.fbeOffset + this._f7.fbeSize) this._f9 = new fbe.FieldModelVector(new FieldModelStructSimple(buffer, this._f8.fbeOffset + this._f8.fbeSize), buffer, this._f8.fbeOffset + this._f8.fbeSize) this._f10 = new fbe.FieldModelVector(new fbe.FieldModelOptional(new FieldModelStructSimple(buffer, this._f9.fbeOffset + this._f9.fbeSize), buffer, this._f9.fbeOffset + this._f9.fbeSize), buffer, this._f9.fbeOffset + this._f9.fbeSize) } /** * Get the f1 field model * @this {!FieldModelStructList} * @returns {!fbe.FieldModelVector} f1 field model */ get f1 () { return this._f1 } /** * Get the f2 field model * @this {!FieldModelStructList} * @returns {!fbe.FieldModelVector} f2 field model */ get f2 () { return this._f2 } /** * Get the f3 field model * @this {!FieldModelStructList} * @returns {!fbe.FieldModelVector} f3 field model */ get f3 () { return this._f3 } /** * Get the f4 field model * @this {!FieldModelStructList} * @returns {!fbe.FieldModelVector} f4 field model */ get f4 () { return this._f4 } /** * Get the f5 field model * @this {!FieldModelStructList} * @returns {!fbe.FieldModelVector} f5 field model */ get f5 () { return this._f5 } /** * Get the f6 field model * @this {!FieldModelStructList} * @returns {!fbe.FieldModelVector} f6 field model */ get f6 () { return this._f6 } /** * Get the f7 field model * @this {!FieldModelStructList} * @returns {!fbe.FieldModelVector} f7 field model */ get f7 () { return this._f7 } /** * Get the f8 field model * @this {!FieldModelStructList} * @returns {!fbe.FieldModelVector} f8 field model */ get f8 () { return this._f8 } /** * Get the f9 field model * @this {!FieldModelStructList} * @returns {!fbe.FieldModelVector} f9 field model */ get f9 () { return this._f9 } /** * Get the f10 field model * @this {!FieldModelStructList} * @returns {!fbe.FieldModelVector} f10 field model */ get f10 () { return this._f10 } /** * Get the field size * @this {!FieldModelStructList} * @returns {!number} Field size */ get fbeSize () { return 4 } /** * Get the field body size * @this {!FieldModelStructList} * @returns {!number} Field body size */ get fbeBody () { return 4 + 4 + this.f1.fbeSize + this.f2.fbeSize + this.f3.fbeSize + this.f4.fbeSize + this.f5.fbeSize + this.f6.fbeSize + this.f7.fbeSize + this.f8.fbeSize + this.f9.fbeSize + this.f10.fbeSize } /** * Get the field extra size * @this {!FieldModelStructList} * @returns {!number} Field extra size */ get fbeExtra () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructOffset = this.readUInt32(this.fbeOffset) if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4) > this._buffer.size)) { return 0 } this._buffer.shift(fbeStructOffset) let fbeResult = this.fbeBody + this.f1.fbeExtra + this.f2.fbeExtra + this.f3.fbeExtra + this.f4.fbeExtra + this.f5.fbeExtra + this.f6.fbeExtra + this.f7.fbeExtra + this.f8.fbeExtra + this.f9.fbeExtra + this.f10.fbeExtra this._buffer.unshift(fbeStructOffset) return fbeResult } /** * Get the field type * @this {!FieldModelStructList} * @returns {!number} Field type */ get fbeType () { return FieldModelStructList.fbeType } /** * Get the field type (static) * @this {!FieldModelStructList} * @returns {!number} Field type */ static get fbeType () { return 131 } /** * Check if the struct value is valid * @this {!FieldModelStructList} * @param {!boolean} fbeVerifyType Verify model type flag, defaults is true * @returns {!boolean} Field model valid state */ verify (fbeVerifyType = true) { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return true } let fbeStructOffset = this.readUInt32(this.fbeOffset) if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4 + 4) > this._buffer.size)) { return false } let fbeStructSize = this.readUInt32(fbeStructOffset) if (fbeStructSize < (4 + 4)) { return false } let fbeStructType = this.readUInt32(fbeStructOffset + 4) if (fbeVerifyType && (fbeStructType !== this.fbeType)) { return false } this._buffer.shift(fbeStructOffset) let fbeResult = this.verifyFields(fbeStructSize) this._buffer.unshift(fbeStructOffset) return fbeResult } /** * Check if the struct fields are valid * @this {!FieldModelStructList} * @param {!number} fbeStructSize FBE struct size * @returns {!boolean} Field model valid state */ verifyFields (fbeStructSize) { let fbeCurrentSize = 4 + 4 if ((fbeCurrentSize + this.f1.fbeSize) > fbeStructSize) { return true } if (!this.f1.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1.fbeSize if ((fbeCurrentSize + this.f2.fbeSize) > fbeStructSize) { return true } if (!this.f2.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f2.fbeSize if ((fbeCurrentSize + this.f3.fbeSize) > fbeStructSize) { return true } if (!this.f3.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f3.fbeSize if ((fbeCurrentSize + this.f4.fbeSize) > fbeStructSize) { return true } if (!this.f4.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f4.fbeSize if ((fbeCurrentSize + this.f5.fbeSize) > fbeStructSize) { return true } if (!this.f5.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f5.fbeSize if ((fbeCurrentSize + this.f6.fbeSize) > fbeStructSize) { return true } if (!this.f6.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f6.fbeSize if ((fbeCurrentSize + this.f7.fbeSize) > fbeStructSize) { return true } if (!this.f7.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f7.fbeSize if ((fbeCurrentSize + this.f8.fbeSize) > fbeStructSize) { return true } if (!this.f8.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f8.fbeSize if ((fbeCurrentSize + this.f9.fbeSize) > fbeStructSize) { return true } if (!this.f9.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f9.fbeSize if ((fbeCurrentSize + this.f10.fbeSize) > fbeStructSize) { return true } if (!this.f10.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f10.fbeSize return true } /** * Get the struct value (begin phase) * @this {!FieldModelStructList} * @returns {!number} Field model begin offset */ getBegin () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructOffset = this.readUInt32(this.fbeOffset) console.assert((fbeStructOffset > 0) && ((this._buffer.offset + fbeStructOffset + 4 + 4) <= this._buffer.size), 'Model is broken!') if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4 + 4) > this._buffer.size)) { return 0 } let fbeStructSize = this.readUInt32(fbeStructOffset) console.assert((fbeStructSize >= (4 + 4)), 'Model is broken!') if (fbeStructSize < (4 + 4)) { return 0 } this._buffer.shift(fbeStructOffset) return fbeStructOffset } /** * Get the struct value (end phase) * @this {!FieldModelStructList} * @param {!number} fbeBegin Field model begin offset */ getEnd (fbeBegin) { this._buffer.unshift(fbeBegin) } /** * Get the struct value * @this {!FieldModelStructList} * @param {!StructList} fbeValue Default value, defaults is new StructList() * @returns {!StructList} StructList value */ get (fbeValue = new StructList()) { let fbeBegin = this.getBegin() if (fbeBegin === 0) { return fbeValue } let fbeStructSize = this.readUInt32(0) this.getFields(fbeValue, fbeStructSize) this.getEnd(fbeBegin) return fbeValue } /** * Get the struct fields values * @this {!FieldModelStructList} * @param {!StructList} fbeValue StructList value * @param {!number} fbeStructSize Struct size */ getFields (fbeValue, fbeStructSize) { let fbeCurrentSize = 4 + 4 if ((fbeCurrentSize + this.f1.fbeSize) <= fbeStructSize) { this.f1.get(fbeValue.f1) } else { fbeValue.f1.length = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1.fbeSize if ((fbeCurrentSize + this.f2.fbeSize) <= fbeStructSize) { this.f2.get(fbeValue.f2) } else { fbeValue.f2.length = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f2.fbeSize if ((fbeCurrentSize + this.f3.fbeSize) <= fbeStructSize) { this.f3.get(fbeValue.f3) } else { fbeValue.f3.length = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f3.fbeSize if ((fbeCurrentSize + this.f4.fbeSize) <= fbeStructSize) { this.f4.get(fbeValue.f4) } else { fbeValue.f4.length = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f4.fbeSize if ((fbeCurrentSize + this.f5.fbeSize) <= fbeStructSize) { this.f5.get(fbeValue.f5) } else { fbeValue.f5.length = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f5.fbeSize if ((fbeCurrentSize + this.f6.fbeSize) <= fbeStructSize) { this.f6.get(fbeValue.f6) } else { fbeValue.f6.length = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f6.fbeSize if ((fbeCurrentSize + this.f7.fbeSize) <= fbeStructSize) { this.f7.get(fbeValue.f7) } else { fbeValue.f7.length = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f7.fbeSize if ((fbeCurrentSize + this.f8.fbeSize) <= fbeStructSize) { this.f8.get(fbeValue.f8) } else { fbeValue.f8.length = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f8.fbeSize if ((fbeCurrentSize + this.f9.fbeSize) <= fbeStructSize) { this.f9.get(fbeValue.f9) } else { fbeValue.f9.length = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f9.fbeSize if ((fbeCurrentSize + this.f10.fbeSize) <= fbeStructSize) { this.f10.get(fbeValue.f10) } else { fbeValue.f10.length = 0 } // noinspection JSUnusedAssignment fbeCurrentSize += this.f10.fbeSize } /** * Set the struct value (begin phase) * @this {!FieldModelStructList} * @returns {!number} Field model begin offset */ setBegin () { console.assert(((this._buffer.offset + this.fbeOffset + this.fbeSize) <= this._buffer.size), 'Model is broken!') if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructSize = this.fbeBody let fbeStructOffset = this._buffer.allocate(fbeStructSize) - this._buffer.offset console.assert((fbeStructOffset > 0) && ((this._buffer.offset + fbeStructOffset + fbeStructSize) <= this._buffer.size), 'Model is broken!') if ((fbeStructOffset <= 0) || ((this._buffer.offset + fbeStructOffset + fbeStructSize) > this._buffer.size)) { return 0 } this.writeUInt32(this.fbeOffset, fbeStructOffset) this.writeUInt32(fbeStructOffset, fbeStructSize) this.writeUInt32(fbeStructOffset + 4, this.fbeType) this._buffer.shift(fbeStructOffset) return fbeStructOffset } /** * Set the struct value (end phase) * @this {!FieldModelStructList} * @param {!number} fbeBegin Field model begin offset */ setEnd (fbeBegin) { this._buffer.unshift(fbeBegin) } /** * Set the struct value * @this {!FieldModelStructList} * @param {!StructList} fbeValue StructList value */ set (fbeValue) { let fbeBegin = this.setBegin() if (fbeBegin === 0) { return } this.setFields(fbeValue) this.setEnd(fbeBegin) } /** * Set the struct fields values * @this {!FieldModelStructList} * @param {StructList} fbeValue StructList value */ setFields (fbeValue) { this.f1.set(fbeValue.f1) this.f2.set(fbeValue.f2) this.f3.set(fbeValue.f3) this.f4.set(fbeValue.f4) this.f5.set(fbeValue.f5) this.f6.set(fbeValue.f6) this.f7.set(fbeValue.f7) this.f8.set(fbeValue.f8) this.f9.set(fbeValue.f9) this.f10.set(fbeValue.f10) } } exports.FieldModelStructList = FieldModelStructList /** * Fast Binary Encoding StructList model */ class StructListModel extends fbe.Model { /** * Initialize model with the given buffer * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Read/Write buffer, defaults is new fbe.WriteBuffer() * @constructor */ constructor (buffer = new fbe.WriteBuffer()) { super(buffer) this._model = new FieldModelStructList(this.buffer, 4) } /** * Get the StructList model * @this {!StructListModel} * @returns {!FieldModelStructList} model StructList model */ get model () { return this._model } /** * Get the model size * @this {!StructListModel} * @returns {!number} Model size */ get fbeSize () { return this.model.fbeSize + this.model.fbeExtra } /** * Get the model type * @this {!StructListModel} * @returns {!number} Model type */ get fbeType () { return StructListModel.fbeType } /** * Get the model type (static) * @this {!StructListModel} * @returns {!number} Model type */ static get fbeType () { return FieldModelStructList.fbeType } /** * Check if the struct value is valid * @this {!StructListModel} * @returns {!boolean} Model valid state */ verify () { if ((this.buffer.offset + this.model.fbeOffset - 4) > this.buffer.size) { return false } let fbeFullSize = this.readUInt32(this.model.fbeOffset - 4) if (fbeFullSize < this.model.fbeSize) { return false } return this.model.verify() } /** * Create a new model (begin phase) * @this {!StructListModel} * @returns {!number} Model begin offset */ createBegin () { return this.buffer.allocate(4 + this.model.fbeSize) } /** * Create a new model (end phase) * @this {!StructListModel} * @param {!number} fbeBegin Model begin offset */ createEnd (fbeBegin) { let fbeEnd = this.buffer.size let fbeFullSize = fbeEnd - fbeBegin this.writeUInt32(this.model.fbeOffset - 4, fbeFullSize) return fbeFullSize } /** * Serialize the struct value * @this {!StructListModel} * @param {!StructList} value StructList value * @return {!number} Model begin offset */ serialize (value) { let fbeBegin = this.createBegin() this.model.set(value) return this.createEnd(fbeBegin) } /** * Deserialize the struct value * @this {!StructListModel} * @param {!StructList} value StructList value, defaults is new StructList() * @return {!object} Deserialized StructList value and its size */ deserialize (value = new StructList()) { if ((this.buffer.offset + this.model.fbeOffset - 4) > this.buffer.size) { return { value: new StructList(), size: 0 } } let fbeFullSize = this.readUInt32(this.model.fbeOffset - 4) console.assert((fbeFullSize >= this.model.fbeSize), 'Model is broken!') if (fbeFullSize < this.model.fbeSize) { return { value: new StructList(), size: 0 } } this.model.get(value) return { value, size: fbeFullSize } } /** * Move to the next struct value * @this {!StructListModel} * @param {!number} prev Previous StructList model size */ next (prev) { this.model.fbeShift(prev) } } exports.StructListModel = StructListModel /** * Fast Binary Encoding StructList final model */ class FinalModelStructList extends fbe.FinalModel { /** * Initialize final model with the given buffer and offset * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Buffer * @param {!number} offset Offset * @constructor */ constructor (buffer, offset) { super(buffer, offset) this._f1 = new fbe.FinalModelVector(new fbe.FinalModelByte(buffer, 0), buffer, 0) this._f2 = new fbe.FinalModelVector(new fbe.FinalModelOptional(new fbe.FinalModelByte(buffer, 0), buffer, 0), buffer, 0) this._f3 = new fbe.FinalModelVector(new fbe.FinalModelBytes(buffer, 0), buffer, 0) this._f4 = new fbe.FinalModelVector(new fbe.FinalModelOptional(new fbe.FinalModelBytes(buffer, 0), buffer, 0), buffer, 0) this._f5 = new fbe.FinalModelVector(new FinalModelEnumSimple(buffer, 0), buffer, 0) this._f6 = new fbe.FinalModelVector(new fbe.FinalModelOptional(new FinalModelEnumSimple(buffer, 0), buffer, 0), buffer, 0) this._f7 = new fbe.FinalModelVector(new FinalModelFlagsSimple(buffer, 0), buffer, 0) this._f8 = new fbe.FinalModelVector(new fbe.FinalModelOptional(new FinalModelFlagsSimple(buffer, 0), buffer, 0), buffer, 0) this._f9 = new fbe.FinalModelVector(new FinalModelStructSimple(buffer, 0), buffer, 0) this._f10 = new fbe.FinalModelVector(new fbe.FinalModelOptional(new FinalModelStructSimple(buffer, 0), buffer, 0), buffer, 0) } /** * Get the f1 final model * @this {!FinalModelStructList} * @returns {!fbe.FinalModelVector} f1 final model */ get f1 () { return this._f1 } /** * Get the f2 final model * @this {!FinalModelStructList} * @returns {!fbe.FinalModelVector} f2 final model */ get f2 () { return this._f2 } /** * Get the f3 final model * @this {!FinalModelStructList} * @returns {!fbe.FinalModelVector} f3 final model */ get f3 () { return this._f3 } /** * Get the f4 final model * @this {!FinalModelStructList} * @returns {!fbe.FinalModelVector} f4 final model */ get f4 () { return this._f4 } /** * Get the f5 final model * @this {!FinalModelStructList} * @returns {!fbe.FinalModelVector} f5 final model */ get f5 () { return this._f5 } /** * Get the f6 final model * @this {!FinalModelStructList} * @returns {!fbe.FinalModelVector} f6 final model */ get f6 () { return this._f6 } /** * Get the f7 final model * @this {!FinalModelStructList} * @returns {!fbe.FinalModelVector} f7 final model */ get f7 () { return this._f7 } /** * Get the f8 final model * @this {!FinalModelStructList} * @returns {!fbe.FinalModelVector} f8 final model */ get f8 () { return this._f8 } /** * Get the f9 final model * @this {!FinalModelStructList} * @returns {!fbe.FinalModelVector} f9 final model */ get f9 () { return this._f9 } /** * Get the f10 final model * @this {!FinalModelStructList} * @returns {!fbe.FinalModelVector} f10 final model */ get f10 () { return this._f10 } /** * Get the allocation size * @this {!FinalModelStructList} * @param {!StructList} fbeValue StructList value * @returns {!number} Allocation size */ fbeAllocationSize (fbeValue) { return 0 + this.f1.fbeAllocationSize(fbeValue.f1) + this.f2.fbeAllocationSize(fbeValue.f2) + this.f3.fbeAllocationSize(fbeValue.f3) + this.f4.fbeAllocationSize(fbeValue.f4) + this.f5.fbeAllocationSize(fbeValue.f5) + this.f6.fbeAllocationSize(fbeValue.f6) + this.f7.fbeAllocationSize(fbeValue.f7) + this.f8.fbeAllocationSize(fbeValue.f8) + this.f9.fbeAllocationSize(fbeValue.f9) + this.f10.fbeAllocationSize(fbeValue.f10) } /** * Get the final type * @this {!FinalModelStructList} * @returns {!number} Final type */ get fbeType () { return FinalModelStructList.fbeType } /** * Get the final type (static) * @this {!FinalModelStructList} * @returns {!number} Final type */ static get fbeType () { return 131 } /** * Check if the struct value is valid * @this {!FinalModelStructList} * @returns {!number} Final model size or Number.MAX_SAFE_INTEGER in case of any error */ verify () { this._buffer.shift(this.fbeOffset) let fbeResult = this.verifyFields() this._buffer.unshift(this.fbeOffset) return fbeResult } /** * Check if the struct fields are valid * @this {!FinalModelStructList} * @returns {!number} Final model size or Number.MAX_SAFE_INTEGER in case of any error */ verifyFields () { let fbeCurrentOffset = 0 let fbeFieldSize this.f1.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f2.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f2.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f3.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f3.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f4.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f4.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f5.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f5.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f6.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f6.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f7.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f7.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f8.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f8.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f9.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f9.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f10.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f10.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize return fbeCurrentOffset } /** * Get the struct value * @this {!FinalModelStructList} * @param {!StructList} fbeValue StructList value, defaults is new StructList() * @returns {!object} Result struct value and its size */ get (fbeValue = new StructList()) { this._buffer.shift(this.fbeOffset) let fbeSize = this.getFields(fbeValue) this._buffer.unshift(this.fbeOffset) return { value: fbeValue, size: fbeSize } } /** * Get the struct fields values * @this {!FinalModelStructList} * @param {!StructList} fbeValue StructList value * @returns {!number} Struct size */ getFields (fbeValue) { let fbeCurrentOffset = 0 let fbeCurrentSize = 0 let fbeResult this.f1.fbeOffset = fbeCurrentOffset fbeResult = this.f1.get(fbeValue.f1) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f2.fbeOffset = fbeCurrentOffset fbeResult = this.f2.get(fbeValue.f2) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f3.fbeOffset = fbeCurrentOffset fbeResult = this.f3.get(fbeValue.f3) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f4.fbeOffset = fbeCurrentOffset fbeResult = this.f4.get(fbeValue.f4) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f5.fbeOffset = fbeCurrentOffset fbeResult = this.f5.get(fbeValue.f5) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f6.fbeOffset = fbeCurrentOffset fbeResult = this.f6.get(fbeValue.f6) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f7.fbeOffset = fbeCurrentOffset fbeResult = this.f7.get(fbeValue.f7) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f8.fbeOffset = fbeCurrentOffset fbeResult = this.f8.get(fbeValue.f8) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f9.fbeOffset = fbeCurrentOffset fbeResult = this.f9.get(fbeValue.f9) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f10.fbeOffset = fbeCurrentOffset fbeResult = this.f10.get(fbeValue.f10) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size return fbeCurrentSize } /** * Set the struct value * @this {!FinalModelStructList} * @param {!StructList} fbeValue StructList value * @returns {!number} Final model size */ set (fbeValue) { this._buffer.shift(this.fbeOffset) let fbeSize = this.setFields(fbeValue) this._buffer.unshift(this.fbeOffset) return fbeSize } /** * Set the struct fields values * @this {!FinalModelStructList} * @param {StructList} fbeValue StructList value * @returns {!number} Final model size */ setFields (fbeValue) { let fbeCurrentOffset = 0 let fbeCurrentSize = 0 let fbeFieldSize this.f1.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1.set(fbeValue.f1) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f2.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f2.set(fbeValue.f2) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f3.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f3.set(fbeValue.f3) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f4.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f4.set(fbeValue.f4) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f5.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f5.set(fbeValue.f5) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f6.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f6.set(fbeValue.f6) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f7.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f7.set(fbeValue.f7) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f8.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f8.set(fbeValue.f8) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f9.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f9.set(fbeValue.f9) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f10.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f10.set(fbeValue.f10) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize return fbeCurrentSize } } exports.FinalModelStructList = FinalModelStructList /** * Fast Binary Encoding StructList final model */ class StructListFinalModel extends fbe.Model { /** * Initialize final model with the given buffer * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Read/Write buffer, defaults is new fbe.WriteBuffer() * @constructor */ constructor (buffer = new fbe.WriteBuffer()) { super(buffer) this._model = new FinalModelStructList(this.buffer, 8) } /** * Get the model type * @this {!StructListFinalModel} * @returns {!number} Model type */ get fbeType () { return StructListFinalModel.fbeType } /** * Get the model type (static) * @this {!StructListFinalModel} * @returns {!number} Model type */ static get fbeType () { return FinalModelStructList.fbeType } /** * Check if the struct value is valid * @this {!StructListFinalModel} * @returns {!boolean} Model valid state */ verify () { if ((this.buffer.offset + this._model.fbeOffset) > this.buffer.size) { return false } let fbeStructSize = this.readUInt32(this._model.fbeOffset - 8) let fbeStructType = this.readUInt32(this._model.fbeOffset - 4) if ((fbeStructSize <= 0) || (fbeStructType !== this.fbeType)) { return false } return ((8 + this._model.verify()) === fbeStructSize) } /** * Serialize the struct value * @this {!StructListFinalModel} * @param {!StructList} value StructList value * @return {!number} Struct size */ serialize (value) { let fbeInitialSize = this.buffer.size let fbeStructType = this.fbeType let fbeStructSize = 8 + this._model.fbeAllocationSize(value) let fbeStructOffset = this.buffer.allocate(fbeStructSize) - this.buffer.offset console.assert(((this.buffer.offset + fbeStructOffset + fbeStructSize) <= this.buffer.size), 'Model is broken!') if ((this.buffer.offset + fbeStructOffset + fbeStructSize) > this.buffer.size) { return 0 } fbeStructSize = 8 + this._model.set(value) this.buffer.resize(fbeInitialSize + fbeStructSize) this.writeUInt32(this._model.fbeOffset - 8, fbeStructSize) this.writeUInt32(this._model.fbeOffset - 4, fbeStructType) return fbeStructSize } /** * Deserialize the struct value * @this {!StructListFinalModel} * @param {!StructList} value StructList value, defaults is new StructList() * @return {!object} Deserialized StructList value and its size */ deserialize (value = new StructList()) { console.assert(((this.buffer.offset + this._model.fbeOffset) <= this.buffer.size), 'Model is broken!') if ((this.buffer.offset + this._model.fbeOffset) > this.buffer.size) { return { value: new StructList(), size: 0 } } let fbeStructSize = this.readUInt32(this._model.fbeOffset - 8) let fbeStructType = this.readUInt32(this._model.fbeOffset - 4) console.assert(((fbeStructSize > 0) && (fbeStructType === this.fbeType)), 'Model is broken!') if ((fbeStructSize <= 0) || (fbeStructType !== this.fbeType)) { return { value: new StructList(), size: 8 } } let fbeResult = this._model.get(value) return { value: fbeResult.value, size: (8 + fbeResult.size) } } /** * Move to the next struct value * @this {!StructListFinalModel} * @param {!number} prev Previous StructList model size */ next (prev) { this._model.fbeShift(prev) } } exports.StructListFinalModel = StructListFinalModel /** * StructSet struct */ class StructSet { /** * Initialize struct * @param {!Set=} f1 * @param {!Set=} f2 * @param {!Set=} f3 * @param {!Set=} f4 * @constructor */ constructor (argf1 = new Set(), argf2 = new Set(), argf3 = new Set(), argf4 = new Set()) { this.f1 = argf1 this.f2 = argf2 this.f3 = argf3 this.f4 = argf4 } /** * Copy struct (shallow copy) * @this {!StructSet} * @param {!StructSet} other Other struct * @returns {!StructSet} This struct */ copy (other) { if (other.f1 != null) { this.f1 = new Set() for (let item of other.f1) { if (item != null) { let tempItem tempItem = item this.f1.add(tempItem) } else { this.f1.add(undefined) } } } else { this.f1 = undefined } if (other.f2 != null) { this.f2 = new Set() for (let item of other.f2) { if (item != null) { let tempItem tempItem = EnumSimple.fromObject(item) this.f2.add(tempItem) } else { this.f2.add(undefined) } } } else { this.f2 = undefined } if (other.f3 != null) { this.f3 = new Set() for (let item of other.f3) { if (item != null) { let tempItem tempItem = FlagsSimple.fromObject(item) this.f3.add(tempItem) } else { this.f3.add(undefined) } } } else { this.f3 = undefined } if (other.f4 != null) { this.f4 = new Set() for (let item of other.f4) { if (item != null) { let tempItem tempItem = StructSimple.fromObject(item) this.f4.add(tempItem) } else { this.f4.add(undefined) } } } else { this.f4 = undefined } return this } /** * Clone struct (deep clone) * @this {!StructSet} * @returns {!StructSet} Cloned struct */ clone () { // Serialize the struct to the FBE stream let writer = new StructSetModel(new fbe.WriteBuffer()) writer.serialize(this) // Deserialize the struct from the FBE stream let reader = new StructSetModel(new fbe.ReadBuffer()) reader.attachBuffer(writer.buffer) return reader.deserialize().value } /** * Is this struct equal to other one? * @this {!StructSet} * @param {!StructSet} other Other struct * @returns {boolean} Equal result */ eq (other) { if (!(other instanceof StructSet)) { throw new TypeError('Instance of StructSet is required!') } return true } /** * Convert struct to string * @this {!StructSet} * @returns {!string} Struct value string */ toString () { let result = '' result += 'StructSet(' result += 'f1=' if (this.f1 != null) { let first = true result += '[' + this.f1.size + ']{' for (let item of this.f1) { result += first ? '' : ',' result += item.toString() first = false } result += '}' } else { result += '[0]{}' } result += ',f2=' if (this.f2 != null) { let first = true result += '[' + this.f2.size + ']{' for (let item of this.f2) { result += first ? '' : ',' result += item.toString() first = false } result += '}' } else { result += '[0]{}' } result += ',f3=' if (this.f3 != null) { let first = true result += '[' + this.f3.size + ']{' for (let item of this.f3) { result += first ? '' : ',' result += item.toString() first = false } result += '}' } else { result += '[0]{}' } result += ',f4=' if (this.f4 != null) { let first = true result += '[' + this.f4.size + ']{' for (let item of this.f4) { result += first ? '' : ',' result += item.toString() first = false } result += '}' } else { result += '[0]{}' } result += ')' return result } /** * Inspect struct * @this {!StructSet} * @returns {!string} Struct value string */ [util.inspect.custom] () { return this.toString() } /** * Convert struct to JSON * @this {!StructSet} * @returns {!object} Struct value for JSON */ toJSON () { return { f1: ((this.f1 != null) ? Array.from(this.f1, item => ((item != null) ? item : null)) : null), f2: ((this.f2 != null) ? Array.from(this.f2, item => ((item != null) ? item : null)) : null), f3: ((this.f3 != null) ? Array.from(this.f3, item => ((item != null) ? item : null)) : null), f4: ((this.f4 != null) ? Array.from(this.f4, item => ((item != null) ? item : null)) : null) } } /** * Convert JSON to struct * @param {!string} json JSON string * @returns {!object} Struct value for JSON */ static fromJSON (json) { return StructSet.fromObject(JSON.parse(json)) } /** * Create struct from object value * @param {!StructSet} other Object value * @returns {!StructSet} Created struct */ static fromObject (other) { return new StructSet().copy(other) } /** * Get the FBE type * @this {!StructSet} * @returns {!number} FBE type */ get fbeType () { return StructSet.fbeType } /** * Get the FBE type (static) * @this {!StructSet} * @returns {!number} FBE type */ static get fbeType () { return 132 } } exports.StructSet = StructSet /** * Fast Binary Encoding StructSet field model */ class FieldModelStructSet extends fbe.FieldModel { /** * Initialize field model with the given buffer and offset * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Buffer * @param {!number} offset Offset * @constructor */ constructor (buffer, offset) { super(buffer, offset) this._f1 = new fbe.FieldModelSet(new fbe.FieldModelByte(buffer, 4 + 4), buffer, 4 + 4) this._f2 = new fbe.FieldModelSet(new FieldModelEnumSimple(buffer, this._f1.fbeOffset + this._f1.fbeSize), buffer, this._f1.fbeOffset + this._f1.fbeSize) this._f3 = new fbe.FieldModelSet(new FieldModelFlagsSimple(buffer, this._f2.fbeOffset + this._f2.fbeSize), buffer, this._f2.fbeOffset + this._f2.fbeSize) this._f4 = new fbe.FieldModelSet(new FieldModelStructSimple(buffer, this._f3.fbeOffset + this._f3.fbeSize), buffer, this._f3.fbeOffset + this._f3.fbeSize) } /** * Get the f1 field model * @this {!FieldModelStructSet} * @returns {!fbe.FieldModelSet} f1 field model */ get f1 () { return this._f1 } /** * Get the f2 field model * @this {!FieldModelStructSet} * @returns {!fbe.FieldModelSet} f2 field model */ get f2 () { return this._f2 } /** * Get the f3 field model * @this {!FieldModelStructSet} * @returns {!fbe.FieldModelSet} f3 field model */ get f3 () { return this._f3 } /** * Get the f4 field model * @this {!FieldModelStructSet} * @returns {!fbe.FieldModelSet} f4 field model */ get f4 () { return this._f4 } /** * Get the field size * @this {!FieldModelStructSet} * @returns {!number} Field size */ get fbeSize () { return 4 } /** * Get the field body size * @this {!FieldModelStructSet} * @returns {!number} Field body size */ get fbeBody () { return 4 + 4 + this.f1.fbeSize + this.f2.fbeSize + this.f3.fbeSize + this.f4.fbeSize } /** * Get the field extra size * @this {!FieldModelStructSet} * @returns {!number} Field extra size */ get fbeExtra () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructOffset = this.readUInt32(this.fbeOffset) if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4) > this._buffer.size)) { return 0 } this._buffer.shift(fbeStructOffset) let fbeResult = this.fbeBody + this.f1.fbeExtra + this.f2.fbeExtra + this.f3.fbeExtra + this.f4.fbeExtra this._buffer.unshift(fbeStructOffset) return fbeResult } /** * Get the field type * @this {!FieldModelStructSet} * @returns {!number} Field type */ get fbeType () { return FieldModelStructSet.fbeType } /** * Get the field type (static) * @this {!FieldModelStructSet} * @returns {!number} Field type */ static get fbeType () { return 132 } /** * Check if the struct value is valid * @this {!FieldModelStructSet} * @param {!boolean} fbeVerifyType Verify model type flag, defaults is true * @returns {!boolean} Field model valid state */ verify (fbeVerifyType = true) { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return true } let fbeStructOffset = this.readUInt32(this.fbeOffset) if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4 + 4) > this._buffer.size)) { return false } let fbeStructSize = this.readUInt32(fbeStructOffset) if (fbeStructSize < (4 + 4)) { return false } let fbeStructType = this.readUInt32(fbeStructOffset + 4) if (fbeVerifyType && (fbeStructType !== this.fbeType)) { return false } this._buffer.shift(fbeStructOffset) let fbeResult = this.verifyFields(fbeStructSize) this._buffer.unshift(fbeStructOffset) return fbeResult } /** * Check if the struct fields are valid * @this {!FieldModelStructSet} * @param {!number} fbeStructSize FBE struct size * @returns {!boolean} Field model valid state */ verifyFields (fbeStructSize) { let fbeCurrentSize = 4 + 4 if ((fbeCurrentSize + this.f1.fbeSize) > fbeStructSize) { return true } if (!this.f1.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1.fbeSize if ((fbeCurrentSize + this.f2.fbeSize) > fbeStructSize) { return true } if (!this.f2.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f2.fbeSize if ((fbeCurrentSize + this.f3.fbeSize) > fbeStructSize) { return true } if (!this.f3.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f3.fbeSize if ((fbeCurrentSize + this.f4.fbeSize) > fbeStructSize) { return true } if (!this.f4.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f4.fbeSize return true } /** * Get the struct value (begin phase) * @this {!FieldModelStructSet} * @returns {!number} Field model begin offset */ getBegin () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructOffset = this.readUInt32(this.fbeOffset) console.assert((fbeStructOffset > 0) && ((this._buffer.offset + fbeStructOffset + 4 + 4) <= this._buffer.size), 'Model is broken!') if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4 + 4) > this._buffer.size)) { return 0 } let fbeStructSize = this.readUInt32(fbeStructOffset) console.assert((fbeStructSize >= (4 + 4)), 'Model is broken!') if (fbeStructSize < (4 + 4)) { return 0 } this._buffer.shift(fbeStructOffset) return fbeStructOffset } /** * Get the struct value (end phase) * @this {!FieldModelStructSet} * @param {!number} fbeBegin Field model begin offset */ getEnd (fbeBegin) { this._buffer.unshift(fbeBegin) } /** * Get the struct value * @this {!FieldModelStructSet} * @param {!StructSet} fbeValue Default value, defaults is new StructSet() * @returns {!StructSet} StructSet value */ get (fbeValue = new StructSet()) { let fbeBegin = this.getBegin() if (fbeBegin === 0) { return fbeValue } let fbeStructSize = this.readUInt32(0) this.getFields(fbeValue, fbeStructSize) this.getEnd(fbeBegin) return fbeValue } /** * Get the struct fields values * @this {!FieldModelStructSet} * @param {!StructSet} fbeValue StructSet value * @param {!number} fbeStructSize Struct size */ getFields (fbeValue, fbeStructSize) { let fbeCurrentSize = 4 + 4 if ((fbeCurrentSize + this.f1.fbeSize) <= fbeStructSize) { this.f1.get(fbeValue.f1) } else { fbeValue.f1.clear() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1.fbeSize if ((fbeCurrentSize + this.f2.fbeSize) <= fbeStructSize) { this.f2.get(fbeValue.f2) } else { fbeValue.f2.clear() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f2.fbeSize if ((fbeCurrentSize + this.f3.fbeSize) <= fbeStructSize) { this.f3.get(fbeValue.f3) } else { fbeValue.f3.clear() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f3.fbeSize if ((fbeCurrentSize + this.f4.fbeSize) <= fbeStructSize) { this.f4.get(fbeValue.f4) } else { fbeValue.f4.clear() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f4.fbeSize } /** * Set the struct value (begin phase) * @this {!FieldModelStructSet} * @returns {!number} Field model begin offset */ setBegin () { console.assert(((this._buffer.offset + this.fbeOffset + this.fbeSize) <= this._buffer.size), 'Model is broken!') if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructSize = this.fbeBody let fbeStructOffset = this._buffer.allocate(fbeStructSize) - this._buffer.offset console.assert((fbeStructOffset > 0) && ((this._buffer.offset + fbeStructOffset + fbeStructSize) <= this._buffer.size), 'Model is broken!') if ((fbeStructOffset <= 0) || ((this._buffer.offset + fbeStructOffset + fbeStructSize) > this._buffer.size)) { return 0 } this.writeUInt32(this.fbeOffset, fbeStructOffset) this.writeUInt32(fbeStructOffset, fbeStructSize) this.writeUInt32(fbeStructOffset + 4, this.fbeType) this._buffer.shift(fbeStructOffset) return fbeStructOffset } /** * Set the struct value (end phase) * @this {!FieldModelStructSet} * @param {!number} fbeBegin Field model begin offset */ setEnd (fbeBegin) { this._buffer.unshift(fbeBegin) } /** * Set the struct value * @this {!FieldModelStructSet} * @param {!StructSet} fbeValue StructSet value */ set (fbeValue) { let fbeBegin = this.setBegin() if (fbeBegin === 0) { return } this.setFields(fbeValue) this.setEnd(fbeBegin) } /** * Set the struct fields values * @this {!FieldModelStructSet} * @param {StructSet} fbeValue StructSet value */ setFields (fbeValue) { this.f1.set(fbeValue.f1) this.f2.set(fbeValue.f2) this.f3.set(fbeValue.f3) this.f4.set(fbeValue.f4) } } exports.FieldModelStructSet = FieldModelStructSet /** * Fast Binary Encoding StructSet model */ class StructSetModel extends fbe.Model { /** * Initialize model with the given buffer * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Read/Write buffer, defaults is new fbe.WriteBuffer() * @constructor */ constructor (buffer = new fbe.WriteBuffer()) { super(buffer) this._model = new FieldModelStructSet(this.buffer, 4) } /** * Get the StructSet model * @this {!StructSetModel} * @returns {!FieldModelStructSet} model StructSet model */ get model () { return this._model } /** * Get the model size * @this {!StructSetModel} * @returns {!number} Model size */ get fbeSize () { return this.model.fbeSize + this.model.fbeExtra } /** * Get the model type * @this {!StructSetModel} * @returns {!number} Model type */ get fbeType () { return StructSetModel.fbeType } /** * Get the model type (static) * @this {!StructSetModel} * @returns {!number} Model type */ static get fbeType () { return FieldModelStructSet.fbeType } /** * Check if the struct value is valid * @this {!StructSetModel} * @returns {!boolean} Model valid state */ verify () { if ((this.buffer.offset + this.model.fbeOffset - 4) > this.buffer.size) { return false } let fbeFullSize = this.readUInt32(this.model.fbeOffset - 4) if (fbeFullSize < this.model.fbeSize) { return false } return this.model.verify() } /** * Create a new model (begin phase) * @this {!StructSetModel} * @returns {!number} Model begin offset */ createBegin () { return this.buffer.allocate(4 + this.model.fbeSize) } /** * Create a new model (end phase) * @this {!StructSetModel} * @param {!number} fbeBegin Model begin offset */ createEnd (fbeBegin) { let fbeEnd = this.buffer.size let fbeFullSize = fbeEnd - fbeBegin this.writeUInt32(this.model.fbeOffset - 4, fbeFullSize) return fbeFullSize } /** * Serialize the struct value * @this {!StructSetModel} * @param {!StructSet} value StructSet value * @return {!number} Model begin offset */ serialize (value) { let fbeBegin = this.createBegin() this.model.set(value) return this.createEnd(fbeBegin) } /** * Deserialize the struct value * @this {!StructSetModel} * @param {!StructSet} value StructSet value, defaults is new StructSet() * @return {!object} Deserialized StructSet value and its size */ deserialize (value = new StructSet()) { if ((this.buffer.offset + this.model.fbeOffset - 4) > this.buffer.size) { return { value: new StructSet(), size: 0 } } let fbeFullSize = this.readUInt32(this.model.fbeOffset - 4) console.assert((fbeFullSize >= this.model.fbeSize), 'Model is broken!') if (fbeFullSize < this.model.fbeSize) { return { value: new StructSet(), size: 0 } } this.model.get(value) return { value, size: fbeFullSize } } /** * Move to the next struct value * @this {!StructSetModel} * @param {!number} prev Previous StructSet model size */ next (prev) { this.model.fbeShift(prev) } } exports.StructSetModel = StructSetModel /** * Fast Binary Encoding StructSet final model */ class FinalModelStructSet extends fbe.FinalModel { /** * Initialize final model with the given buffer and offset * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Buffer * @param {!number} offset Offset * @constructor */ constructor (buffer, offset) { super(buffer, offset) this._f1 = new fbe.FinalModelSet(new fbe.FinalModelByte(buffer, 0), buffer, 0) this._f2 = new fbe.FinalModelSet(new FinalModelEnumSimple(buffer, 0), buffer, 0) this._f3 = new fbe.FinalModelSet(new FinalModelFlagsSimple(buffer, 0), buffer, 0) this._f4 = new fbe.FinalModelSet(new FinalModelStructSimple(buffer, 0), buffer, 0) } /** * Get the f1 final model * @this {!FinalModelStructSet} * @returns {!fbe.FinalModelSet} f1 final model */ get f1 () { return this._f1 } /** * Get the f2 final model * @this {!FinalModelStructSet} * @returns {!fbe.FinalModelSet} f2 final model */ get f2 () { return this._f2 } /** * Get the f3 final model * @this {!FinalModelStructSet} * @returns {!fbe.FinalModelSet} f3 final model */ get f3 () { return this._f3 } /** * Get the f4 final model * @this {!FinalModelStructSet} * @returns {!fbe.FinalModelSet} f4 final model */ get f4 () { return this._f4 } /** * Get the allocation size * @this {!FinalModelStructSet} * @param {!StructSet} fbeValue StructSet value * @returns {!number} Allocation size */ fbeAllocationSize (fbeValue) { return 0 + this.f1.fbeAllocationSize(fbeValue.f1) + this.f2.fbeAllocationSize(fbeValue.f2) + this.f3.fbeAllocationSize(fbeValue.f3) + this.f4.fbeAllocationSize(fbeValue.f4) } /** * Get the final type * @this {!FinalModelStructSet} * @returns {!number} Final type */ get fbeType () { return FinalModelStructSet.fbeType } /** * Get the final type (static) * @this {!FinalModelStructSet} * @returns {!number} Final type */ static get fbeType () { return 132 } /** * Check if the struct value is valid * @this {!FinalModelStructSet} * @returns {!number} Final model size or Number.MAX_SAFE_INTEGER in case of any error */ verify () { this._buffer.shift(this.fbeOffset) let fbeResult = this.verifyFields() this._buffer.unshift(this.fbeOffset) return fbeResult } /** * Check if the struct fields are valid * @this {!FinalModelStructSet} * @returns {!number} Final model size or Number.MAX_SAFE_INTEGER in case of any error */ verifyFields () { let fbeCurrentOffset = 0 let fbeFieldSize this.f1.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f2.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f2.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f3.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f3.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f4.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f4.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize return fbeCurrentOffset } /** * Get the struct value * @this {!FinalModelStructSet} * @param {!StructSet} fbeValue StructSet value, defaults is new StructSet() * @returns {!object} Result struct value and its size */ get (fbeValue = new StructSet()) { this._buffer.shift(this.fbeOffset) let fbeSize = this.getFields(fbeValue) this._buffer.unshift(this.fbeOffset) return { value: fbeValue, size: fbeSize } } /** * Get the struct fields values * @this {!FinalModelStructSet} * @param {!StructSet} fbeValue StructSet value * @returns {!number} Struct size */ getFields (fbeValue) { let fbeCurrentOffset = 0 let fbeCurrentSize = 0 let fbeResult this.f1.fbeOffset = fbeCurrentOffset fbeResult = this.f1.get(fbeValue.f1) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f2.fbeOffset = fbeCurrentOffset fbeResult = this.f2.get(fbeValue.f2) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f3.fbeOffset = fbeCurrentOffset fbeResult = this.f3.get(fbeValue.f3) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f4.fbeOffset = fbeCurrentOffset fbeResult = this.f4.get(fbeValue.f4) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size return fbeCurrentSize } /** * Set the struct value * @this {!FinalModelStructSet} * @param {!StructSet} fbeValue StructSet value * @returns {!number} Final model size */ set (fbeValue) { this._buffer.shift(this.fbeOffset) let fbeSize = this.setFields(fbeValue) this._buffer.unshift(this.fbeOffset) return fbeSize } /** * Set the struct fields values * @this {!FinalModelStructSet} * @param {StructSet} fbeValue StructSet value * @returns {!number} Final model size */ setFields (fbeValue) { let fbeCurrentOffset = 0 let fbeCurrentSize = 0 let fbeFieldSize this.f1.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1.set(fbeValue.f1) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f2.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f2.set(fbeValue.f2) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f3.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f3.set(fbeValue.f3) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f4.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f4.set(fbeValue.f4) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize return fbeCurrentSize } } exports.FinalModelStructSet = FinalModelStructSet /** * Fast Binary Encoding StructSet final model */ class StructSetFinalModel extends fbe.Model { /** * Initialize final model with the given buffer * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Read/Write buffer, defaults is new fbe.WriteBuffer() * @constructor */ constructor (buffer = new fbe.WriteBuffer()) { super(buffer) this._model = new FinalModelStructSet(this.buffer, 8) } /** * Get the model type * @this {!StructSetFinalModel} * @returns {!number} Model type */ get fbeType () { return StructSetFinalModel.fbeType } /** * Get the model type (static) * @this {!StructSetFinalModel} * @returns {!number} Model type */ static get fbeType () { return FinalModelStructSet.fbeType } /** * Check if the struct value is valid * @this {!StructSetFinalModel} * @returns {!boolean} Model valid state */ verify () { if ((this.buffer.offset + this._model.fbeOffset) > this.buffer.size) { return false } let fbeStructSize = this.readUInt32(this._model.fbeOffset - 8) let fbeStructType = this.readUInt32(this._model.fbeOffset - 4) if ((fbeStructSize <= 0) || (fbeStructType !== this.fbeType)) { return false } return ((8 + this._model.verify()) === fbeStructSize) } /** * Serialize the struct value * @this {!StructSetFinalModel} * @param {!StructSet} value StructSet value * @return {!number} Struct size */ serialize (value) { let fbeInitialSize = this.buffer.size let fbeStructType = this.fbeType let fbeStructSize = 8 + this._model.fbeAllocationSize(value) let fbeStructOffset = this.buffer.allocate(fbeStructSize) - this.buffer.offset console.assert(((this.buffer.offset + fbeStructOffset + fbeStructSize) <= this.buffer.size), 'Model is broken!') if ((this.buffer.offset + fbeStructOffset + fbeStructSize) > this.buffer.size) { return 0 } fbeStructSize = 8 + this._model.set(value) this.buffer.resize(fbeInitialSize + fbeStructSize) this.writeUInt32(this._model.fbeOffset - 8, fbeStructSize) this.writeUInt32(this._model.fbeOffset - 4, fbeStructType) return fbeStructSize } /** * Deserialize the struct value * @this {!StructSetFinalModel} * @param {!StructSet} value StructSet value, defaults is new StructSet() * @return {!object} Deserialized StructSet value and its size */ deserialize (value = new StructSet()) { console.assert(((this.buffer.offset + this._model.fbeOffset) <= this.buffer.size), 'Model is broken!') if ((this.buffer.offset + this._model.fbeOffset) > this.buffer.size) { return { value: new StructSet(), size: 0 } } let fbeStructSize = this.readUInt32(this._model.fbeOffset - 8) let fbeStructType = this.readUInt32(this._model.fbeOffset - 4) console.assert(((fbeStructSize > 0) && (fbeStructType === this.fbeType)), 'Model is broken!') if ((fbeStructSize <= 0) || (fbeStructType !== this.fbeType)) { return { value: new StructSet(), size: 8 } } let fbeResult = this._model.get(value) return { value: fbeResult.value, size: (8 + fbeResult.size) } } /** * Move to the next struct value * @this {!StructSetFinalModel} * @param {!number} prev Previous StructSet model size */ next (prev) { this._model.fbeShift(prev) } } exports.StructSetFinalModel = StructSetFinalModel /** * StructMap struct */ class StructMap { /** * Initialize struct * @param {!Map=} f1 * @param {Map=} f2 * @param {!Map=} f3 * @param {Map=} f4 * @param {!Map=} f5 * @param {Map=} f6 * @param {!Map=} f7 * @param {Map=} f8 * @param {!Map=} f9 * @param {Map=} f10 * @constructor */ constructor (argf1 = new Map(), argf2 = new Map(), argf3 = new Map(), argf4 = new Map(), argf5 = new Map(), argf6 = new Map(), argf7 = new Map(), argf8 = new Map(), argf9 = new Map(), argf10 = new Map()) { this.f1 = argf1 this.f2 = argf2 this.f3 = argf3 this.f4 = argf4 this.f5 = argf5 this.f6 = argf6 this.f7 = argf7 this.f8 = argf8 this.f9 = argf9 this.f10 = argf10 } /** * Copy struct (shallow copy) * @this {!StructMap} * @param {!StructMap} other Other struct * @returns {!StructMap} This struct */ copy (other) { if (other.f1 != null) { this.f1 = new Map() Object.keys(other.f1).forEach(key => { if (key != null) { let tempKey tempKey = key if (other.f1[key] != null) { let tempValue tempValue = other.f1[key] this.f1.set(tempKey, tempValue) } else { this.f1.set(tempKey, undefined) } } }) } else { this.f1 = undefined } if (other.f2 != null) { this.f2 = new Map() Object.keys(other.f2).forEach(key => { if (key != null) { let tempKey tempKey = key if (other.f2[key] != null) { let tempValue tempValue = other.f2[key] this.f2.set(tempKey, tempValue) } else { this.f2.set(tempKey, undefined) } } }) } else { this.f2 = undefined } if (other.f3 != null) { this.f3 = new Map() Object.keys(other.f3).forEach(key => { if (key != null) { let tempKey tempKey = key if (other.f3[key] != null) { let tempValue if (typeof other.f3[key] === 'string') { // noinspection JSUnresolvedFunction tempValue = Uint8Array.from(Buffer.from(other.f3[key], 'base64')) } else { tempValue = Uint8Array.from(other.f3[key]) } this.f3.set(tempKey, tempValue) } else { this.f3.set(tempKey, undefined) } } }) } else { this.f3 = undefined } if (other.f4 != null) { this.f4 = new Map() Object.keys(other.f4).forEach(key => { if (key != null) { let tempKey tempKey = key if (other.f4[key] != null) { let tempValue if (typeof other.f4[key] === 'string') { // noinspection JSUnresolvedFunction tempValue = Uint8Array.from(Buffer.from(other.f4[key], 'base64')) } else { tempValue = Uint8Array.from(other.f4[key]) } this.f4.set(tempKey, tempValue) } else { this.f4.set(tempKey, undefined) } } }) } else { this.f4 = undefined } if (other.f5 != null) { this.f5 = new Map() Object.keys(other.f5).forEach(key => { if (key != null) { let tempKey tempKey = key if (other.f5[key] != null) { let tempValue tempValue = EnumSimple.fromObject(other.f5[key]) this.f5.set(tempKey, tempValue) } else { this.f5.set(tempKey, undefined) } } }) } else { this.f5 = undefined } if (other.f6 != null) { this.f6 = new Map() Object.keys(other.f6).forEach(key => { if (key != null) { let tempKey tempKey = key if (other.f6[key] != null) { let tempValue tempValue = EnumSimple.fromObject(other.f6[key]) this.f6.set(tempKey, tempValue) } else { this.f6.set(tempKey, undefined) } } }) } else { this.f6 = undefined } if (other.f7 != null) { this.f7 = new Map() Object.keys(other.f7).forEach(key => { if (key != null) { let tempKey tempKey = key if (other.f7[key] != null) { let tempValue tempValue = FlagsSimple.fromObject(other.f7[key]) this.f7.set(tempKey, tempValue) } else { this.f7.set(tempKey, undefined) } } }) } else { this.f7 = undefined } if (other.f8 != null) { this.f8 = new Map() Object.keys(other.f8).forEach(key => { if (key != null) { let tempKey tempKey = key if (other.f8[key] != null) { let tempValue tempValue = FlagsSimple.fromObject(other.f8[key]) this.f8.set(tempKey, tempValue) } else { this.f8.set(tempKey, undefined) } } }) } else { this.f8 = undefined } if (other.f9 != null) { this.f9 = new Map() Object.keys(other.f9).forEach(key => { if (key != null) { let tempKey tempKey = key if (other.f9[key] != null) { let tempValue tempValue = StructSimple.fromObject(other.f9[key]) this.f9.set(tempKey, tempValue) } else { this.f9.set(tempKey, undefined) } } }) } else { this.f9 = undefined } if (other.f10 != null) { this.f10 = new Map() Object.keys(other.f10).forEach(key => { if (key != null) { let tempKey tempKey = key if (other.f10[key] != null) { let tempValue tempValue = StructSimple.fromObject(other.f10[key]) this.f10.set(tempKey, tempValue) } else { this.f10.set(tempKey, undefined) } } }) } else { this.f10 = undefined } return this } /** * Clone struct (deep clone) * @this {!StructMap} * @returns {!StructMap} Cloned struct */ clone () { // Serialize the struct to the FBE stream let writer = new StructMapModel(new fbe.WriteBuffer()) writer.serialize(this) // Deserialize the struct from the FBE stream let reader = new StructMapModel(new fbe.ReadBuffer()) reader.attachBuffer(writer.buffer) return reader.deserialize().value } /** * Is this struct equal to other one? * @this {!StructMap} * @param {!StructMap} other Other struct * @returns {boolean} Equal result */ eq (other) { if (!(other instanceof StructMap)) { throw new TypeError('Instance of StructMap is required!') } return true } /** * Convert struct to string * @this {!StructMap} * @returns {!string} Struct value string */ toString () { let result = '' result += 'StructMap(' result += 'f1=' if (this.f1 != null) { let first = true result += '[' + this.f1.size + ']<{' for (let [key, value] of this.f1) { result += first ? '' : ',' result += key.toString() result += '->' result += value.toString() first = false } result += '}>' } else { result += '[0]<{}>' } result += ',f2=' if (this.f2 != null) { let first = true result += '[' + this.f2.size + ']<{' for (let [key, value] of this.f2) { result += first ? '' : ',' result += key.toString() result += '->' if (value != null) { result += value.toString() } else { result += 'null' } first = false } result += '}>' } else { result += '[0]<{}>' } result += ',f3=' if (this.f3 != null) { let first = true result += '[' + this.f3.size + ']<{' for (let [key, value] of this.f3) { result += first ? '' : ',' result += key.toString() result += '->' if (value != null) { result += 'bytes[' + value.length + ']' } else { result += 'null' } first = false } result += '}>' } else { result += '[0]<{}>' } result += ',f4=' if (this.f4 != null) { let first = true result += '[' + this.f4.size + ']<{' for (let [key, value] of this.f4) { result += first ? '' : ',' result += key.toString() result += '->' if (value != null) { result += 'bytes[' + value.length + ']' } else { result += 'null' } first = false } result += '}>' } else { result += '[0]<{}>' } result += ',f5=' if (this.f5 != null) { let first = true result += '[' + this.f5.size + ']<{' for (let [key, value] of this.f5) { result += first ? '' : ',' result += key.toString() result += '->' result += value.toString() first = false } result += '}>' } else { result += '[0]<{}>' } result += ',f6=' if (this.f6 != null) { let first = true result += '[' + this.f6.size + ']<{' for (let [key, value] of this.f6) { result += first ? '' : ',' result += key.toString() result += '->' if (value != null) { result += value.toString() } else { result += 'null' } first = false } result += '}>' } else { result += '[0]<{}>' } result += ',f7=' if (this.f7 != null) { let first = true result += '[' + this.f7.size + ']<{' for (let [key, value] of this.f7) { result += first ? '' : ',' result += key.toString() result += '->' result += value.toString() first = false } result += '}>' } else { result += '[0]<{}>' } result += ',f8=' if (this.f8 != null) { let first = true result += '[' + this.f8.size + ']<{' for (let [key, value] of this.f8) { result += first ? '' : ',' result += key.toString() result += '->' if (value != null) { result += value.toString() } else { result += 'null' } first = false } result += '}>' } else { result += '[0]<{}>' } result += ',f9=' if (this.f9 != null) { let first = true result += '[' + this.f9.size + ']<{' for (let [key, value] of this.f9) { result += first ? '' : ',' result += key.toString() result += '->' result += value.toString() first = false } result += '}>' } else { result += '[0]<{}>' } result += ',f10=' if (this.f10 != null) { let first = true result += '[' + this.f10.size + ']<{' for (let [key, value] of this.f10) { result += first ? '' : ',' result += key.toString() result += '->' if (value != null) { result += value.toString() } else { result += 'null' } first = false } result += '}>' } else { result += '[0]<{}>' } result += ')' return result } /** * Inspect struct * @this {!StructMap} * @returns {!string} Struct value string */ [util.inspect.custom] () { return this.toString() } /** * Convert struct to JSON * @this {!StructMap} * @returns {!object} Struct value for JSON */ toJSON () { return { f1: ((this.f1 != null) ? fbe.MapToObject(new Map(Array.from(this.f1, item => [((item[0] != null) ? item[0] : null), ((item[1] != null) ? item[1] : null)]))) : null), f2: ((this.f2 != null) ? fbe.MapToObject(new Map(Array.from(this.f2, item => [((item[0] != null) ? item[0] : null), ((item[1] != null) ? item[1] : null)]))) : null), f3: ((this.f3 != null) ? fbe.MapToObject(new Map(Array.from(this.f3, item => [((item[0] != null) ? item[0] : null), ((item[1] != null) ? Buffer.from(item[1]).toString('base64') : null)]))) : null), f4: ((this.f4 != null) ? fbe.MapToObject(new Map(Array.from(this.f4, item => [((item[0] != null) ? item[0] : null), ((item[1] != null) ? Buffer.from(item[1]).toString('base64') : null)]))) : null), f5: ((this.f5 != null) ? fbe.MapToObject(new Map(Array.from(this.f5, item => [((item[0] != null) ? item[0] : null), ((item[1] != null) ? item[1] : null)]))) : null), f6: ((this.f6 != null) ? fbe.MapToObject(new Map(Array.from(this.f6, item => [((item[0] != null) ? item[0] : null), ((item[1] != null) ? item[1] : null)]))) : null), f7: ((this.f7 != null) ? fbe.MapToObject(new Map(Array.from(this.f7, item => [((item[0] != null) ? item[0] : null), ((item[1] != null) ? item[1] : null)]))) : null), f8: ((this.f8 != null) ? fbe.MapToObject(new Map(Array.from(this.f8, item => [((item[0] != null) ? item[0] : null), ((item[1] != null) ? item[1] : null)]))) : null), f9: ((this.f9 != null) ? fbe.MapToObject(new Map(Array.from(this.f9, item => [((item[0] != null) ? item[0] : null), ((item[1] != null) ? item[1] : null)]))) : null), f10: ((this.f10 != null) ? fbe.MapToObject(new Map(Array.from(this.f10, item => [((item[0] != null) ? item[0] : null), ((item[1] != null) ? item[1] : null)]))) : null) } } /** * Convert JSON to struct * @param {!string} json JSON string * @returns {!object} Struct value for JSON */ static fromJSON (json) { return StructMap.fromObject(JSON.parse(json)) } /** * Create struct from object value * @param {!StructMap} other Object value * @returns {!StructMap} Created struct */ static fromObject (other) { return new StructMap().copy(other) } /** * Get the FBE type * @this {!StructMap} * @returns {!number} FBE type */ get fbeType () { return StructMap.fbeType } /** * Get the FBE type (static) * @this {!StructMap} * @returns {!number} FBE type */ static get fbeType () { return 140 } } exports.StructMap = StructMap /** * Fast Binary Encoding StructMap field model */ class FieldModelStructMap extends fbe.FieldModel { /** * Initialize field model with the given buffer and offset * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Buffer * @param {!number} offset Offset * @constructor */ constructor (buffer, offset) { super(buffer, offset) this._f1 = new fbe.FieldModelMap(new fbe.FieldModelInt32(buffer, 4 + 4), new fbe.FieldModelByte(buffer, 4 + 4), buffer, 4 + 4) this._f2 = new fbe.FieldModelMap(new fbe.FieldModelInt32(buffer, this._f1.fbeOffset + this._f1.fbeSize), new fbe.FieldModelOptional(new fbe.FieldModelByte(buffer, this._f1.fbeOffset + this._f1.fbeSize), buffer, this._f1.fbeOffset + this._f1.fbeSize), buffer, this._f1.fbeOffset + this._f1.fbeSize) this._f3 = new fbe.FieldModelMap(new fbe.FieldModelInt32(buffer, this._f2.fbeOffset + this._f2.fbeSize), new fbe.FieldModelBytes(buffer, this._f2.fbeOffset + this._f2.fbeSize), buffer, this._f2.fbeOffset + this._f2.fbeSize) this._f4 = new fbe.FieldModelMap(new fbe.FieldModelInt32(buffer, this._f3.fbeOffset + this._f3.fbeSize), new fbe.FieldModelOptional(new fbe.FieldModelBytes(buffer, this._f3.fbeOffset + this._f3.fbeSize), buffer, this._f3.fbeOffset + this._f3.fbeSize), buffer, this._f3.fbeOffset + this._f3.fbeSize) this._f5 = new fbe.FieldModelMap(new fbe.FieldModelInt32(buffer, this._f4.fbeOffset + this._f4.fbeSize), new FieldModelEnumSimple(buffer, this._f4.fbeOffset + this._f4.fbeSize), buffer, this._f4.fbeOffset + this._f4.fbeSize) this._f6 = new fbe.FieldModelMap(new fbe.FieldModelInt32(buffer, this._f5.fbeOffset + this._f5.fbeSize), new fbe.FieldModelOptional(new FieldModelEnumSimple(buffer, this._f5.fbeOffset + this._f5.fbeSize), buffer, this._f5.fbeOffset + this._f5.fbeSize), buffer, this._f5.fbeOffset + this._f5.fbeSize) this._f7 = new fbe.FieldModelMap(new fbe.FieldModelInt32(buffer, this._f6.fbeOffset + this._f6.fbeSize), new FieldModelFlagsSimple(buffer, this._f6.fbeOffset + this._f6.fbeSize), buffer, this._f6.fbeOffset + this._f6.fbeSize) this._f8 = new fbe.FieldModelMap(new fbe.FieldModelInt32(buffer, this._f7.fbeOffset + this._f7.fbeSize), new fbe.FieldModelOptional(new FieldModelFlagsSimple(buffer, this._f7.fbeOffset + this._f7.fbeSize), buffer, this._f7.fbeOffset + this._f7.fbeSize), buffer, this._f7.fbeOffset + this._f7.fbeSize) this._f9 = new fbe.FieldModelMap(new fbe.FieldModelInt32(buffer, this._f8.fbeOffset + this._f8.fbeSize), new FieldModelStructSimple(buffer, this._f8.fbeOffset + this._f8.fbeSize), buffer, this._f8.fbeOffset + this._f8.fbeSize) this._f10 = new fbe.FieldModelMap(new fbe.FieldModelInt32(buffer, this._f9.fbeOffset + this._f9.fbeSize), new fbe.FieldModelOptional(new FieldModelStructSimple(buffer, this._f9.fbeOffset + this._f9.fbeSize), buffer, this._f9.fbeOffset + this._f9.fbeSize), buffer, this._f9.fbeOffset + this._f9.fbeSize) } /** * Get the f1 field model * @this {!FieldModelStructMap} * @returns {!fbe.FieldModelMap} f1 field model */ get f1 () { return this._f1 } /** * Get the f2 field model * @this {!FieldModelStructMap} * @returns {!fbe.FieldModelMap} f2 field model */ get f2 () { return this._f2 } /** * Get the f3 field model * @this {!FieldModelStructMap} * @returns {!fbe.FieldModelMap} f3 field model */ get f3 () { return this._f3 } /** * Get the f4 field model * @this {!FieldModelStructMap} * @returns {!fbe.FieldModelMap} f4 field model */ get f4 () { return this._f4 } /** * Get the f5 field model * @this {!FieldModelStructMap} * @returns {!fbe.FieldModelMap} f5 field model */ get f5 () { return this._f5 } /** * Get the f6 field model * @this {!FieldModelStructMap} * @returns {!fbe.FieldModelMap} f6 field model */ get f6 () { return this._f6 } /** * Get the f7 field model * @this {!FieldModelStructMap} * @returns {!fbe.FieldModelMap} f7 field model */ get f7 () { return this._f7 } /** * Get the f8 field model * @this {!FieldModelStructMap} * @returns {!fbe.FieldModelMap} f8 field model */ get f8 () { return this._f8 } /** * Get the f9 field model * @this {!FieldModelStructMap} * @returns {!fbe.FieldModelMap} f9 field model */ get f9 () { return this._f9 } /** * Get the f10 field model * @this {!FieldModelStructMap} * @returns {!fbe.FieldModelMap} f10 field model */ get f10 () { return this._f10 } /** * Get the field size * @this {!FieldModelStructMap} * @returns {!number} Field size */ get fbeSize () { return 4 } /** * Get the field body size * @this {!FieldModelStructMap} * @returns {!number} Field body size */ get fbeBody () { return 4 + 4 + this.f1.fbeSize + this.f2.fbeSize + this.f3.fbeSize + this.f4.fbeSize + this.f5.fbeSize + this.f6.fbeSize + this.f7.fbeSize + this.f8.fbeSize + this.f9.fbeSize + this.f10.fbeSize } /** * Get the field extra size * @this {!FieldModelStructMap} * @returns {!number} Field extra size */ get fbeExtra () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructOffset = this.readUInt32(this.fbeOffset) if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4) > this._buffer.size)) { return 0 } this._buffer.shift(fbeStructOffset) let fbeResult = this.fbeBody + this.f1.fbeExtra + this.f2.fbeExtra + this.f3.fbeExtra + this.f4.fbeExtra + this.f5.fbeExtra + this.f6.fbeExtra + this.f7.fbeExtra + this.f8.fbeExtra + this.f9.fbeExtra + this.f10.fbeExtra this._buffer.unshift(fbeStructOffset) return fbeResult } /** * Get the field type * @this {!FieldModelStructMap} * @returns {!number} Field type */ get fbeType () { return FieldModelStructMap.fbeType } /** * Get the field type (static) * @this {!FieldModelStructMap} * @returns {!number} Field type */ static get fbeType () { return 140 } /** * Check if the struct value is valid * @this {!FieldModelStructMap} * @param {!boolean} fbeVerifyType Verify model type flag, defaults is true * @returns {!boolean} Field model valid state */ verify (fbeVerifyType = true) { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return true } let fbeStructOffset = this.readUInt32(this.fbeOffset) if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4 + 4) > this._buffer.size)) { return false } let fbeStructSize = this.readUInt32(fbeStructOffset) if (fbeStructSize < (4 + 4)) { return false } let fbeStructType = this.readUInt32(fbeStructOffset + 4) if (fbeVerifyType && (fbeStructType !== this.fbeType)) { return false } this._buffer.shift(fbeStructOffset) let fbeResult = this.verifyFields(fbeStructSize) this._buffer.unshift(fbeStructOffset) return fbeResult } /** * Check if the struct fields are valid * @this {!FieldModelStructMap} * @param {!number} fbeStructSize FBE struct size * @returns {!boolean} Field model valid state */ verifyFields (fbeStructSize) { let fbeCurrentSize = 4 + 4 if ((fbeCurrentSize + this.f1.fbeSize) > fbeStructSize) { return true } if (!this.f1.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1.fbeSize if ((fbeCurrentSize + this.f2.fbeSize) > fbeStructSize) { return true } if (!this.f2.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f2.fbeSize if ((fbeCurrentSize + this.f3.fbeSize) > fbeStructSize) { return true } if (!this.f3.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f3.fbeSize if ((fbeCurrentSize + this.f4.fbeSize) > fbeStructSize) { return true } if (!this.f4.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f4.fbeSize if ((fbeCurrentSize + this.f5.fbeSize) > fbeStructSize) { return true } if (!this.f5.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f5.fbeSize if ((fbeCurrentSize + this.f6.fbeSize) > fbeStructSize) { return true } if (!this.f6.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f6.fbeSize if ((fbeCurrentSize + this.f7.fbeSize) > fbeStructSize) { return true } if (!this.f7.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f7.fbeSize if ((fbeCurrentSize + this.f8.fbeSize) > fbeStructSize) { return true } if (!this.f8.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f8.fbeSize if ((fbeCurrentSize + this.f9.fbeSize) > fbeStructSize) { return true } if (!this.f9.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f9.fbeSize if ((fbeCurrentSize + this.f10.fbeSize) > fbeStructSize) { return true } if (!this.f10.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f10.fbeSize return true } /** * Get the struct value (begin phase) * @this {!FieldModelStructMap} * @returns {!number} Field model begin offset */ getBegin () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructOffset = this.readUInt32(this.fbeOffset) console.assert((fbeStructOffset > 0) && ((this._buffer.offset + fbeStructOffset + 4 + 4) <= this._buffer.size), 'Model is broken!') if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4 + 4) > this._buffer.size)) { return 0 } let fbeStructSize = this.readUInt32(fbeStructOffset) console.assert((fbeStructSize >= (4 + 4)), 'Model is broken!') if (fbeStructSize < (4 + 4)) { return 0 } this._buffer.shift(fbeStructOffset) return fbeStructOffset } /** * Get the struct value (end phase) * @this {!FieldModelStructMap} * @param {!number} fbeBegin Field model begin offset */ getEnd (fbeBegin) { this._buffer.unshift(fbeBegin) } /** * Get the struct value * @this {!FieldModelStructMap} * @param {!StructMap} fbeValue Default value, defaults is new StructMap() * @returns {!StructMap} StructMap value */ get (fbeValue = new StructMap()) { let fbeBegin = this.getBegin() if (fbeBegin === 0) { return fbeValue } let fbeStructSize = this.readUInt32(0) this.getFields(fbeValue, fbeStructSize) this.getEnd(fbeBegin) return fbeValue } /** * Get the struct fields values * @this {!FieldModelStructMap} * @param {!StructMap} fbeValue StructMap value * @param {!number} fbeStructSize Struct size */ getFields (fbeValue, fbeStructSize) { let fbeCurrentSize = 4 + 4 if ((fbeCurrentSize + this.f1.fbeSize) <= fbeStructSize) { this.f1.get(fbeValue.f1) } else { fbeValue.f1.clear() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1.fbeSize if ((fbeCurrentSize + this.f2.fbeSize) <= fbeStructSize) { this.f2.get(fbeValue.f2) } else { fbeValue.f2.clear() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f2.fbeSize if ((fbeCurrentSize + this.f3.fbeSize) <= fbeStructSize) { this.f3.get(fbeValue.f3) } else { fbeValue.f3.clear() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f3.fbeSize if ((fbeCurrentSize + this.f4.fbeSize) <= fbeStructSize) { this.f4.get(fbeValue.f4) } else { fbeValue.f4.clear() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f4.fbeSize if ((fbeCurrentSize + this.f5.fbeSize) <= fbeStructSize) { this.f5.get(fbeValue.f5) } else { fbeValue.f5.clear() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f5.fbeSize if ((fbeCurrentSize + this.f6.fbeSize) <= fbeStructSize) { this.f6.get(fbeValue.f6) } else { fbeValue.f6.clear() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f6.fbeSize if ((fbeCurrentSize + this.f7.fbeSize) <= fbeStructSize) { this.f7.get(fbeValue.f7) } else { fbeValue.f7.clear() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f7.fbeSize if ((fbeCurrentSize + this.f8.fbeSize) <= fbeStructSize) { this.f8.get(fbeValue.f8) } else { fbeValue.f8.clear() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f8.fbeSize if ((fbeCurrentSize + this.f9.fbeSize) <= fbeStructSize) { this.f9.get(fbeValue.f9) } else { fbeValue.f9.clear() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f9.fbeSize if ((fbeCurrentSize + this.f10.fbeSize) <= fbeStructSize) { this.f10.get(fbeValue.f10) } else { fbeValue.f10.clear() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f10.fbeSize } /** * Set the struct value (begin phase) * @this {!FieldModelStructMap} * @returns {!number} Field model begin offset */ setBegin () { console.assert(((this._buffer.offset + this.fbeOffset + this.fbeSize) <= this._buffer.size), 'Model is broken!') if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructSize = this.fbeBody let fbeStructOffset = this._buffer.allocate(fbeStructSize) - this._buffer.offset console.assert((fbeStructOffset > 0) && ((this._buffer.offset + fbeStructOffset + fbeStructSize) <= this._buffer.size), 'Model is broken!') if ((fbeStructOffset <= 0) || ((this._buffer.offset + fbeStructOffset + fbeStructSize) > this._buffer.size)) { return 0 } this.writeUInt32(this.fbeOffset, fbeStructOffset) this.writeUInt32(fbeStructOffset, fbeStructSize) this.writeUInt32(fbeStructOffset + 4, this.fbeType) this._buffer.shift(fbeStructOffset) return fbeStructOffset } /** * Set the struct value (end phase) * @this {!FieldModelStructMap} * @param {!number} fbeBegin Field model begin offset */ setEnd (fbeBegin) { this._buffer.unshift(fbeBegin) } /** * Set the struct value * @this {!FieldModelStructMap} * @param {!StructMap} fbeValue StructMap value */ set (fbeValue) { let fbeBegin = this.setBegin() if (fbeBegin === 0) { return } this.setFields(fbeValue) this.setEnd(fbeBegin) } /** * Set the struct fields values * @this {!FieldModelStructMap} * @param {StructMap} fbeValue StructMap value */ setFields (fbeValue) { this.f1.set(fbeValue.f1) this.f2.set(fbeValue.f2) this.f3.set(fbeValue.f3) this.f4.set(fbeValue.f4) this.f5.set(fbeValue.f5) this.f6.set(fbeValue.f6) this.f7.set(fbeValue.f7) this.f8.set(fbeValue.f8) this.f9.set(fbeValue.f9) this.f10.set(fbeValue.f10) } } exports.FieldModelStructMap = FieldModelStructMap /** * Fast Binary Encoding StructMap model */ class StructMapModel extends fbe.Model { /** * Initialize model with the given buffer * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Read/Write buffer, defaults is new fbe.WriteBuffer() * @constructor */ constructor (buffer = new fbe.WriteBuffer()) { super(buffer) this._model = new FieldModelStructMap(this.buffer, 4) } /** * Get the StructMap model * @this {!StructMapModel} * @returns {!FieldModelStructMap} model StructMap model */ get model () { return this._model } /** * Get the model size * @this {!StructMapModel} * @returns {!number} Model size */ get fbeSize () { return this.model.fbeSize + this.model.fbeExtra } /** * Get the model type * @this {!StructMapModel} * @returns {!number} Model type */ get fbeType () { return StructMapModel.fbeType } /** * Get the model type (static) * @this {!StructMapModel} * @returns {!number} Model type */ static get fbeType () { return FieldModelStructMap.fbeType } /** * Check if the struct value is valid * @this {!StructMapModel} * @returns {!boolean} Model valid state */ verify () { if ((this.buffer.offset + this.model.fbeOffset - 4) > this.buffer.size) { return false } let fbeFullSize = this.readUInt32(this.model.fbeOffset - 4) if (fbeFullSize < this.model.fbeSize) { return false } return this.model.verify() } /** * Create a new model (begin phase) * @this {!StructMapModel} * @returns {!number} Model begin offset */ createBegin () { return this.buffer.allocate(4 + this.model.fbeSize) } /** * Create a new model (end phase) * @this {!StructMapModel} * @param {!number} fbeBegin Model begin offset */ createEnd (fbeBegin) { let fbeEnd = this.buffer.size let fbeFullSize = fbeEnd - fbeBegin this.writeUInt32(this.model.fbeOffset - 4, fbeFullSize) return fbeFullSize } /** * Serialize the struct value * @this {!StructMapModel} * @param {!StructMap} value StructMap value * @return {!number} Model begin offset */ serialize (value) { let fbeBegin = this.createBegin() this.model.set(value) return this.createEnd(fbeBegin) } /** * Deserialize the struct value * @this {!StructMapModel} * @param {!StructMap} value StructMap value, defaults is new StructMap() * @return {!object} Deserialized StructMap value and its size */ deserialize (value = new StructMap()) { if ((this.buffer.offset + this.model.fbeOffset - 4) > this.buffer.size) { return { value: new StructMap(), size: 0 } } let fbeFullSize = this.readUInt32(this.model.fbeOffset - 4) console.assert((fbeFullSize >= this.model.fbeSize), 'Model is broken!') if (fbeFullSize < this.model.fbeSize) { return { value: new StructMap(), size: 0 } } this.model.get(value) return { value, size: fbeFullSize } } /** * Move to the next struct value * @this {!StructMapModel} * @param {!number} prev Previous StructMap model size */ next (prev) { this.model.fbeShift(prev) } } exports.StructMapModel = StructMapModel /** * Fast Binary Encoding StructMap final model */ class FinalModelStructMap extends fbe.FinalModel { /** * Initialize final model with the given buffer and offset * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Buffer * @param {!number} offset Offset * @constructor */ constructor (buffer, offset) { super(buffer, offset) this._f1 = new fbe.FinalModelMap(new fbe.FinalModelInt32(buffer, 0), new fbe.FinalModelByte(buffer, 0), buffer, 0) this._f2 = new fbe.FinalModelMap(new fbe.FinalModelInt32(buffer, 0), new fbe.FinalModelOptional(new fbe.FinalModelByte(buffer, 0), buffer, 0), buffer, 0) this._f3 = new fbe.FinalModelMap(new fbe.FinalModelInt32(buffer, 0), new fbe.FinalModelBytes(buffer, 0), buffer, 0) this._f4 = new fbe.FinalModelMap(new fbe.FinalModelInt32(buffer, 0), new fbe.FinalModelOptional(new fbe.FinalModelBytes(buffer, 0), buffer, 0), buffer, 0) this._f5 = new fbe.FinalModelMap(new fbe.FinalModelInt32(buffer, 0), new FinalModelEnumSimple(buffer, 0), buffer, 0) this._f6 = new fbe.FinalModelMap(new fbe.FinalModelInt32(buffer, 0), new fbe.FinalModelOptional(new FinalModelEnumSimple(buffer, 0), buffer, 0), buffer, 0) this._f7 = new fbe.FinalModelMap(new fbe.FinalModelInt32(buffer, 0), new FinalModelFlagsSimple(buffer, 0), buffer, 0) this._f8 = new fbe.FinalModelMap(new fbe.FinalModelInt32(buffer, 0), new fbe.FinalModelOptional(new FinalModelFlagsSimple(buffer, 0), buffer, 0), buffer, 0) this._f9 = new fbe.FinalModelMap(new fbe.FinalModelInt32(buffer, 0), new FinalModelStructSimple(buffer, 0), buffer, 0) this._f10 = new fbe.FinalModelMap(new fbe.FinalModelInt32(buffer, 0), new fbe.FinalModelOptional(new FinalModelStructSimple(buffer, 0), buffer, 0), buffer, 0) } /** * Get the f1 final model * @this {!FinalModelStructMap} * @returns {!fbe.FinalModelMap} f1 final model */ get f1 () { return this._f1 } /** * Get the f2 final model * @this {!FinalModelStructMap} * @returns {!fbe.FinalModelMap} f2 final model */ get f2 () { return this._f2 } /** * Get the f3 final model * @this {!FinalModelStructMap} * @returns {!fbe.FinalModelMap} f3 final model */ get f3 () { return this._f3 } /** * Get the f4 final model * @this {!FinalModelStructMap} * @returns {!fbe.FinalModelMap} f4 final model */ get f4 () { return this._f4 } /** * Get the f5 final model * @this {!FinalModelStructMap} * @returns {!fbe.FinalModelMap} f5 final model */ get f5 () { return this._f5 } /** * Get the f6 final model * @this {!FinalModelStructMap} * @returns {!fbe.FinalModelMap} f6 final model */ get f6 () { return this._f6 } /** * Get the f7 final model * @this {!FinalModelStructMap} * @returns {!fbe.FinalModelMap} f7 final model */ get f7 () { return this._f7 } /** * Get the f8 final model * @this {!FinalModelStructMap} * @returns {!fbe.FinalModelMap} f8 final model */ get f8 () { return this._f8 } /** * Get the f9 final model * @this {!FinalModelStructMap} * @returns {!fbe.FinalModelMap} f9 final model */ get f9 () { return this._f9 } /** * Get the f10 final model * @this {!FinalModelStructMap} * @returns {!fbe.FinalModelMap} f10 final model */ get f10 () { return this._f10 } /** * Get the allocation size * @this {!FinalModelStructMap} * @param {!StructMap} fbeValue StructMap value * @returns {!number} Allocation size */ fbeAllocationSize (fbeValue) { return 0 + this.f1.fbeAllocationSize(fbeValue.f1) + this.f2.fbeAllocationSize(fbeValue.f2) + this.f3.fbeAllocationSize(fbeValue.f3) + this.f4.fbeAllocationSize(fbeValue.f4) + this.f5.fbeAllocationSize(fbeValue.f5) + this.f6.fbeAllocationSize(fbeValue.f6) + this.f7.fbeAllocationSize(fbeValue.f7) + this.f8.fbeAllocationSize(fbeValue.f8) + this.f9.fbeAllocationSize(fbeValue.f9) + this.f10.fbeAllocationSize(fbeValue.f10) } /** * Get the final type * @this {!FinalModelStructMap} * @returns {!number} Final type */ get fbeType () { return FinalModelStructMap.fbeType } /** * Get the final type (static) * @this {!FinalModelStructMap} * @returns {!number} Final type */ static get fbeType () { return 140 } /** * Check if the struct value is valid * @this {!FinalModelStructMap} * @returns {!number} Final model size or Number.MAX_SAFE_INTEGER in case of any error */ verify () { this._buffer.shift(this.fbeOffset) let fbeResult = this.verifyFields() this._buffer.unshift(this.fbeOffset) return fbeResult } /** * Check if the struct fields are valid * @this {!FinalModelStructMap} * @returns {!number} Final model size or Number.MAX_SAFE_INTEGER in case of any error */ verifyFields () { let fbeCurrentOffset = 0 let fbeFieldSize this.f1.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f2.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f2.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f3.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f3.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f4.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f4.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f5.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f5.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f6.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f6.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f7.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f7.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f8.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f8.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f9.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f9.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f10.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f10.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize return fbeCurrentOffset } /** * Get the struct value * @this {!FinalModelStructMap} * @param {!StructMap} fbeValue StructMap value, defaults is new StructMap() * @returns {!object} Result struct value and its size */ get (fbeValue = new StructMap()) { this._buffer.shift(this.fbeOffset) let fbeSize = this.getFields(fbeValue) this._buffer.unshift(this.fbeOffset) return { value: fbeValue, size: fbeSize } } /** * Get the struct fields values * @this {!FinalModelStructMap} * @param {!StructMap} fbeValue StructMap value * @returns {!number} Struct size */ getFields (fbeValue) { let fbeCurrentOffset = 0 let fbeCurrentSize = 0 let fbeResult this.f1.fbeOffset = fbeCurrentOffset fbeResult = this.f1.get(fbeValue.f1) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f2.fbeOffset = fbeCurrentOffset fbeResult = this.f2.get(fbeValue.f2) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f3.fbeOffset = fbeCurrentOffset fbeResult = this.f3.get(fbeValue.f3) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f4.fbeOffset = fbeCurrentOffset fbeResult = this.f4.get(fbeValue.f4) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f5.fbeOffset = fbeCurrentOffset fbeResult = this.f5.get(fbeValue.f5) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f6.fbeOffset = fbeCurrentOffset fbeResult = this.f6.get(fbeValue.f6) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f7.fbeOffset = fbeCurrentOffset fbeResult = this.f7.get(fbeValue.f7) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f8.fbeOffset = fbeCurrentOffset fbeResult = this.f8.get(fbeValue.f8) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f9.fbeOffset = fbeCurrentOffset fbeResult = this.f9.get(fbeValue.f9) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f10.fbeOffset = fbeCurrentOffset fbeResult = this.f10.get(fbeValue.f10) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size return fbeCurrentSize } /** * Set the struct value * @this {!FinalModelStructMap} * @param {!StructMap} fbeValue StructMap value * @returns {!number} Final model size */ set (fbeValue) { this._buffer.shift(this.fbeOffset) let fbeSize = this.setFields(fbeValue) this._buffer.unshift(this.fbeOffset) return fbeSize } /** * Set the struct fields values * @this {!FinalModelStructMap} * @param {StructMap} fbeValue StructMap value * @returns {!number} Final model size */ setFields (fbeValue) { let fbeCurrentOffset = 0 let fbeCurrentSize = 0 let fbeFieldSize this.f1.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1.set(fbeValue.f1) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f2.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f2.set(fbeValue.f2) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f3.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f3.set(fbeValue.f3) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f4.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f4.set(fbeValue.f4) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f5.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f5.set(fbeValue.f5) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f6.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f6.set(fbeValue.f6) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f7.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f7.set(fbeValue.f7) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f8.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f8.set(fbeValue.f8) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f9.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f9.set(fbeValue.f9) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f10.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f10.set(fbeValue.f10) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize return fbeCurrentSize } } exports.FinalModelStructMap = FinalModelStructMap /** * Fast Binary Encoding StructMap final model */ class StructMapFinalModel extends fbe.Model { /** * Initialize final model with the given buffer * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Read/Write buffer, defaults is new fbe.WriteBuffer() * @constructor */ constructor (buffer = new fbe.WriteBuffer()) { super(buffer) this._model = new FinalModelStructMap(this.buffer, 8) } /** * Get the model type * @this {!StructMapFinalModel} * @returns {!number} Model type */ get fbeType () { return StructMapFinalModel.fbeType } /** * Get the model type (static) * @this {!StructMapFinalModel} * @returns {!number} Model type */ static get fbeType () { return FinalModelStructMap.fbeType } /** * Check if the struct value is valid * @this {!StructMapFinalModel} * @returns {!boolean} Model valid state */ verify () { if ((this.buffer.offset + this._model.fbeOffset) > this.buffer.size) { return false } let fbeStructSize = this.readUInt32(this._model.fbeOffset - 8) let fbeStructType = this.readUInt32(this._model.fbeOffset - 4) if ((fbeStructSize <= 0) || (fbeStructType !== this.fbeType)) { return false } return ((8 + this._model.verify()) === fbeStructSize) } /** * Serialize the struct value * @this {!StructMapFinalModel} * @param {!StructMap} value StructMap value * @return {!number} Struct size */ serialize (value) { let fbeInitialSize = this.buffer.size let fbeStructType = this.fbeType let fbeStructSize = 8 + this._model.fbeAllocationSize(value) let fbeStructOffset = this.buffer.allocate(fbeStructSize) - this.buffer.offset console.assert(((this.buffer.offset + fbeStructOffset + fbeStructSize) <= this.buffer.size), 'Model is broken!') if ((this.buffer.offset + fbeStructOffset + fbeStructSize) > this.buffer.size) { return 0 } fbeStructSize = 8 + this._model.set(value) this.buffer.resize(fbeInitialSize + fbeStructSize) this.writeUInt32(this._model.fbeOffset - 8, fbeStructSize) this.writeUInt32(this._model.fbeOffset - 4, fbeStructType) return fbeStructSize } /** * Deserialize the struct value * @this {!StructMapFinalModel} * @param {!StructMap} value StructMap value, defaults is new StructMap() * @return {!object} Deserialized StructMap value and its size */ deserialize (value = new StructMap()) { console.assert(((this.buffer.offset + this._model.fbeOffset) <= this.buffer.size), 'Model is broken!') if ((this.buffer.offset + this._model.fbeOffset) > this.buffer.size) { return { value: new StructMap(), size: 0 } } let fbeStructSize = this.readUInt32(this._model.fbeOffset - 8) let fbeStructType = this.readUInt32(this._model.fbeOffset - 4) console.assert(((fbeStructSize > 0) && (fbeStructType === this.fbeType)), 'Model is broken!') if ((fbeStructSize <= 0) || (fbeStructType !== this.fbeType)) { return { value: new StructMap(), size: 8 } } let fbeResult = this._model.get(value) return { value: fbeResult.value, size: (8 + fbeResult.size) } } /** * Move to the next struct value * @this {!StructMapFinalModel} * @param {!number} prev Previous StructMap model size */ next (prev) { this._model.fbeShift(prev) } } exports.StructMapFinalModel = StructMapFinalModel /** * StructHash struct */ class StructHash { /** * Initialize struct * @param {!Map=} f1 * @param {Map=} f2 * @param {!Map=} f3 * @param {Map=} f4 * @param {!Map=} f5 * @param {Map=} f6 * @param {!Map=} f7 * @param {Map=} f8 * @param {!Map=} f9 * @param {Map=} f10 * @constructor */ constructor (argf1 = new Map(), argf2 = new Map(), argf3 = new Map(), argf4 = new Map(), argf5 = new Map(), argf6 = new Map(), argf7 = new Map(), argf8 = new Map(), argf9 = new Map(), argf10 = new Map()) { this.f1 = argf1 this.f2 = argf2 this.f3 = argf3 this.f4 = argf4 this.f5 = argf5 this.f6 = argf6 this.f7 = argf7 this.f8 = argf8 this.f9 = argf9 this.f10 = argf10 } /** * Copy struct (shallow copy) * @this {!StructHash} * @param {!StructHash} other Other struct * @returns {!StructHash} This struct */ copy (other) { if (other.f1 != null) { this.f1 = new Map() Object.keys(other.f1).forEach(key => { if (key != null) { let tempKey tempKey = key if (other.f1[key] != null) { let tempValue tempValue = other.f1[key] this.f1.set(tempKey, tempValue) } else { this.f1.set(tempKey, undefined) } } }) } else { this.f1 = undefined } if (other.f2 != null) { this.f2 = new Map() Object.keys(other.f2).forEach(key => { if (key != null) { let tempKey tempKey = key if (other.f2[key] != null) { let tempValue tempValue = other.f2[key] this.f2.set(tempKey, tempValue) } else { this.f2.set(tempKey, undefined) } } }) } else { this.f2 = undefined } if (other.f3 != null) { this.f3 = new Map() Object.keys(other.f3).forEach(key => { if (key != null) { let tempKey tempKey = key if (other.f3[key] != null) { let tempValue if (typeof other.f3[key] === 'string') { // noinspection JSUnresolvedFunction tempValue = Uint8Array.from(Buffer.from(other.f3[key], 'base64')) } else { tempValue = Uint8Array.from(other.f3[key]) } this.f3.set(tempKey, tempValue) } else { this.f3.set(tempKey, undefined) } } }) } else { this.f3 = undefined } if (other.f4 != null) { this.f4 = new Map() Object.keys(other.f4).forEach(key => { if (key != null) { let tempKey tempKey = key if (other.f4[key] != null) { let tempValue if (typeof other.f4[key] === 'string') { // noinspection JSUnresolvedFunction tempValue = Uint8Array.from(Buffer.from(other.f4[key], 'base64')) } else { tempValue = Uint8Array.from(other.f4[key]) } this.f4.set(tempKey, tempValue) } else { this.f4.set(tempKey, undefined) } } }) } else { this.f4 = undefined } if (other.f5 != null) { this.f5 = new Map() Object.keys(other.f5).forEach(key => { if (key != null) { let tempKey tempKey = key if (other.f5[key] != null) { let tempValue tempValue = EnumSimple.fromObject(other.f5[key]) this.f5.set(tempKey, tempValue) } else { this.f5.set(tempKey, undefined) } } }) } else { this.f5 = undefined } if (other.f6 != null) { this.f6 = new Map() Object.keys(other.f6).forEach(key => { if (key != null) { let tempKey tempKey = key if (other.f6[key] != null) { let tempValue tempValue = EnumSimple.fromObject(other.f6[key]) this.f6.set(tempKey, tempValue) } else { this.f6.set(tempKey, undefined) } } }) } else { this.f6 = undefined } if (other.f7 != null) { this.f7 = new Map() Object.keys(other.f7).forEach(key => { if (key != null) { let tempKey tempKey = key if (other.f7[key] != null) { let tempValue tempValue = FlagsSimple.fromObject(other.f7[key]) this.f7.set(tempKey, tempValue) } else { this.f7.set(tempKey, undefined) } } }) } else { this.f7 = undefined } if (other.f8 != null) { this.f8 = new Map() Object.keys(other.f8).forEach(key => { if (key != null) { let tempKey tempKey = key if (other.f8[key] != null) { let tempValue tempValue = FlagsSimple.fromObject(other.f8[key]) this.f8.set(tempKey, tempValue) } else { this.f8.set(tempKey, undefined) } } }) } else { this.f8 = undefined } if (other.f9 != null) { this.f9 = new Map() Object.keys(other.f9).forEach(key => { if (key != null) { let tempKey tempKey = key if (other.f9[key] != null) { let tempValue tempValue = StructSimple.fromObject(other.f9[key]) this.f9.set(tempKey, tempValue) } else { this.f9.set(tempKey, undefined) } } }) } else { this.f9 = undefined } if (other.f10 != null) { this.f10 = new Map() Object.keys(other.f10).forEach(key => { if (key != null) { let tempKey tempKey = key if (other.f10[key] != null) { let tempValue tempValue = StructSimple.fromObject(other.f10[key]) this.f10.set(tempKey, tempValue) } else { this.f10.set(tempKey, undefined) } } }) } else { this.f10 = undefined } return this } /** * Clone struct (deep clone) * @this {!StructHash} * @returns {!StructHash} Cloned struct */ clone () { // Serialize the struct to the FBE stream let writer = new StructHashModel(new fbe.WriteBuffer()) writer.serialize(this) // Deserialize the struct from the FBE stream let reader = new StructHashModel(new fbe.ReadBuffer()) reader.attachBuffer(writer.buffer) return reader.deserialize().value } /** * Is this struct equal to other one? * @this {!StructHash} * @param {!StructHash} other Other struct * @returns {boolean} Equal result */ eq (other) { if (!(other instanceof StructHash)) { throw new TypeError('Instance of StructHash is required!') } return true } /** * Convert struct to string * @this {!StructHash} * @returns {!string} Struct value string */ toString () { let result = '' result += 'StructHash(' result += 'f1=' if (this.f1 != null) { let first = true result += '[' + this.f1.size + '][{' for (let [key, value] of this.f1) { if (key != null) { result += first ? '' : ',' result += '"' + key.toString() + '"' } else { result += first ? '' : ',' result += 'null' } result += '->' result += value.toString() first = false } result += '}]' } else { result += '[0][{}]' } result += ',f2=' if (this.f2 != null) { let first = true result += '[' + this.f2.size + '][{' for (let [key, value] of this.f2) { if (key != null) { result += first ? '' : ',' result += '"' + key.toString() + '"' } else { result += first ? '' : ',' result += 'null' } result += '->' if (value != null) { result += value.toString() } else { result += 'null' } first = false } result += '}]' } else { result += '[0][{}]' } result += ',f3=' if (this.f3 != null) { let first = true result += '[' + this.f3.size + '][{' for (let [key, value] of this.f3) { if (key != null) { result += first ? '' : ',' result += '"' + key.toString() + '"' } else { result += first ? '' : ',' result += 'null' } result += '->' if (value != null) { result += 'bytes[' + value.length + ']' } else { result += 'null' } first = false } result += '}]' } else { result += '[0][{}]' } result += ',f4=' if (this.f4 != null) { let first = true result += '[' + this.f4.size + '][{' for (let [key, value] of this.f4) { if (key != null) { result += first ? '' : ',' result += '"' + key.toString() + '"' } else { result += first ? '' : ',' result += 'null' } result += '->' if (value != null) { result += 'bytes[' + value.length + ']' } else { result += 'null' } first = false } result += '}]' } else { result += '[0][{}]' } result += ',f5=' if (this.f5 != null) { let first = true result += '[' + this.f5.size + '][{' for (let [key, value] of this.f5) { if (key != null) { result += first ? '' : ',' result += '"' + key.toString() + '"' } else { result += first ? '' : ',' result += 'null' } result += '->' result += value.toString() first = false } result += '}]' } else { result += '[0][{}]' } result += ',f6=' if (this.f6 != null) { let first = true result += '[' + this.f6.size + '][{' for (let [key, value] of this.f6) { if (key != null) { result += first ? '' : ',' result += '"' + key.toString() + '"' } else { result += first ? '' : ',' result += 'null' } result += '->' if (value != null) { result += value.toString() } else { result += 'null' } first = false } result += '}]' } else { result += '[0][{}]' } result += ',f7=' if (this.f7 != null) { let first = true result += '[' + this.f7.size + '][{' for (let [key, value] of this.f7) { if (key != null) { result += first ? '' : ',' result += '"' + key.toString() + '"' } else { result += first ? '' : ',' result += 'null' } result += '->' result += value.toString() first = false } result += '}]' } else { result += '[0][{}]' } result += ',f8=' if (this.f8 != null) { let first = true result += '[' + this.f8.size + '][{' for (let [key, value] of this.f8) { if (key != null) { result += first ? '' : ',' result += '"' + key.toString() + '"' } else { result += first ? '' : ',' result += 'null' } result += '->' if (value != null) { result += value.toString() } else { result += 'null' } first = false } result += '}]' } else { result += '[0][{}]' } result += ',f9=' if (this.f9 != null) { let first = true result += '[' + this.f9.size + '][{' for (let [key, value] of this.f9) { if (key != null) { result += first ? '' : ',' result += '"' + key.toString() + '"' } else { result += first ? '' : ',' result += 'null' } result += '->' result += value.toString() first = false } result += '}]' } else { result += '[0][{}]' } result += ',f10=' if (this.f10 != null) { let first = true result += '[' + this.f10.size + '][{' for (let [key, value] of this.f10) { if (key != null) { result += first ? '' : ',' result += '"' + key.toString() + '"' } else { result += first ? '' : ',' result += 'null' } result += '->' if (value != null) { result += value.toString() } else { result += 'null' } first = false } result += '}]' } else { result += '[0][{}]' } result += ')' return result } /** * Inspect struct * @this {!StructHash} * @returns {!string} Struct value string */ [util.inspect.custom] () { return this.toString() } /** * Convert struct to JSON * @this {!StructHash} * @returns {!object} Struct value for JSON */ toJSON () { return { f1: ((this.f1 != null) ? fbe.MapToObject(new Map(Array.from(this.f1, item => [((item[0] != null) ? item[0] : null), ((item[1] != null) ? item[1] : null)]))) : null), f2: ((this.f2 != null) ? fbe.MapToObject(new Map(Array.from(this.f2, item => [((item[0] != null) ? item[0] : null), ((item[1] != null) ? item[1] : null)]))) : null), f3: ((this.f3 != null) ? fbe.MapToObject(new Map(Array.from(this.f3, item => [((item[0] != null) ? item[0] : null), ((item[1] != null) ? Buffer.from(item[1]).toString('base64') : null)]))) : null), f4: ((this.f4 != null) ? fbe.MapToObject(new Map(Array.from(this.f4, item => [((item[0] != null) ? item[0] : null), ((item[1] != null) ? Buffer.from(item[1]).toString('base64') : null)]))) : null), f5: ((this.f5 != null) ? fbe.MapToObject(new Map(Array.from(this.f5, item => [((item[0] != null) ? item[0] : null), ((item[1] != null) ? item[1] : null)]))) : null), f6: ((this.f6 != null) ? fbe.MapToObject(new Map(Array.from(this.f6, item => [((item[0] != null) ? item[0] : null), ((item[1] != null) ? item[1] : null)]))) : null), f7: ((this.f7 != null) ? fbe.MapToObject(new Map(Array.from(this.f7, item => [((item[0] != null) ? item[0] : null), ((item[1] != null) ? item[1] : null)]))) : null), f8: ((this.f8 != null) ? fbe.MapToObject(new Map(Array.from(this.f8, item => [((item[0] != null) ? item[0] : null), ((item[1] != null) ? item[1] : null)]))) : null), f9: ((this.f9 != null) ? fbe.MapToObject(new Map(Array.from(this.f9, item => [((item[0] != null) ? item[0] : null), ((item[1] != null) ? item[1] : null)]))) : null), f10: ((this.f10 != null) ? fbe.MapToObject(new Map(Array.from(this.f10, item => [((item[0] != null) ? item[0] : null), ((item[1] != null) ? item[1] : null)]))) : null) } } /** * Convert JSON to struct * @param {!string} json JSON string * @returns {!object} Struct value for JSON */ static fromJSON (json) { return StructHash.fromObject(JSON.parse(json)) } /** * Create struct from object value * @param {!StructHash} other Object value * @returns {!StructHash} Created struct */ static fromObject (other) { return new StructHash().copy(other) } /** * Get the FBE type * @this {!StructHash} * @returns {!number} FBE type */ get fbeType () { return StructHash.fbeType } /** * Get the FBE type (static) * @this {!StructHash} * @returns {!number} FBE type */ static get fbeType () { return 141 } } exports.StructHash = StructHash /** * Fast Binary Encoding StructHash field model */ class FieldModelStructHash extends fbe.FieldModel { /** * Initialize field model with the given buffer and offset * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Buffer * @param {!number} offset Offset * @constructor */ constructor (buffer, offset) { super(buffer, offset) this._f1 = new fbe.FieldModelMap(new fbe.FieldModelString(buffer, 4 + 4), new fbe.FieldModelByte(buffer, 4 + 4), buffer, 4 + 4) this._f2 = new fbe.FieldModelMap(new fbe.FieldModelString(buffer, this._f1.fbeOffset + this._f1.fbeSize), new fbe.FieldModelOptional(new fbe.FieldModelByte(buffer, this._f1.fbeOffset + this._f1.fbeSize), buffer, this._f1.fbeOffset + this._f1.fbeSize), buffer, this._f1.fbeOffset + this._f1.fbeSize) this._f3 = new fbe.FieldModelMap(new fbe.FieldModelString(buffer, this._f2.fbeOffset + this._f2.fbeSize), new fbe.FieldModelBytes(buffer, this._f2.fbeOffset + this._f2.fbeSize), buffer, this._f2.fbeOffset + this._f2.fbeSize) this._f4 = new fbe.FieldModelMap(new fbe.FieldModelString(buffer, this._f3.fbeOffset + this._f3.fbeSize), new fbe.FieldModelOptional(new fbe.FieldModelBytes(buffer, this._f3.fbeOffset + this._f3.fbeSize), buffer, this._f3.fbeOffset + this._f3.fbeSize), buffer, this._f3.fbeOffset + this._f3.fbeSize) this._f5 = new fbe.FieldModelMap(new fbe.FieldModelString(buffer, this._f4.fbeOffset + this._f4.fbeSize), new FieldModelEnumSimple(buffer, this._f4.fbeOffset + this._f4.fbeSize), buffer, this._f4.fbeOffset + this._f4.fbeSize) this._f6 = new fbe.FieldModelMap(new fbe.FieldModelString(buffer, this._f5.fbeOffset + this._f5.fbeSize), new fbe.FieldModelOptional(new FieldModelEnumSimple(buffer, this._f5.fbeOffset + this._f5.fbeSize), buffer, this._f5.fbeOffset + this._f5.fbeSize), buffer, this._f5.fbeOffset + this._f5.fbeSize) this._f7 = new fbe.FieldModelMap(new fbe.FieldModelString(buffer, this._f6.fbeOffset + this._f6.fbeSize), new FieldModelFlagsSimple(buffer, this._f6.fbeOffset + this._f6.fbeSize), buffer, this._f6.fbeOffset + this._f6.fbeSize) this._f8 = new fbe.FieldModelMap(new fbe.FieldModelString(buffer, this._f7.fbeOffset + this._f7.fbeSize), new fbe.FieldModelOptional(new FieldModelFlagsSimple(buffer, this._f7.fbeOffset + this._f7.fbeSize), buffer, this._f7.fbeOffset + this._f7.fbeSize), buffer, this._f7.fbeOffset + this._f7.fbeSize) this._f9 = new fbe.FieldModelMap(new fbe.FieldModelString(buffer, this._f8.fbeOffset + this._f8.fbeSize), new FieldModelStructSimple(buffer, this._f8.fbeOffset + this._f8.fbeSize), buffer, this._f8.fbeOffset + this._f8.fbeSize) this._f10 = new fbe.FieldModelMap(new fbe.FieldModelString(buffer, this._f9.fbeOffset + this._f9.fbeSize), new fbe.FieldModelOptional(new FieldModelStructSimple(buffer, this._f9.fbeOffset + this._f9.fbeSize), buffer, this._f9.fbeOffset + this._f9.fbeSize), buffer, this._f9.fbeOffset + this._f9.fbeSize) } /** * Get the f1 field model * @this {!FieldModelStructHash} * @returns {!fbe.FieldModelMap} f1 field model */ get f1 () { return this._f1 } /** * Get the f2 field model * @this {!FieldModelStructHash} * @returns {!fbe.FieldModelMap} f2 field model */ get f2 () { return this._f2 } /** * Get the f3 field model * @this {!FieldModelStructHash} * @returns {!fbe.FieldModelMap} f3 field model */ get f3 () { return this._f3 } /** * Get the f4 field model * @this {!FieldModelStructHash} * @returns {!fbe.FieldModelMap} f4 field model */ get f4 () { return this._f4 } /** * Get the f5 field model * @this {!FieldModelStructHash} * @returns {!fbe.FieldModelMap} f5 field model */ get f5 () { return this._f5 } /** * Get the f6 field model * @this {!FieldModelStructHash} * @returns {!fbe.FieldModelMap} f6 field model */ get f6 () { return this._f6 } /** * Get the f7 field model * @this {!FieldModelStructHash} * @returns {!fbe.FieldModelMap} f7 field model */ get f7 () { return this._f7 } /** * Get the f8 field model * @this {!FieldModelStructHash} * @returns {!fbe.FieldModelMap} f8 field model */ get f8 () { return this._f8 } /** * Get the f9 field model * @this {!FieldModelStructHash} * @returns {!fbe.FieldModelMap} f9 field model */ get f9 () { return this._f9 } /** * Get the f10 field model * @this {!FieldModelStructHash} * @returns {!fbe.FieldModelMap} f10 field model */ get f10 () { return this._f10 } /** * Get the field size * @this {!FieldModelStructHash} * @returns {!number} Field size */ get fbeSize () { return 4 } /** * Get the field body size * @this {!FieldModelStructHash} * @returns {!number} Field body size */ get fbeBody () { return 4 + 4 + this.f1.fbeSize + this.f2.fbeSize + this.f3.fbeSize + this.f4.fbeSize + this.f5.fbeSize + this.f6.fbeSize + this.f7.fbeSize + this.f8.fbeSize + this.f9.fbeSize + this.f10.fbeSize } /** * Get the field extra size * @this {!FieldModelStructHash} * @returns {!number} Field extra size */ get fbeExtra () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructOffset = this.readUInt32(this.fbeOffset) if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4) > this._buffer.size)) { return 0 } this._buffer.shift(fbeStructOffset) let fbeResult = this.fbeBody + this.f1.fbeExtra + this.f2.fbeExtra + this.f3.fbeExtra + this.f4.fbeExtra + this.f5.fbeExtra + this.f6.fbeExtra + this.f7.fbeExtra + this.f8.fbeExtra + this.f9.fbeExtra + this.f10.fbeExtra this._buffer.unshift(fbeStructOffset) return fbeResult } /** * Get the field type * @this {!FieldModelStructHash} * @returns {!number} Field type */ get fbeType () { return FieldModelStructHash.fbeType } /** * Get the field type (static) * @this {!FieldModelStructHash} * @returns {!number} Field type */ static get fbeType () { return 141 } /** * Check if the struct value is valid * @this {!FieldModelStructHash} * @param {!boolean} fbeVerifyType Verify model type flag, defaults is true * @returns {!boolean} Field model valid state */ verify (fbeVerifyType = true) { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return true } let fbeStructOffset = this.readUInt32(this.fbeOffset) if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4 + 4) > this._buffer.size)) { return false } let fbeStructSize = this.readUInt32(fbeStructOffset) if (fbeStructSize < (4 + 4)) { return false } let fbeStructType = this.readUInt32(fbeStructOffset + 4) if (fbeVerifyType && (fbeStructType !== this.fbeType)) { return false } this._buffer.shift(fbeStructOffset) let fbeResult = this.verifyFields(fbeStructSize) this._buffer.unshift(fbeStructOffset) return fbeResult } /** * Check if the struct fields are valid * @this {!FieldModelStructHash} * @param {!number} fbeStructSize FBE struct size * @returns {!boolean} Field model valid state */ verifyFields (fbeStructSize) { let fbeCurrentSize = 4 + 4 if ((fbeCurrentSize + this.f1.fbeSize) > fbeStructSize) { return true } if (!this.f1.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1.fbeSize if ((fbeCurrentSize + this.f2.fbeSize) > fbeStructSize) { return true } if (!this.f2.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f2.fbeSize if ((fbeCurrentSize + this.f3.fbeSize) > fbeStructSize) { return true } if (!this.f3.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f3.fbeSize if ((fbeCurrentSize + this.f4.fbeSize) > fbeStructSize) { return true } if (!this.f4.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f4.fbeSize if ((fbeCurrentSize + this.f5.fbeSize) > fbeStructSize) { return true } if (!this.f5.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f5.fbeSize if ((fbeCurrentSize + this.f6.fbeSize) > fbeStructSize) { return true } if (!this.f6.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f6.fbeSize if ((fbeCurrentSize + this.f7.fbeSize) > fbeStructSize) { return true } if (!this.f7.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f7.fbeSize if ((fbeCurrentSize + this.f8.fbeSize) > fbeStructSize) { return true } if (!this.f8.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f8.fbeSize if ((fbeCurrentSize + this.f9.fbeSize) > fbeStructSize) { return true } if (!this.f9.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f9.fbeSize if ((fbeCurrentSize + this.f10.fbeSize) > fbeStructSize) { return true } if (!this.f10.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f10.fbeSize return true } /** * Get the struct value (begin phase) * @this {!FieldModelStructHash} * @returns {!number} Field model begin offset */ getBegin () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructOffset = this.readUInt32(this.fbeOffset) console.assert((fbeStructOffset > 0) && ((this._buffer.offset + fbeStructOffset + 4 + 4) <= this._buffer.size), 'Model is broken!') if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4 + 4) > this._buffer.size)) { return 0 } let fbeStructSize = this.readUInt32(fbeStructOffset) console.assert((fbeStructSize >= (4 + 4)), 'Model is broken!') if (fbeStructSize < (4 + 4)) { return 0 } this._buffer.shift(fbeStructOffset) return fbeStructOffset } /** * Get the struct value (end phase) * @this {!FieldModelStructHash} * @param {!number} fbeBegin Field model begin offset */ getEnd (fbeBegin) { this._buffer.unshift(fbeBegin) } /** * Get the struct value * @this {!FieldModelStructHash} * @param {!StructHash} fbeValue Default value, defaults is new StructHash() * @returns {!StructHash} StructHash value */ get (fbeValue = new StructHash()) { let fbeBegin = this.getBegin() if (fbeBegin === 0) { return fbeValue } let fbeStructSize = this.readUInt32(0) this.getFields(fbeValue, fbeStructSize) this.getEnd(fbeBegin) return fbeValue } /** * Get the struct fields values * @this {!FieldModelStructHash} * @param {!StructHash} fbeValue StructHash value * @param {!number} fbeStructSize Struct size */ getFields (fbeValue, fbeStructSize) { let fbeCurrentSize = 4 + 4 if ((fbeCurrentSize + this.f1.fbeSize) <= fbeStructSize) { this.f1.get(fbeValue.f1) } else { fbeValue.f1.clear() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1.fbeSize if ((fbeCurrentSize + this.f2.fbeSize) <= fbeStructSize) { this.f2.get(fbeValue.f2) } else { fbeValue.f2.clear() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f2.fbeSize if ((fbeCurrentSize + this.f3.fbeSize) <= fbeStructSize) { this.f3.get(fbeValue.f3) } else { fbeValue.f3.clear() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f3.fbeSize if ((fbeCurrentSize + this.f4.fbeSize) <= fbeStructSize) { this.f4.get(fbeValue.f4) } else { fbeValue.f4.clear() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f4.fbeSize if ((fbeCurrentSize + this.f5.fbeSize) <= fbeStructSize) { this.f5.get(fbeValue.f5) } else { fbeValue.f5.clear() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f5.fbeSize if ((fbeCurrentSize + this.f6.fbeSize) <= fbeStructSize) { this.f6.get(fbeValue.f6) } else { fbeValue.f6.clear() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f6.fbeSize if ((fbeCurrentSize + this.f7.fbeSize) <= fbeStructSize) { this.f7.get(fbeValue.f7) } else { fbeValue.f7.clear() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f7.fbeSize if ((fbeCurrentSize + this.f8.fbeSize) <= fbeStructSize) { this.f8.get(fbeValue.f8) } else { fbeValue.f8.clear() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f8.fbeSize if ((fbeCurrentSize + this.f9.fbeSize) <= fbeStructSize) { this.f9.get(fbeValue.f9) } else { fbeValue.f9.clear() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f9.fbeSize if ((fbeCurrentSize + this.f10.fbeSize) <= fbeStructSize) { this.f10.get(fbeValue.f10) } else { fbeValue.f10.clear() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f10.fbeSize } /** * Set the struct value (begin phase) * @this {!FieldModelStructHash} * @returns {!number} Field model begin offset */ setBegin () { console.assert(((this._buffer.offset + this.fbeOffset + this.fbeSize) <= this._buffer.size), 'Model is broken!') if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructSize = this.fbeBody let fbeStructOffset = this._buffer.allocate(fbeStructSize) - this._buffer.offset console.assert((fbeStructOffset > 0) && ((this._buffer.offset + fbeStructOffset + fbeStructSize) <= this._buffer.size), 'Model is broken!') if ((fbeStructOffset <= 0) || ((this._buffer.offset + fbeStructOffset + fbeStructSize) > this._buffer.size)) { return 0 } this.writeUInt32(this.fbeOffset, fbeStructOffset) this.writeUInt32(fbeStructOffset, fbeStructSize) this.writeUInt32(fbeStructOffset + 4, this.fbeType) this._buffer.shift(fbeStructOffset) return fbeStructOffset } /** * Set the struct value (end phase) * @this {!FieldModelStructHash} * @param {!number} fbeBegin Field model begin offset */ setEnd (fbeBegin) { this._buffer.unshift(fbeBegin) } /** * Set the struct value * @this {!FieldModelStructHash} * @param {!StructHash} fbeValue StructHash value */ set (fbeValue) { let fbeBegin = this.setBegin() if (fbeBegin === 0) { return } this.setFields(fbeValue) this.setEnd(fbeBegin) } /** * Set the struct fields values * @this {!FieldModelStructHash} * @param {StructHash} fbeValue StructHash value */ setFields (fbeValue) { this.f1.set(fbeValue.f1) this.f2.set(fbeValue.f2) this.f3.set(fbeValue.f3) this.f4.set(fbeValue.f4) this.f5.set(fbeValue.f5) this.f6.set(fbeValue.f6) this.f7.set(fbeValue.f7) this.f8.set(fbeValue.f8) this.f9.set(fbeValue.f9) this.f10.set(fbeValue.f10) } } exports.FieldModelStructHash = FieldModelStructHash /** * Fast Binary Encoding StructHash model */ class StructHashModel extends fbe.Model { /** * Initialize model with the given buffer * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Read/Write buffer, defaults is new fbe.WriteBuffer() * @constructor */ constructor (buffer = new fbe.WriteBuffer()) { super(buffer) this._model = new FieldModelStructHash(this.buffer, 4) } /** * Get the StructHash model * @this {!StructHashModel} * @returns {!FieldModelStructHash} model StructHash model */ get model () { return this._model } /** * Get the model size * @this {!StructHashModel} * @returns {!number} Model size */ get fbeSize () { return this.model.fbeSize + this.model.fbeExtra } /** * Get the model type * @this {!StructHashModel} * @returns {!number} Model type */ get fbeType () { return StructHashModel.fbeType } /** * Get the model type (static) * @this {!StructHashModel} * @returns {!number} Model type */ static get fbeType () { return FieldModelStructHash.fbeType } /** * Check if the struct value is valid * @this {!StructHashModel} * @returns {!boolean} Model valid state */ verify () { if ((this.buffer.offset + this.model.fbeOffset - 4) > this.buffer.size) { return false } let fbeFullSize = this.readUInt32(this.model.fbeOffset - 4) if (fbeFullSize < this.model.fbeSize) { return false } return this.model.verify() } /** * Create a new model (begin phase) * @this {!StructHashModel} * @returns {!number} Model begin offset */ createBegin () { return this.buffer.allocate(4 + this.model.fbeSize) } /** * Create a new model (end phase) * @this {!StructHashModel} * @param {!number} fbeBegin Model begin offset */ createEnd (fbeBegin) { let fbeEnd = this.buffer.size let fbeFullSize = fbeEnd - fbeBegin this.writeUInt32(this.model.fbeOffset - 4, fbeFullSize) return fbeFullSize } /** * Serialize the struct value * @this {!StructHashModel} * @param {!StructHash} value StructHash value * @return {!number} Model begin offset */ serialize (value) { let fbeBegin = this.createBegin() this.model.set(value) return this.createEnd(fbeBegin) } /** * Deserialize the struct value * @this {!StructHashModel} * @param {!StructHash} value StructHash value, defaults is new StructHash() * @return {!object} Deserialized StructHash value and its size */ deserialize (value = new StructHash()) { if ((this.buffer.offset + this.model.fbeOffset - 4) > this.buffer.size) { return { value: new StructHash(), size: 0 } } let fbeFullSize = this.readUInt32(this.model.fbeOffset - 4) console.assert((fbeFullSize >= this.model.fbeSize), 'Model is broken!') if (fbeFullSize < this.model.fbeSize) { return { value: new StructHash(), size: 0 } } this.model.get(value) return { value, size: fbeFullSize } } /** * Move to the next struct value * @this {!StructHashModel} * @param {!number} prev Previous StructHash model size */ next (prev) { this.model.fbeShift(prev) } } exports.StructHashModel = StructHashModel /** * Fast Binary Encoding StructHash final model */ class FinalModelStructHash extends fbe.FinalModel { /** * Initialize final model with the given buffer and offset * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Buffer * @param {!number} offset Offset * @constructor */ constructor (buffer, offset) { super(buffer, offset) this._f1 = new fbe.FinalModelMap(new fbe.FinalModelString(buffer, 0), new fbe.FinalModelByte(buffer, 0), buffer, 0) this._f2 = new fbe.FinalModelMap(new fbe.FinalModelString(buffer, 0), new fbe.FinalModelOptional(new fbe.FinalModelByte(buffer, 0), buffer, 0), buffer, 0) this._f3 = new fbe.FinalModelMap(new fbe.FinalModelString(buffer, 0), new fbe.FinalModelBytes(buffer, 0), buffer, 0) this._f4 = new fbe.FinalModelMap(new fbe.FinalModelString(buffer, 0), new fbe.FinalModelOptional(new fbe.FinalModelBytes(buffer, 0), buffer, 0), buffer, 0) this._f5 = new fbe.FinalModelMap(new fbe.FinalModelString(buffer, 0), new FinalModelEnumSimple(buffer, 0), buffer, 0) this._f6 = new fbe.FinalModelMap(new fbe.FinalModelString(buffer, 0), new fbe.FinalModelOptional(new FinalModelEnumSimple(buffer, 0), buffer, 0), buffer, 0) this._f7 = new fbe.FinalModelMap(new fbe.FinalModelString(buffer, 0), new FinalModelFlagsSimple(buffer, 0), buffer, 0) this._f8 = new fbe.FinalModelMap(new fbe.FinalModelString(buffer, 0), new fbe.FinalModelOptional(new FinalModelFlagsSimple(buffer, 0), buffer, 0), buffer, 0) this._f9 = new fbe.FinalModelMap(new fbe.FinalModelString(buffer, 0), new FinalModelStructSimple(buffer, 0), buffer, 0) this._f10 = new fbe.FinalModelMap(new fbe.FinalModelString(buffer, 0), new fbe.FinalModelOptional(new FinalModelStructSimple(buffer, 0), buffer, 0), buffer, 0) } /** * Get the f1 final model * @this {!FinalModelStructHash} * @returns {!fbe.FinalModelMap} f1 final model */ get f1 () { return this._f1 } /** * Get the f2 final model * @this {!FinalModelStructHash} * @returns {!fbe.FinalModelMap} f2 final model */ get f2 () { return this._f2 } /** * Get the f3 final model * @this {!FinalModelStructHash} * @returns {!fbe.FinalModelMap} f3 final model */ get f3 () { return this._f3 } /** * Get the f4 final model * @this {!FinalModelStructHash} * @returns {!fbe.FinalModelMap} f4 final model */ get f4 () { return this._f4 } /** * Get the f5 final model * @this {!FinalModelStructHash} * @returns {!fbe.FinalModelMap} f5 final model */ get f5 () { return this._f5 } /** * Get the f6 final model * @this {!FinalModelStructHash} * @returns {!fbe.FinalModelMap} f6 final model */ get f6 () { return this._f6 } /** * Get the f7 final model * @this {!FinalModelStructHash} * @returns {!fbe.FinalModelMap} f7 final model */ get f7 () { return this._f7 } /** * Get the f8 final model * @this {!FinalModelStructHash} * @returns {!fbe.FinalModelMap} f8 final model */ get f8 () { return this._f8 } /** * Get the f9 final model * @this {!FinalModelStructHash} * @returns {!fbe.FinalModelMap} f9 final model */ get f9 () { return this._f9 } /** * Get the f10 final model * @this {!FinalModelStructHash} * @returns {!fbe.FinalModelMap} f10 final model */ get f10 () { return this._f10 } /** * Get the allocation size * @this {!FinalModelStructHash} * @param {!StructHash} fbeValue StructHash value * @returns {!number} Allocation size */ fbeAllocationSize (fbeValue) { return 0 + this.f1.fbeAllocationSize(fbeValue.f1) + this.f2.fbeAllocationSize(fbeValue.f2) + this.f3.fbeAllocationSize(fbeValue.f3) + this.f4.fbeAllocationSize(fbeValue.f4) + this.f5.fbeAllocationSize(fbeValue.f5) + this.f6.fbeAllocationSize(fbeValue.f6) + this.f7.fbeAllocationSize(fbeValue.f7) + this.f8.fbeAllocationSize(fbeValue.f8) + this.f9.fbeAllocationSize(fbeValue.f9) + this.f10.fbeAllocationSize(fbeValue.f10) } /** * Get the final type * @this {!FinalModelStructHash} * @returns {!number} Final type */ get fbeType () { return FinalModelStructHash.fbeType } /** * Get the final type (static) * @this {!FinalModelStructHash} * @returns {!number} Final type */ static get fbeType () { return 141 } /** * Check if the struct value is valid * @this {!FinalModelStructHash} * @returns {!number} Final model size or Number.MAX_SAFE_INTEGER in case of any error */ verify () { this._buffer.shift(this.fbeOffset) let fbeResult = this.verifyFields() this._buffer.unshift(this.fbeOffset) return fbeResult } /** * Check if the struct fields are valid * @this {!FinalModelStructHash} * @returns {!number} Final model size or Number.MAX_SAFE_INTEGER in case of any error */ verifyFields () { let fbeCurrentOffset = 0 let fbeFieldSize this.f1.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f2.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f2.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f3.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f3.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f4.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f4.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f5.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f5.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f6.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f6.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f7.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f7.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f8.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f8.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f9.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f9.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f10.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f10.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize return fbeCurrentOffset } /** * Get the struct value * @this {!FinalModelStructHash} * @param {!StructHash} fbeValue StructHash value, defaults is new StructHash() * @returns {!object} Result struct value and its size */ get (fbeValue = new StructHash()) { this._buffer.shift(this.fbeOffset) let fbeSize = this.getFields(fbeValue) this._buffer.unshift(this.fbeOffset) return { value: fbeValue, size: fbeSize } } /** * Get the struct fields values * @this {!FinalModelStructHash} * @param {!StructHash} fbeValue StructHash value * @returns {!number} Struct size */ getFields (fbeValue) { let fbeCurrentOffset = 0 let fbeCurrentSize = 0 let fbeResult this.f1.fbeOffset = fbeCurrentOffset fbeResult = this.f1.get(fbeValue.f1) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f2.fbeOffset = fbeCurrentOffset fbeResult = this.f2.get(fbeValue.f2) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f3.fbeOffset = fbeCurrentOffset fbeResult = this.f3.get(fbeValue.f3) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f4.fbeOffset = fbeCurrentOffset fbeResult = this.f4.get(fbeValue.f4) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f5.fbeOffset = fbeCurrentOffset fbeResult = this.f5.get(fbeValue.f5) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f6.fbeOffset = fbeCurrentOffset fbeResult = this.f6.get(fbeValue.f6) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f7.fbeOffset = fbeCurrentOffset fbeResult = this.f7.get(fbeValue.f7) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f8.fbeOffset = fbeCurrentOffset fbeResult = this.f8.get(fbeValue.f8) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f9.fbeOffset = fbeCurrentOffset fbeResult = this.f9.get(fbeValue.f9) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f10.fbeOffset = fbeCurrentOffset fbeResult = this.f10.get(fbeValue.f10) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size return fbeCurrentSize } /** * Set the struct value * @this {!FinalModelStructHash} * @param {!StructHash} fbeValue StructHash value * @returns {!number} Final model size */ set (fbeValue) { this._buffer.shift(this.fbeOffset) let fbeSize = this.setFields(fbeValue) this._buffer.unshift(this.fbeOffset) return fbeSize } /** * Set the struct fields values * @this {!FinalModelStructHash} * @param {StructHash} fbeValue StructHash value * @returns {!number} Final model size */ setFields (fbeValue) { let fbeCurrentOffset = 0 let fbeCurrentSize = 0 let fbeFieldSize this.f1.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1.set(fbeValue.f1) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f2.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f2.set(fbeValue.f2) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f3.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f3.set(fbeValue.f3) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f4.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f4.set(fbeValue.f4) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f5.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f5.set(fbeValue.f5) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f6.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f6.set(fbeValue.f6) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f7.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f7.set(fbeValue.f7) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f8.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f8.set(fbeValue.f8) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f9.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f9.set(fbeValue.f9) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f10.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f10.set(fbeValue.f10) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize return fbeCurrentSize } } exports.FinalModelStructHash = FinalModelStructHash /** * Fast Binary Encoding StructHash final model */ class StructHashFinalModel extends fbe.Model { /** * Initialize final model with the given buffer * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Read/Write buffer, defaults is new fbe.WriteBuffer() * @constructor */ constructor (buffer = new fbe.WriteBuffer()) { super(buffer) this._model = new FinalModelStructHash(this.buffer, 8) } /** * Get the model type * @this {!StructHashFinalModel} * @returns {!number} Model type */ get fbeType () { return StructHashFinalModel.fbeType } /** * Get the model type (static) * @this {!StructHashFinalModel} * @returns {!number} Model type */ static get fbeType () { return FinalModelStructHash.fbeType } /** * Check if the struct value is valid * @this {!StructHashFinalModel} * @returns {!boolean} Model valid state */ verify () { if ((this.buffer.offset + this._model.fbeOffset) > this.buffer.size) { return false } let fbeStructSize = this.readUInt32(this._model.fbeOffset - 8) let fbeStructType = this.readUInt32(this._model.fbeOffset - 4) if ((fbeStructSize <= 0) || (fbeStructType !== this.fbeType)) { return false } return ((8 + this._model.verify()) === fbeStructSize) } /** * Serialize the struct value * @this {!StructHashFinalModel} * @param {!StructHash} value StructHash value * @return {!number} Struct size */ serialize (value) { let fbeInitialSize = this.buffer.size let fbeStructType = this.fbeType let fbeStructSize = 8 + this._model.fbeAllocationSize(value) let fbeStructOffset = this.buffer.allocate(fbeStructSize) - this.buffer.offset console.assert(((this.buffer.offset + fbeStructOffset + fbeStructSize) <= this.buffer.size), 'Model is broken!') if ((this.buffer.offset + fbeStructOffset + fbeStructSize) > this.buffer.size) { return 0 } fbeStructSize = 8 + this._model.set(value) this.buffer.resize(fbeInitialSize + fbeStructSize) this.writeUInt32(this._model.fbeOffset - 8, fbeStructSize) this.writeUInt32(this._model.fbeOffset - 4, fbeStructType) return fbeStructSize } /** * Deserialize the struct value * @this {!StructHashFinalModel} * @param {!StructHash} value StructHash value, defaults is new StructHash() * @return {!object} Deserialized StructHash value and its size */ deserialize (value = new StructHash()) { console.assert(((this.buffer.offset + this._model.fbeOffset) <= this.buffer.size), 'Model is broken!') if ((this.buffer.offset + this._model.fbeOffset) > this.buffer.size) { return { value: new StructHash(), size: 0 } } let fbeStructSize = this.readUInt32(this._model.fbeOffset - 8) let fbeStructType = this.readUInt32(this._model.fbeOffset - 4) console.assert(((fbeStructSize > 0) && (fbeStructType === this.fbeType)), 'Model is broken!') if ((fbeStructSize <= 0) || (fbeStructType !== this.fbeType)) { return { value: new StructHash(), size: 8 } } let fbeResult = this._model.get(value) return { value: fbeResult.value, size: (8 + fbeResult.size) } } /** * Move to the next struct value * @this {!StructHashFinalModel} * @param {!number} prev Previous StructHash model size */ next (prev) { this._model.fbeShift(prev) } } exports.StructHashFinalModel = StructHashFinalModel /** * StructHashEx struct */ class StructHashEx { /** * Initialize struct * @param {!Map=} f1 * @param {Map=} f2 * @constructor */ constructor (argf1 = new Map(), argf2 = new Map()) { this.f1 = argf1 this.f2 = argf2 } /** * Copy struct (shallow copy) * @this {!StructHashEx} * @param {!StructHashEx} other Other struct * @returns {!StructHashEx} This struct */ copy (other) { if (other.f1 != null) { this.f1 = new Map() Object.keys(other.f1).forEach(key => { if (key != null) { let tempKey tempKey = StructSimple.fromObject(key) if (other.f1[key] != null) { let tempValue tempValue = StructNested.fromObject(other.f1[key]) this.f1.set(tempKey, tempValue) } else { this.f1.set(tempKey, undefined) } } }) } else { this.f1 = undefined } if (other.f2 != null) { this.f2 = new Map() Object.keys(other.f2).forEach(key => { if (key != null) { let tempKey tempKey = StructSimple.fromObject(key) if (other.f2[key] != null) { let tempValue tempValue = StructNested.fromObject(other.f2[key]) this.f2.set(tempKey, tempValue) } else { this.f2.set(tempKey, undefined) } } }) } else { this.f2 = undefined } return this } /** * Clone struct (deep clone) * @this {!StructHashEx} * @returns {!StructHashEx} Cloned struct */ clone () { // Serialize the struct to the FBE stream let writer = new StructHashExModel(new fbe.WriteBuffer()) writer.serialize(this) // Deserialize the struct from the FBE stream let reader = new StructHashExModel(new fbe.ReadBuffer()) reader.attachBuffer(writer.buffer) return reader.deserialize().value } /** * Is this struct equal to other one? * @this {!StructHashEx} * @param {!StructHashEx} other Other struct * @returns {boolean} Equal result */ eq (other) { if (!(other instanceof StructHashEx)) { throw new TypeError('Instance of StructHashEx is required!') } return true } /** * Convert struct to string * @this {!StructHashEx} * @returns {!string} Struct value string */ toString () { let result = '' result += 'StructHashEx(' result += 'f1=' if (this.f1 != null) { let first = true result += '[' + this.f1.size + '][{' for (let [key, value] of this.f1) { result += first ? '' : ',' result += key.toString() result += '->' result += value.toString() first = false } result += '}]' } else { result += '[0][{}]' } result += ',f2=' if (this.f2 != null) { let first = true result += '[' + this.f2.size + '][{' for (let [key, value] of this.f2) { result += first ? '' : ',' result += key.toString() result += '->' if (value != null) { result += value.toString() } else { result += 'null' } first = false } result += '}]' } else { result += '[0][{}]' } result += ')' return result } /** * Inspect struct * @this {!StructHashEx} * @returns {!string} Struct value string */ [util.inspect.custom] () { return this.toString() } /** * Convert struct to JSON * @this {!StructHashEx} * @returns {!object} Struct value for JSON */ toJSON () { return { f1: ((this.f1 != null) ? fbe.MapToObject(new Map(Array.from(this.f1, item => [((item[0] != null) ? item[0] : null), ((item[1] != null) ? item[1] : null)]))) : null), f2: ((this.f2 != null) ? fbe.MapToObject(new Map(Array.from(this.f2, item => [((item[0] != null) ? item[0] : null), ((item[1] != null) ? item[1] : null)]))) : null) } } /** * Convert JSON to struct * @param {!string} json JSON string * @returns {!object} Struct value for JSON */ static fromJSON (json) { return StructHashEx.fromObject(JSON.parse(json)) } /** * Create struct from object value * @param {!StructHashEx} other Object value * @returns {!StructHashEx} Created struct */ static fromObject (other) { return new StructHashEx().copy(other) } /** * Get the FBE type * @this {!StructHashEx} * @returns {!number} FBE type */ get fbeType () { return StructHashEx.fbeType } /** * Get the FBE type (static) * @this {!StructHashEx} * @returns {!number} FBE type */ static get fbeType () { return 142 } } exports.StructHashEx = StructHashEx /** * Fast Binary Encoding StructHashEx field model */ class FieldModelStructHashEx extends fbe.FieldModel { /** * Initialize field model with the given buffer and offset * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Buffer * @param {!number} offset Offset * @constructor */ constructor (buffer, offset) { super(buffer, offset) this._f1 = new fbe.FieldModelMap(new FieldModelStructSimple(buffer, 4 + 4), new FieldModelStructNested(buffer, 4 + 4), buffer, 4 + 4) this._f2 = new fbe.FieldModelMap(new FieldModelStructSimple(buffer, this._f1.fbeOffset + this._f1.fbeSize), new fbe.FieldModelOptional(new FieldModelStructNested(buffer, this._f1.fbeOffset + this._f1.fbeSize), buffer, this._f1.fbeOffset + this._f1.fbeSize), buffer, this._f1.fbeOffset + this._f1.fbeSize) } /** * Get the f1 field model * @this {!FieldModelStructHashEx} * @returns {!fbe.FieldModelMap} f1 field model */ get f1 () { return this._f1 } /** * Get the f2 field model * @this {!FieldModelStructHashEx} * @returns {!fbe.FieldModelMap} f2 field model */ get f2 () { return this._f2 } /** * Get the field size * @this {!FieldModelStructHashEx} * @returns {!number} Field size */ get fbeSize () { return 4 } /** * Get the field body size * @this {!FieldModelStructHashEx} * @returns {!number} Field body size */ get fbeBody () { return 4 + 4 + this.f1.fbeSize + this.f2.fbeSize } /** * Get the field extra size * @this {!FieldModelStructHashEx} * @returns {!number} Field extra size */ get fbeExtra () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructOffset = this.readUInt32(this.fbeOffset) if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4) > this._buffer.size)) { return 0 } this._buffer.shift(fbeStructOffset) let fbeResult = this.fbeBody + this.f1.fbeExtra + this.f2.fbeExtra this._buffer.unshift(fbeStructOffset) return fbeResult } /** * Get the field type * @this {!FieldModelStructHashEx} * @returns {!number} Field type */ get fbeType () { return FieldModelStructHashEx.fbeType } /** * Get the field type (static) * @this {!FieldModelStructHashEx} * @returns {!number} Field type */ static get fbeType () { return 142 } /** * Check if the struct value is valid * @this {!FieldModelStructHashEx} * @param {!boolean} fbeVerifyType Verify model type flag, defaults is true * @returns {!boolean} Field model valid state */ verify (fbeVerifyType = true) { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return true } let fbeStructOffset = this.readUInt32(this.fbeOffset) if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4 + 4) > this._buffer.size)) { return false } let fbeStructSize = this.readUInt32(fbeStructOffset) if (fbeStructSize < (4 + 4)) { return false } let fbeStructType = this.readUInt32(fbeStructOffset + 4) if (fbeVerifyType && (fbeStructType !== this.fbeType)) { return false } this._buffer.shift(fbeStructOffset) let fbeResult = this.verifyFields(fbeStructSize) this._buffer.unshift(fbeStructOffset) return fbeResult } /** * Check if the struct fields are valid * @this {!FieldModelStructHashEx} * @param {!number} fbeStructSize FBE struct size * @returns {!boolean} Field model valid state */ verifyFields (fbeStructSize) { let fbeCurrentSize = 4 + 4 if ((fbeCurrentSize + this.f1.fbeSize) > fbeStructSize) { return true } if (!this.f1.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1.fbeSize if ((fbeCurrentSize + this.f2.fbeSize) > fbeStructSize) { return true } if (!this.f2.verify()) { return false } // noinspection JSUnusedAssignment fbeCurrentSize += this.f2.fbeSize return true } /** * Get the struct value (begin phase) * @this {!FieldModelStructHashEx} * @returns {!number} Field model begin offset */ getBegin () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructOffset = this.readUInt32(this.fbeOffset) console.assert((fbeStructOffset > 0) && ((this._buffer.offset + fbeStructOffset + 4 + 4) <= this._buffer.size), 'Model is broken!') if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4 + 4) > this._buffer.size)) { return 0 } let fbeStructSize = this.readUInt32(fbeStructOffset) console.assert((fbeStructSize >= (4 + 4)), 'Model is broken!') if (fbeStructSize < (4 + 4)) { return 0 } this._buffer.shift(fbeStructOffset) return fbeStructOffset } /** * Get the struct value (end phase) * @this {!FieldModelStructHashEx} * @param {!number} fbeBegin Field model begin offset */ getEnd (fbeBegin) { this._buffer.unshift(fbeBegin) } /** * Get the struct value * @this {!FieldModelStructHashEx} * @param {!StructHashEx} fbeValue Default value, defaults is new StructHashEx() * @returns {!StructHashEx} StructHashEx value */ get (fbeValue = new StructHashEx()) { let fbeBegin = this.getBegin() if (fbeBegin === 0) { return fbeValue } let fbeStructSize = this.readUInt32(0) this.getFields(fbeValue, fbeStructSize) this.getEnd(fbeBegin) return fbeValue } /** * Get the struct fields values * @this {!FieldModelStructHashEx} * @param {!StructHashEx} fbeValue StructHashEx value * @param {!number} fbeStructSize Struct size */ getFields (fbeValue, fbeStructSize) { let fbeCurrentSize = 4 + 4 if ((fbeCurrentSize + this.f1.fbeSize) <= fbeStructSize) { this.f1.get(fbeValue.f1) } else { fbeValue.f1.clear() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f1.fbeSize if ((fbeCurrentSize + this.f2.fbeSize) <= fbeStructSize) { this.f2.get(fbeValue.f2) } else { fbeValue.f2.clear() } // noinspection JSUnusedAssignment fbeCurrentSize += this.f2.fbeSize } /** * Set the struct value (begin phase) * @this {!FieldModelStructHashEx} * @returns {!number} Field model begin offset */ setBegin () { console.assert(((this._buffer.offset + this.fbeOffset + this.fbeSize) <= this._buffer.size), 'Model is broken!') if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructSize = this.fbeBody let fbeStructOffset = this._buffer.allocate(fbeStructSize) - this._buffer.offset console.assert((fbeStructOffset > 0) && ((this._buffer.offset + fbeStructOffset + fbeStructSize) <= this._buffer.size), 'Model is broken!') if ((fbeStructOffset <= 0) || ((this._buffer.offset + fbeStructOffset + fbeStructSize) > this._buffer.size)) { return 0 } this.writeUInt32(this.fbeOffset, fbeStructOffset) this.writeUInt32(fbeStructOffset, fbeStructSize) this.writeUInt32(fbeStructOffset + 4, this.fbeType) this._buffer.shift(fbeStructOffset) return fbeStructOffset } /** * Set the struct value (end phase) * @this {!FieldModelStructHashEx} * @param {!number} fbeBegin Field model begin offset */ setEnd (fbeBegin) { this._buffer.unshift(fbeBegin) } /** * Set the struct value * @this {!FieldModelStructHashEx} * @param {!StructHashEx} fbeValue StructHashEx value */ set (fbeValue) { let fbeBegin = this.setBegin() if (fbeBegin === 0) { return } this.setFields(fbeValue) this.setEnd(fbeBegin) } /** * Set the struct fields values * @this {!FieldModelStructHashEx} * @param {StructHashEx} fbeValue StructHashEx value */ setFields (fbeValue) { this.f1.set(fbeValue.f1) this.f2.set(fbeValue.f2) } } exports.FieldModelStructHashEx = FieldModelStructHashEx /** * Fast Binary Encoding StructHashEx model */ class StructHashExModel extends fbe.Model { /** * Initialize model with the given buffer * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Read/Write buffer, defaults is new fbe.WriteBuffer() * @constructor */ constructor (buffer = new fbe.WriteBuffer()) { super(buffer) this._model = new FieldModelStructHashEx(this.buffer, 4) } /** * Get the StructHashEx model * @this {!StructHashExModel} * @returns {!FieldModelStructHashEx} model StructHashEx model */ get model () { return this._model } /** * Get the model size * @this {!StructHashExModel} * @returns {!number} Model size */ get fbeSize () { return this.model.fbeSize + this.model.fbeExtra } /** * Get the model type * @this {!StructHashExModel} * @returns {!number} Model type */ get fbeType () { return StructHashExModel.fbeType } /** * Get the model type (static) * @this {!StructHashExModel} * @returns {!number} Model type */ static get fbeType () { return FieldModelStructHashEx.fbeType } /** * Check if the struct value is valid * @this {!StructHashExModel} * @returns {!boolean} Model valid state */ verify () { if ((this.buffer.offset + this.model.fbeOffset - 4) > this.buffer.size) { return false } let fbeFullSize = this.readUInt32(this.model.fbeOffset - 4) if (fbeFullSize < this.model.fbeSize) { return false } return this.model.verify() } /** * Create a new model (begin phase) * @this {!StructHashExModel} * @returns {!number} Model begin offset */ createBegin () { return this.buffer.allocate(4 + this.model.fbeSize) } /** * Create a new model (end phase) * @this {!StructHashExModel} * @param {!number} fbeBegin Model begin offset */ createEnd (fbeBegin) { let fbeEnd = this.buffer.size let fbeFullSize = fbeEnd - fbeBegin this.writeUInt32(this.model.fbeOffset - 4, fbeFullSize) return fbeFullSize } /** * Serialize the struct value * @this {!StructHashExModel} * @param {!StructHashEx} value StructHashEx value * @return {!number} Model begin offset */ serialize (value) { let fbeBegin = this.createBegin() this.model.set(value) return this.createEnd(fbeBegin) } /** * Deserialize the struct value * @this {!StructHashExModel} * @param {!StructHashEx} value StructHashEx value, defaults is new StructHashEx() * @return {!object} Deserialized StructHashEx value and its size */ deserialize (value = new StructHashEx()) { if ((this.buffer.offset + this.model.fbeOffset - 4) > this.buffer.size) { return { value: new StructHashEx(), size: 0 } } let fbeFullSize = this.readUInt32(this.model.fbeOffset - 4) console.assert((fbeFullSize >= this.model.fbeSize), 'Model is broken!') if (fbeFullSize < this.model.fbeSize) { return { value: new StructHashEx(), size: 0 } } this.model.get(value) return { value, size: fbeFullSize } } /** * Move to the next struct value * @this {!StructHashExModel} * @param {!number} prev Previous StructHashEx model size */ next (prev) { this.model.fbeShift(prev) } } exports.StructHashExModel = StructHashExModel /** * Fast Binary Encoding StructHashEx final model */ class FinalModelStructHashEx extends fbe.FinalModel { /** * Initialize final model with the given buffer and offset * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Buffer * @param {!number} offset Offset * @constructor */ constructor (buffer, offset) { super(buffer, offset) this._f1 = new fbe.FinalModelMap(new FinalModelStructSimple(buffer, 0), new FinalModelStructNested(buffer, 0), buffer, 0) this._f2 = new fbe.FinalModelMap(new FinalModelStructSimple(buffer, 0), new fbe.FinalModelOptional(new FinalModelStructNested(buffer, 0), buffer, 0), buffer, 0) } /** * Get the f1 final model * @this {!FinalModelStructHashEx} * @returns {!fbe.FinalModelMap} f1 final model */ get f1 () { return this._f1 } /** * Get the f2 final model * @this {!FinalModelStructHashEx} * @returns {!fbe.FinalModelMap} f2 final model */ get f2 () { return this._f2 } /** * Get the allocation size * @this {!FinalModelStructHashEx} * @param {!StructHashEx} fbeValue StructHashEx value * @returns {!number} Allocation size */ fbeAllocationSize (fbeValue) { return 0 + this.f1.fbeAllocationSize(fbeValue.f1) + this.f2.fbeAllocationSize(fbeValue.f2) } /** * Get the final type * @this {!FinalModelStructHashEx} * @returns {!number} Final type */ get fbeType () { return FinalModelStructHashEx.fbeType } /** * Get the final type (static) * @this {!FinalModelStructHashEx} * @returns {!number} Final type */ static get fbeType () { return 142 } /** * Check if the struct value is valid * @this {!FinalModelStructHashEx} * @returns {!number} Final model size or Number.MAX_SAFE_INTEGER in case of any error */ verify () { this._buffer.shift(this.fbeOffset) let fbeResult = this.verifyFields() this._buffer.unshift(this.fbeOffset) return fbeResult } /** * Check if the struct fields are valid * @this {!FinalModelStructHashEx} * @returns {!number} Final model size or Number.MAX_SAFE_INTEGER in case of any error */ verifyFields () { let fbeCurrentOffset = 0 let fbeFieldSize this.f1.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize this.f2.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f2.verify() if (fbeFieldSize === Number.MAX_SAFE_INTEGER) { return Number.MAX_SAFE_INTEGER } fbeCurrentOffset += fbeFieldSize return fbeCurrentOffset } /** * Get the struct value * @this {!FinalModelStructHashEx} * @param {!StructHashEx} fbeValue StructHashEx value, defaults is new StructHashEx() * @returns {!object} Result struct value and its size */ get (fbeValue = new StructHashEx()) { this._buffer.shift(this.fbeOffset) let fbeSize = this.getFields(fbeValue) this._buffer.unshift(this.fbeOffset) return { value: fbeValue, size: fbeSize } } /** * Get the struct fields values * @this {!FinalModelStructHashEx} * @param {!StructHashEx} fbeValue StructHashEx value * @returns {!number} Struct size */ getFields (fbeValue) { let fbeCurrentOffset = 0 let fbeCurrentSize = 0 let fbeResult this.f1.fbeOffset = fbeCurrentOffset fbeResult = this.f1.get(fbeValue.f1) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size this.f2.fbeOffset = fbeCurrentOffset fbeResult = this.f2.get(fbeValue.f2) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeResult.size fbeCurrentSize += fbeResult.size return fbeCurrentSize } /** * Set the struct value * @this {!FinalModelStructHashEx} * @param {!StructHashEx} fbeValue StructHashEx value * @returns {!number} Final model size */ set (fbeValue) { this._buffer.shift(this.fbeOffset) let fbeSize = this.setFields(fbeValue) this._buffer.unshift(this.fbeOffset) return fbeSize } /** * Set the struct fields values * @this {!FinalModelStructHashEx} * @param {StructHashEx} fbeValue StructHashEx value * @returns {!number} Final model size */ setFields (fbeValue) { let fbeCurrentOffset = 0 let fbeCurrentSize = 0 let fbeFieldSize this.f1.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f1.set(fbeValue.f1) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize this.f2.fbeOffset = fbeCurrentOffset fbeFieldSize = this.f2.set(fbeValue.f2) // noinspection JSUnusedAssignment fbeCurrentOffset += fbeFieldSize fbeCurrentSize += fbeFieldSize return fbeCurrentSize } } exports.FinalModelStructHashEx = FinalModelStructHashEx /** * Fast Binary Encoding StructHashEx final model */ class StructHashExFinalModel extends fbe.Model { /** * Initialize final model with the given buffer * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Read/Write buffer, defaults is new fbe.WriteBuffer() * @constructor */ constructor (buffer = new fbe.WriteBuffer()) { super(buffer) this._model = new FinalModelStructHashEx(this.buffer, 8) } /** * Get the model type * @this {!StructHashExFinalModel} * @returns {!number} Model type */ get fbeType () { return StructHashExFinalModel.fbeType } /** * Get the model type (static) * @this {!StructHashExFinalModel} * @returns {!number} Model type */ static get fbeType () { return FinalModelStructHashEx.fbeType } /** * Check if the struct value is valid * @this {!StructHashExFinalModel} * @returns {!boolean} Model valid state */ verify () { if ((this.buffer.offset + this._model.fbeOffset) > this.buffer.size) { return false } let fbeStructSize = this.readUInt32(this._model.fbeOffset - 8) let fbeStructType = this.readUInt32(this._model.fbeOffset - 4) if ((fbeStructSize <= 0) || (fbeStructType !== this.fbeType)) { return false } return ((8 + this._model.verify()) === fbeStructSize) } /** * Serialize the struct value * @this {!StructHashExFinalModel} * @param {!StructHashEx} value StructHashEx value * @return {!number} Struct size */ serialize (value) { let fbeInitialSize = this.buffer.size let fbeStructType = this.fbeType let fbeStructSize = 8 + this._model.fbeAllocationSize(value) let fbeStructOffset = this.buffer.allocate(fbeStructSize) - this.buffer.offset console.assert(((this.buffer.offset + fbeStructOffset + fbeStructSize) <= this.buffer.size), 'Model is broken!') if ((this.buffer.offset + fbeStructOffset + fbeStructSize) > this.buffer.size) { return 0 } fbeStructSize = 8 + this._model.set(value) this.buffer.resize(fbeInitialSize + fbeStructSize) this.writeUInt32(this._model.fbeOffset - 8, fbeStructSize) this.writeUInt32(this._model.fbeOffset - 4, fbeStructType) return fbeStructSize } /** * Deserialize the struct value * @this {!StructHashExFinalModel} * @param {!StructHashEx} value StructHashEx value, defaults is new StructHashEx() * @return {!object} Deserialized StructHashEx value and its size */ deserialize (value = new StructHashEx()) { console.assert(((this.buffer.offset + this._model.fbeOffset) <= this.buffer.size), 'Model is broken!') if ((this.buffer.offset + this._model.fbeOffset) > this.buffer.size) { return { value: new StructHashEx(), size: 0 } } let fbeStructSize = this.readUInt32(this._model.fbeOffset - 8) let fbeStructType = this.readUInt32(this._model.fbeOffset - 4) console.assert(((fbeStructSize > 0) && (fbeStructType === this.fbeType)), 'Model is broken!') if ((fbeStructSize <= 0) || (fbeStructType !== this.fbeType)) { return { value: new StructHashEx(), size: 8 } } let fbeResult = this._model.get(value) return { value: fbeResult.value, size: (8 + fbeResult.size) } } /** * Move to the next struct value * @this {!StructHashExFinalModel} * @param {!number} prev Previous StructHashEx model size */ next (prev) { this._model.fbeShift(prev) } } exports.StructHashExFinalModel = StructHashExFinalModel /** * StructEmpty struct */ class StructEmpty { /** * Copy struct (shallow copy) * @this {!StructEmpty} * @param {!StructEmpty} other Other struct * @returns {!StructEmpty} This struct */ copy (other) { return this } /** * Clone struct (deep clone) * @this {!StructEmpty} * @returns {!StructEmpty} Cloned struct */ clone () { // Serialize the struct to the FBE stream let writer = new StructEmptyModel(new fbe.WriteBuffer()) writer.serialize(this) // Deserialize the struct from the FBE stream let reader = new StructEmptyModel(new fbe.ReadBuffer()) reader.attachBuffer(writer.buffer) return reader.deserialize().value } /** * Is this struct equal to other one? * @this {!StructEmpty} * @param {!StructEmpty} other Other struct * @returns {boolean} Equal result */ eq (other) { if (!(other instanceof StructEmpty)) { throw new TypeError('Instance of StructEmpty is required!') } return true } /** * Convert struct to string * @this {!StructEmpty} * @returns {!string} Struct value string */ toString () { let result = '' result += 'StructEmpty(' result += ')' return result } /** * Inspect struct * @this {!StructEmpty} * @returns {!string} Struct value string */ [util.inspect.custom] () { return this.toString() } /** * Convert struct to JSON * @this {!StructEmpty} * @returns {!object} Struct value for JSON */ toJSON () { return { } } /** * Convert JSON to struct * @param {!string} json JSON string * @returns {!object} Struct value for JSON */ static fromJSON (json) { return StructEmpty.fromObject(JSON.parse(json)) } /** * Create struct from object value * @param {!StructEmpty} other Object value * @returns {!StructEmpty} Created struct */ static fromObject (other) { return new StructEmpty().copy(other) } /** * Get the FBE type * @this {!StructEmpty} * @returns {!number} FBE type */ get fbeType () { return StructEmpty.fbeType } /** * Get the FBE type (static) * @this {!StructEmpty} * @returns {!number} FBE type */ static get fbeType () { return 143 } } exports.StructEmpty = StructEmpty /** * Fast Binary Encoding StructEmpty field model */ class FieldModelStructEmpty extends fbe.FieldModel { /** * Get the field size * @this {!FieldModelStructEmpty} * @returns {!number} Field size */ get fbeSize () { return 4 } /** * Get the field body size * @this {!FieldModelStructEmpty} * @returns {!number} Field body size */ get fbeBody () { return 4 + 4 } /** * Get the field extra size * @this {!FieldModelStructEmpty} * @returns {!number} Field extra size */ get fbeExtra () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructOffset = this.readUInt32(this.fbeOffset) if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4) > this._buffer.size)) { return 0 } this._buffer.shift(fbeStructOffset) let fbeResult = this.fbeBody this._buffer.unshift(fbeStructOffset) return fbeResult } /** * Get the field type * @this {!FieldModelStructEmpty} * @returns {!number} Field type */ get fbeType () { return FieldModelStructEmpty.fbeType } /** * Get the field type (static) * @this {!FieldModelStructEmpty} * @returns {!number} Field type */ static get fbeType () { return 143 } /** * Check if the struct value is valid * @this {!FieldModelStructEmpty} * @param {!boolean} fbeVerifyType Verify model type flag, defaults is true * @returns {!boolean} Field model valid state */ verify (fbeVerifyType = true) { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return true } let fbeStructOffset = this.readUInt32(this.fbeOffset) if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4 + 4) > this._buffer.size)) { return false } let fbeStructSize = this.readUInt32(fbeStructOffset) if (fbeStructSize < (4 + 4)) { return false } let fbeStructType = this.readUInt32(fbeStructOffset + 4) if (fbeVerifyType && (fbeStructType !== this.fbeType)) { return false } this._buffer.shift(fbeStructOffset) let fbeResult = this.verifyFields(fbeStructSize) this._buffer.unshift(fbeStructOffset) return fbeResult } /** * Check if the struct fields are valid * @this {!FieldModelStructEmpty} * @param {!number} fbeStructSize FBE struct size * @returns {!boolean} Field model valid state */ verifyFields (fbeStructSize) { return true } /** * Get the struct value (begin phase) * @this {!FieldModelStructEmpty} * @returns {!number} Field model begin offset */ getBegin () { if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructOffset = this.readUInt32(this.fbeOffset) console.assert((fbeStructOffset > 0) && ((this._buffer.offset + fbeStructOffset + 4 + 4) <= this._buffer.size), 'Model is broken!') if ((fbeStructOffset === 0) || ((this._buffer.offset + fbeStructOffset + 4 + 4) > this._buffer.size)) { return 0 } let fbeStructSize = this.readUInt32(fbeStructOffset) console.assert((fbeStructSize >= (4 + 4)), 'Model is broken!') if (fbeStructSize < (4 + 4)) { return 0 } this._buffer.shift(fbeStructOffset) return fbeStructOffset } /** * Get the struct value (end phase) * @this {!FieldModelStructEmpty} * @param {!number} fbeBegin Field model begin offset */ getEnd (fbeBegin) { this._buffer.unshift(fbeBegin) } /** * Get the struct value * @this {!FieldModelStructEmpty} * @param {!StructEmpty} fbeValue Default value, defaults is new StructEmpty() * @returns {!StructEmpty} StructEmpty value */ get (fbeValue = new StructEmpty()) { let fbeBegin = this.getBegin() if (fbeBegin === 0) { return fbeValue } let fbeStructSize = this.readUInt32(0) this.getFields(fbeValue, fbeStructSize) this.getEnd(fbeBegin) return fbeValue } /** * Get the struct fields values * @this {!FieldModelStructEmpty} * @param {!StructEmpty} fbeValue StructEmpty value * @param {!number} fbeStructSize Struct size */ getFields (fbeValue, fbeStructSize) { } /** * Set the struct value (begin phase) * @this {!FieldModelStructEmpty} * @returns {!number} Field model begin offset */ setBegin () { console.assert(((this._buffer.offset + this.fbeOffset + this.fbeSize) <= this._buffer.size), 'Model is broken!') if ((this._buffer.offset + this.fbeOffset + this.fbeSize) > this._buffer.size) { return 0 } let fbeStructSize = this.fbeBody let fbeStructOffset = this._buffer.allocate(fbeStructSize) - this._buffer.offset console.assert((fbeStructOffset > 0) && ((this._buffer.offset + fbeStructOffset + fbeStructSize) <= this._buffer.size), 'Model is broken!') if ((fbeStructOffset <= 0) || ((this._buffer.offset + fbeStructOffset + fbeStructSize) > this._buffer.size)) { return 0 } this.writeUInt32(this.fbeOffset, fbeStructOffset) this.writeUInt32(fbeStructOffset, fbeStructSize) this.writeUInt32(fbeStructOffset + 4, this.fbeType) this._buffer.shift(fbeStructOffset) return fbeStructOffset } /** * Set the struct value (end phase) * @this {!FieldModelStructEmpty} * @param {!number} fbeBegin Field model begin offset */ setEnd (fbeBegin) { this._buffer.unshift(fbeBegin) } /** * Set the struct value * @this {!FieldModelStructEmpty} * @param {!StructEmpty} fbeValue StructEmpty value */ set (fbeValue) { let fbeBegin = this.setBegin() if (fbeBegin === 0) { return } this.setFields(fbeValue) this.setEnd(fbeBegin) } /** * Set the struct fields values * @this {!FieldModelStructEmpty} * @param {StructEmpty} fbeValue StructEmpty value */ setFields (fbeValue) { } } exports.FieldModelStructEmpty = FieldModelStructEmpty /** * Fast Binary Encoding StructEmpty model */ class StructEmptyModel extends fbe.Model { /** * Initialize model with the given buffer * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Read/Write buffer, defaults is new fbe.WriteBuffer() * @constructor */ constructor (buffer = new fbe.WriteBuffer()) { super(buffer) this._model = new FieldModelStructEmpty(this.buffer, 4) } /** * Get the StructEmpty model * @this {!StructEmptyModel} * @returns {!FieldModelStructEmpty} model StructEmpty model */ get model () { return this._model } /** * Get the model size * @this {!StructEmptyModel} * @returns {!number} Model size */ get fbeSize () { return this.model.fbeSize + this.model.fbeExtra } /** * Get the model type * @this {!StructEmptyModel} * @returns {!number} Model type */ get fbeType () { return StructEmptyModel.fbeType } /** * Get the model type (static) * @this {!StructEmptyModel} * @returns {!number} Model type */ static get fbeType () { return FieldModelStructEmpty.fbeType } /** * Check if the struct value is valid * @this {!StructEmptyModel} * @returns {!boolean} Model valid state */ verify () { if ((this.buffer.offset + this.model.fbeOffset - 4) > this.buffer.size) { return false } let fbeFullSize = this.readUInt32(this.model.fbeOffset - 4) if (fbeFullSize < this.model.fbeSize) { return false } return this.model.verify() } /** * Create a new model (begin phase) * @this {!StructEmptyModel} * @returns {!number} Model begin offset */ createBegin () { return this.buffer.allocate(4 + this.model.fbeSize) } /** * Create a new model (end phase) * @this {!StructEmptyModel} * @param {!number} fbeBegin Model begin offset */ createEnd (fbeBegin) { let fbeEnd = this.buffer.size let fbeFullSize = fbeEnd - fbeBegin this.writeUInt32(this.model.fbeOffset - 4, fbeFullSize) return fbeFullSize } /** * Serialize the struct value * @this {!StructEmptyModel} * @param {!StructEmpty} value StructEmpty value * @return {!number} Model begin offset */ serialize (value) { let fbeBegin = this.createBegin() this.model.set(value) return this.createEnd(fbeBegin) } /** * Deserialize the struct value * @this {!StructEmptyModel} * @param {!StructEmpty} value StructEmpty value, defaults is new StructEmpty() * @return {!object} Deserialized StructEmpty value and its size */ deserialize (value = new StructEmpty()) { if ((this.buffer.offset + this.model.fbeOffset - 4) > this.buffer.size) { return { value: new StructEmpty(), size: 0 } } let fbeFullSize = this.readUInt32(this.model.fbeOffset - 4) console.assert((fbeFullSize >= this.model.fbeSize), 'Model is broken!') if (fbeFullSize < this.model.fbeSize) { return { value: new StructEmpty(), size: 0 } } this.model.get(value) return { value, size: fbeFullSize } } /** * Move to the next struct value * @this {!StructEmptyModel} * @param {!number} prev Previous StructEmpty model size */ next (prev) { this.model.fbeShift(prev) } } exports.StructEmptyModel = StructEmptyModel /** * Fast Binary Encoding StructEmpty final model */ class FinalModelStructEmpty extends fbe.FinalModel { /** * Get the allocation size * @this {!FinalModelStructEmpty} * @param {!StructEmpty} fbeValue StructEmpty value * @returns {!number} Allocation size */ fbeAllocationSize (fbeValue) { return 0 } /** * Get the final type * @this {!FinalModelStructEmpty} * @returns {!number} Final type */ get fbeType () { return FinalModelStructEmpty.fbeType } /** * Get the final type (static) * @this {!FinalModelStructEmpty} * @returns {!number} Final type */ static get fbeType () { return 143 } /** * Check if the struct value is valid * @this {!FinalModelStructEmpty} * @returns {!number} Final model size or Number.MAX_SAFE_INTEGER in case of any error */ verify () { this._buffer.shift(this.fbeOffset) let fbeResult = this.verifyFields() this._buffer.unshift(this.fbeOffset) return fbeResult } /** * Check if the struct fields are valid * @this {!FinalModelStructEmpty} * @returns {!number} Final model size or Number.MAX_SAFE_INTEGER in case of any error */ verifyFields () { return 0 } /** * Get the struct value * @this {!FinalModelStructEmpty} * @param {!StructEmpty} fbeValue StructEmpty value, defaults is new StructEmpty() * @returns {!object} Result struct value and its size */ get (fbeValue = new StructEmpty()) { this._buffer.shift(this.fbeOffset) let fbeSize = this.getFields(fbeValue) this._buffer.unshift(this.fbeOffset) return { value: fbeValue, size: fbeSize } } /** * Get the struct fields values * @this {!FinalModelStructEmpty} * @param {!StructEmpty} fbeValue StructEmpty value * @returns {!number} Struct size */ getFields (fbeValue) { return 0 } /** * Set the struct value * @this {!FinalModelStructEmpty} * @param {!StructEmpty} fbeValue StructEmpty value * @returns {!number} Final model size */ set (fbeValue) { this._buffer.shift(this.fbeOffset) let fbeSize = this.setFields(fbeValue) this._buffer.unshift(this.fbeOffset) return fbeSize } /** * Set the struct fields values * @this {!FinalModelStructEmpty} * @param {StructEmpty} fbeValue StructEmpty value * @returns {!number} Final model size */ setFields (fbeValue) { return 0 } } exports.FinalModelStructEmpty = FinalModelStructEmpty /** * Fast Binary Encoding StructEmpty final model */ class StructEmptyFinalModel extends fbe.Model { /** * Initialize final model with the given buffer * @param {!fbe.ReadBuffer|!fbe.WriteBuffer} buffer Read/Write buffer, defaults is new fbe.WriteBuffer() * @constructor */ constructor (buffer = new fbe.WriteBuffer()) { super(buffer) this._model = new FinalModelStructEmpty(this.buffer, 8) } /** * Get the model type * @this {!StructEmptyFinalModel} * @returns {!number} Model type */ get fbeType () { return StructEmptyFinalModel.fbeType } /** * Get the model type (static) * @this {!StructEmptyFinalModel} * @returns {!number} Model type */ static get fbeType () { return FinalModelStructEmpty.fbeType } /** * Check if the struct value is valid * @this {!StructEmptyFinalModel} * @returns {!boolean} Model valid state */ verify () { if ((this.buffer.offset + this._model.fbeOffset) > this.buffer.size) { return false } let fbeStructSize = this.readUInt32(this._model.fbeOffset - 8) let fbeStructType = this.readUInt32(this._model.fbeOffset - 4) if ((fbeStructSize <= 0) || (fbeStructType !== this.fbeType)) { return false } return ((8 + this._model.verify()) === fbeStructSize) } /** * Serialize the struct value * @this {!StructEmptyFinalModel} * @param {!StructEmpty} value StructEmpty value * @return {!number} Struct size */ serialize (value) { let fbeInitialSize = this.buffer.size let fbeStructType = this.fbeType let fbeStructSize = 8 + this._model.fbeAllocationSize(value) let fbeStructOffset = this.buffer.allocate(fbeStructSize) - this.buffer.offset console.assert(((this.buffer.offset + fbeStructOffset + fbeStructSize) <= this.buffer.size), 'Model is broken!') if ((this.buffer.offset + fbeStructOffset + fbeStructSize) > this.buffer.size) { return 0 } fbeStructSize = 8 + this._model.set(value) this.buffer.resize(fbeInitialSize + fbeStructSize) this.writeUInt32(this._model.fbeOffset - 8, fbeStructSize) this.writeUInt32(this._model.fbeOffset - 4, fbeStructType) return fbeStructSize } /** * Deserialize the struct value * @this {!StructEmptyFinalModel} * @param {!StructEmpty} value StructEmpty value, defaults is new StructEmpty() * @return {!object} Deserialized StructEmpty value and its size */ deserialize (value = new StructEmpty()) { console.assert(((this.buffer.offset + this._model.fbeOffset) <= this.buffer.size), 'Model is broken!') if ((this.buffer.offset + this._model.fbeOffset) > this.buffer.size) { return { value: new StructEmpty(), size: 0 } } let fbeStructSize = this.readUInt32(this._model.fbeOffset - 8) let fbeStructType = this.readUInt32(this._model.fbeOffset - 4) console.assert(((fbeStructSize > 0) && (fbeStructType === this.fbeType)), 'Model is broken!') if ((fbeStructSize <= 0) || (fbeStructType !== this.fbeType)) { return { value: new StructEmpty(), size: 8 } } let fbeResult = this._model.get(value) return { value: fbeResult.value, size: (8 + fbeResult.size) } } /** * Move to the next struct value * @this {!StructEmptyFinalModel} * @param {!number} prev Previous StructEmpty model size */ next (prev) { this._model.fbeShift(prev) } } exports.StructEmptyFinalModel = StructEmptyFinalModel // Protocol major version const ProtocolVersionMajor = 123 // Protocol minor version const ProtocolVersionMinor = 456 exports.ProtocolVersionMajor = ProtocolVersionMajor exports.ProtocolVersionMinor = ProtocolVersionMinor /** * Fast Binary Encoding test sender */ class Sender extends fbe.Sender { /** * Initialize test sender with the given buffer * @param {!fbe.WriteBuffer} buffer Write buffer, defaults is new fbe.WriteBuffer() * @constructor */ constructor (buffer = new fbe.WriteBuffer()) { super(buffer, false) this._protoSender = new proto.Sender(this.buffer) this.onSendHandler = this.onSend this.onSendLogHandler = this.onSendLog } // Imported senders /** * Get imported proto sender * @this {!Sender} * @returns {!proto.Sender} proto sender */ get protoSender () { return this._protoSender } // Sender models accessors // Send methods /** * Send value * @this {!Sender} * @param {!object} value Value to send * @returns {!number} Sent bytes */ send (value) { let result = 0 result = this._protoSender.send(value) if (result > 0) { return result } return 0 } /** * Send message handler * @this {!Sender} * @param {!Uint8Array} buffer Buffer to send * @param {!number} offset Buffer offset * @param {!number} size Buffer size */ onSend (buffer, offset, size) { console.assert(true, 'test.Sender.onSend() not implemented!') debugger // eslint-disable-line return 0 } /** * Setup send message handler * @this {!Sender} * @param {!function} handler Send message handler */ set onSendHandler (handler) { // eslint-disable-line this.onSend = handler this._protoSender.onSendHandler = handler } /** * Setup send log message handler * @this {!Sender} * @param {!function} handler Send log message handler */ set onSendLogHandler (handler) { // eslint-disable-line this.onSendLog = handler this._protoSender.onSendLogHandler = handler } } exports.Sender = Sender /** * Fast Binary Encoding test receiver */ class Receiver extends fbe.Receiver { /** * Initialize test receiver with the given buffer * @param {!fbe.WriteBuffer} buffer Write buffer, defaults is new WriteBuffer() * @constructor */ constructor (buffer = new fbe.WriteBuffer()) { super(buffer, false) this._protoReceiver = new proto.Receiver(this.buffer) this.onReceiveLogHandler = this.onReceiveLog } // Imported receivers /** * Get imported proto receiver * @this {!Receiver} * @returns {Receiver} proto receiver */ get protoReceiver () { return this._protoReceiver } /** * Set imported proto receiver * @this {!Receiver} * @param {Receiver} receiver proto receiver */ set protoReceiver (receiver) { this._protoReceiver = receiver } // Receive handlers /** * test receive message handler * @this {!Receiver} * @param {!number} type Message type * @param {!Uint8Array} buffer Buffer to send * @param {!number} offset Buffer offset * @param {!number} size Buffer size * @returns {!boolean} Success flag */ onReceive (type, buffer, offset, size) { switch (type) { default: break } // noinspection RedundantIfStatementJS if ((this.protoReceiver != null) && this.protoReceiver.onReceive(type, buffer, offset, size)) { return true } return false } /** * Setup receive log message handler * @this {!Receiver} * @param {!function} handler Receive log message handler */ set onReceiveLogHandler (handler) { // eslint-disable-line this.onReceiveLog = handler this._protoReceiver.onReceiveLogHandler = handler } } exports.Receiver = Receiver /** * Fast Binary Encoding test proxy */ class Proxy extends fbe.Receiver { /** * Initialize test proxy with the given buffer * @param {!fbe.WriteBuffer} buffer Write buffer, defaults is new WriteBuffer() * @constructor */ constructor (buffer = new fbe.WriteBuffer()) { super(buffer, false) this._protoProxy = new proto.Proxy(this.buffer) } // Imported proxy /** * Get imported proto proxy * @this {!Proxy} * @returns {Proxy} proto proxy */ get protoProxy () { return this._protoProxy } /** * Set imported proto proxy * @this {!Proxy} * @param {Proxy} proxy proto proxy */ set protoProxy (proxy) { this._protoProxy = proxy } // Proxy handlers /** * test receive message handler * @this {!Proxy} * @param {!number} type Message type * @param {!Uint8Array} buffer Buffer to send * @param {!number} offset Buffer offset * @param {!number} size Buffer size * @returns {!boolean} Success flag */ onReceive (type, buffer, offset, size) { switch (type) { default: break } // noinspection RedundantIfStatementJS if ((this.protoProxy != null) && this.protoProxy.onReceive(type, buffer, offset, size)) { return true } return false } } exports.Proxy = Proxy /** * Fast Binary Encoding test client */ class Client extends fbe.Client { /** * Initialize test client with the given buffers * @param {!fbe.WriteBuffer} sendBuffer Send buffer, defaults is new fbe.WriteBuffer() * @param {!fbe.WriteBuffer} receiveBuffer Receive buffer, defaults is new fbe.WriteBuffer() * @constructor */ constructor (sendBuffer = new fbe.WriteBuffer(), receiveBuffer = new fbe.WriteBuffer()) { super(sendBuffer, receiveBuffer, false) this._protoClient = new proto.Client(this.sendBuffer, this.receiveBuffer) this.onSendHandler = this.onSend this.onSendLogHandler = this.onSendLog this.onReceiveLogHandler = this.onReceiveLog this._timestamp = 0 this._requests_by_id = new Map() this._requests_by_timestamp = new Map() } // Imported clients /** * Get imported proto client * @this {!Client} * @returns {!proto.Client} proto client */ get protoClient () { return this._protoClient } // Sender models accessors // Reset and watchdog methods /** * Reset the client * @this {!Client} */ reset () { super.reset() this.resetRequests() } /** * Watchdog for timeouts * @this {!Client} * @param {!number} utc UTC timestamp */ watchdog (utc) { this.watchdogRequests(utc) } // Send methods /** * Send value * @this {!Client} * @param {!object} value Value to send * @returns {!number} Sent bytes */ send (value) { let result = 0 result = this._protoClient.send(value) if (result > 0) { return result } return 0 } /** * Send message handler * @this {!Client} * @param {!Uint8Array} buffer Buffer to send * @param {!number} offset Buffer offset * @param {!number} size Buffer size */ onSend (buffer, offset, size) { console.assert(true, 'test.Client.onSend() not implemented!') debugger // eslint-disable-line return 0 } /** * Setup send message handler * @this {!Client} * @param {!function} handler Send message handler */ set onSendHandler (handler) { // eslint-disable-line this.onSend = handler this._protoClient.onSendHandler = handler } /** * Setup send log message handler * @this {!Client} * @param {!function} handler Send log message handler */ set onSendLogHandler (handler) { // eslint-disable-line this.onSendLog = handler this._protoClient.onSendLogHandler = handler } // Receive handlers /** * test receive message handler * @this {!Client} * @param {!number} type Message type * @param {!Uint8Array} buffer Buffer to send * @param {!number} offset Buffer offset * @param {!number} size Buffer size * @returns {!boolean} Success flag */ onReceive (type, buffer, offset, size) { switch (type) { default: break } // noinspection RedundantIfStatementJS if ((this.protoClient != null) && this.protoClient.onReceive(type, buffer, offset, size)) { return true } return false } /** * Setup receive log message handler * @this {!Client} * @param {!function} handler Receive log message handler */ set onReceiveLogHandler (handler) { // eslint-disable-line this.onReceiveLog = handler this._protoClient.onReceiveLogHandler = handler } // Request methods /** * Request value * @this {!Client} * @param {!object} value Value to request * @param {!number} timeout Timeout in milliseconds (default is 0) * @returns {Promise} Response promise */ request (value, timeout = 0) { let promise = new fbe.DeferredPromise() let current = Date.now() // Send the request message let serialized = this.send(value) if (serialized > 0) { // Calculate the unique timestamp this._timestamp = (current <= this._timestamp) ? this._timestamp + 1 : current // Register the request this._requests_by_id.set(value.id, [this._timestamp, timeout, promise]) if (timeout > 0) { this._requests_by_timestamp.set(this._timestamp, value.id) } } else { promise.reject(new Error('Send request failed!')) } return promise } /** * Response value * @this {!Client} * @param {!object} value Value to response * @returns {!boolean} Response handle flag */ response (value) { let item = this._requests_by_id.get(value.id) if (item != null) { let timestamp = item[0] let promise = item[2] promise.resolve(value) this._requests_by_id.delete(value.id) this._requests_by_timestamp.delete(timestamp) return true } // noinspection RedundantIfStatementJS if (this._protoClient.response(value)) { return true } return false } /** * Reject value * @this {!Client} * @param {!object} value Value to reject * @returns {!boolean} Reject handle flag */ reject (value) { let item = this._requests_by_id.get(value.id) if (item != null) { let timestamp = item[0] let promise = item[2] promise.reject(value) this._requests_by_id.delete(value.id) this._requests_by_timestamp.delete(timestamp) return true } // noinspection RedundantIfStatementJS if (this._protoClient.reject(value)) { return true } return false } /** * Reset client requests * @this {!Client} */ resetRequests () { this._protoClient.resetRequests() for (let [, value] of this._requests_by_id) { value[2].reject(new Error('Reset client!')) } this._requests_by_id.clear() this._requests_by_timestamp.clear() } /** * Watchdog client requests for timeouts * @this {!Client} * @param {!number} utc UTC timestamp in milliseconds */ watchdogRequests (utc) { this._protoClient.watchdogRequests(utc) for (let [, value] of this._requests_by_timestamp) { let item = this._requests_by_id.get(value) let id = value let timestamp = item[0] let timespan = item[1] if ((timestamp + timespan) <= utc) { let promise = item[2] promise.reject(new Error('Timeout!')) this._requests_by_id.delete(id) this._requests_by_timestamp.delete(timestamp) } } } } exports.Client = Client /** * Fast Binary Encoding test final sender */ class FinalSender extends fbe.Sender { /** * Initialize test sender with the given buffer * @param {!fbe.WriteBuffer} buffer Write buffer, defaults is new fbe.WriteBuffer() * @constructor */ constructor (buffer = new fbe.WriteBuffer()) { super(buffer, true) this._protoSender = new proto.FinalSender(this.buffer) this.onSendHandler = this.onSend this.onSendLogHandler = this.onSendLog } // Imported senders /** * Get imported proto sender * @this {!FinalSender} * @returns {!proto.FinalSender} proto sender */ get protoSender () { return this._protoSender } // Sender models accessors // Send methods /** * Send value * @this {!FinalSender} * @param {!object} value Value to send * @returns {!number} Sent bytes */ send (value) { let result = 0 result = this._protoSender.send(value) if (result > 0) { return result } return 0 } /** * Send message handler * @this {!FinalSender} * @param {!Uint8Array} buffer Buffer to send * @param {!number} offset Buffer offset * @param {!number} size Buffer size */ onSend (buffer, offset, size) { console.assert(true, 'test.Sender.onSend() not implemented!') debugger // eslint-disable-line return 0 } /** * Setup send message handler * @this {!FinalSender} * @param {!function} handler Send message handler */ set onSendHandler (handler) { // eslint-disable-line this.onSend = handler this._protoSender.onSendHandler = handler } /** * Setup send log message handler * @this {!FinalSender} * @param {!function} handler Send log message handler */ set onSendLogHandler (handler) { // eslint-disable-line this.onSendLog = handler this._protoSender.onSendLogHandler = handler } } exports.FinalSender = FinalSender /** * Fast Binary Encoding test final receiver */ class FinalReceiver extends fbe.Receiver { /** * Initialize test receiver with the given buffer * @param {!fbe.WriteBuffer} buffer Write buffer, defaults is new WriteBuffer() * @constructor */ constructor (buffer = new fbe.WriteBuffer()) { super(buffer, true) this._protoReceiver = new proto.FinalReceiver(this.buffer) this.onReceiveLogHandler = this.onReceiveLog } // Imported receivers /** * Get imported proto receiver * @this {!FinalReceiver} * @returns {FinalReceiver} proto receiver */ get protoReceiver () { return this._protoReceiver } /** * Set imported proto receiver * @this {!FinalReceiver} * @param {FinalReceiver} receiver proto receiver */ set protoReceiver (receiver) { this._protoReceiver = receiver } // Receive handlers /** * test receive message handler * @this {!FinalReceiver} * @param {!number} type Message type * @param {!Uint8Array} buffer Buffer to send * @param {!number} offset Buffer offset * @param {!number} size Buffer size * @returns {!boolean} Success flag */ onReceive (type, buffer, offset, size) { switch (type) { default: break } // noinspection RedundantIfStatementJS if ((this.protoReceiver != null) && this.protoReceiver.onReceive(type, buffer, offset, size)) { return true } return false } /** * Setup receive log message handler * @this {!FinalReceiver} * @param {!function} handler Receive log message handler */ set onReceiveLogHandler (handler) { // eslint-disable-line this.onReceiveLog = handler this._protoReceiver.onReceiveLogHandler = handler } } exports.FinalReceiver = FinalReceiver /** * Fast Binary Encoding test final client */ class FinalClient extends fbe.Client { /** * Initialize test client with the given buffers * @param {!fbe.WriteBuffer} sendBuffer Send buffer, defaults is new fbe.WriteBuffer() * @param {!fbe.WriteBuffer} receiveBuffer Receive buffer, defaults is new fbe.WriteBuffer() * @constructor */ constructor (sendBuffer = new fbe.WriteBuffer(), receiveBuffer = new fbe.WriteBuffer()) { super(sendBuffer, receiveBuffer, true) this._protoClient = new proto.FinalClient(this.sendBuffer, this.receiveBuffer) this.onSendHandler = this.onSend this.onSendLogHandler = this.onSendLog this.onReceiveLogHandler = this.onReceiveLog this._timestamp = 0 this._requests_by_id = new Map() this._requests_by_timestamp = new Map() } // Imported clients /** * Get imported proto client * @this {!FinalClient} * @returns {!proto.FinalClient} proto client */ get protoClient () { return this._protoClient } // Sender models accessors // Reset and watchdog methods /** * Reset the client * @this {!FinalClient} */ reset () { super.reset() this.resetRequests() } /** * Watchdog for timeouts * @this {!FinalClient} * @param {!number} utc UTC timestamp */ watchdog (utc) { this.watchdogRequests(utc) } // Send methods /** * Send value * @this {!FinalClient} * @param {!object} value Value to send * @returns {!number} Sent bytes */ send (value) { let result = 0 result = this._protoClient.send(value) if (result > 0) { return result } return 0 } /** * Send message handler * @this {!FinalClient} * @param {!Uint8Array} buffer Buffer to send * @param {!number} offset Buffer offset * @param {!number} size Buffer size */ onSend (buffer, offset, size) { console.assert(true, 'test.Client.onSend() not implemented!') debugger // eslint-disable-line return 0 } /** * Setup send message handler * @this {!FinalClient} * @param {!function} handler Send message handler */ set onSendHandler (handler) { // eslint-disable-line this.onSend = handler this._protoClient.onSendHandler = handler } /** * Setup send log message handler * @this {!FinalClient} * @param {!function} handler Send log message handler */ set onSendLogHandler (handler) { // eslint-disable-line this.onSendLog = handler this._protoClient.onSendLogHandler = handler } // Receive handlers /** * test receive message handler * @this {!FinalClient} * @param {!number} type Message type * @param {!Uint8Array} buffer Buffer to send * @param {!number} offset Buffer offset * @param {!number} size Buffer size * @returns {!boolean} Success flag */ onReceive (type, buffer, offset, size) { switch (type) { default: break } // noinspection RedundantIfStatementJS if ((this.protoClient != null) && this.protoClient.onReceive(type, buffer, offset, size)) { return true } return false } /** * Setup receive log message handler * @this {!FinalClient} * @param {!function} handler Receive log message handler */ set onReceiveLogHandler (handler) { // eslint-disable-line this.onReceiveLog = handler this._protoClient.onReceiveLogHandler = handler } // Request methods /** * Request value * @this {!FinalClient} * @param {!object} value Value to request * @param {!number} timeout Timeout in milliseconds (default is 0) * @returns {Promise} Response promise */ request (value, timeout = 0) { let promise = new fbe.DeferredPromise() let current = Date.now() // Send the request message let serialized = this.send(value) if (serialized > 0) { // Calculate the unique timestamp this._timestamp = (current <= this._timestamp) ? this._timestamp + 1 : current // Register the request this._requests_by_id.set(value.id, [this._timestamp, timeout, promise]) if (timeout > 0) { this._requests_by_timestamp.set(this._timestamp, value.id) } } else { promise.reject(new Error('Send request failed!')) } return promise } /** * Response value * @this {!FinalClient} * @param {!object} value Value to response * @returns {!boolean} Response handle flag */ response (value) { let item = this._requests_by_id.get(value.id) if (item != null) { let timestamp = item[0] let promise = item[2] promise.resolve(value) this._requests_by_id.delete(value.id) this._requests_by_timestamp.delete(timestamp) return true } // noinspection RedundantIfStatementJS if (this._protoClient.response(value)) { return true } return false } /** * Reject value * @this {!FinalClient} * @param {!object} value Value to reject * @returns {!boolean} Reject handle flag */ reject (value) { let item = this._requests_by_id.get(value.id) if (item != null) { let timestamp = item[0] let promise = item[2] promise.reject(value) this._requests_by_id.delete(value.id) this._requests_by_timestamp.delete(timestamp) return true } // noinspection RedundantIfStatementJS if (this._protoClient.reject(value)) { return true } return false } /** * Reset client requests * @this {!FinalClient} */ resetRequests () { this._protoClient.resetRequests() for (let [, value] of this._requests_by_id) { value[2].reject(new Error('Reset client!')) } this._requests_by_id.clear() this._requests_by_timestamp.clear() } /** * Watchdog client requests for timeouts * @this {!FinalClient} * @param {!number} utc UTC timestamp in milliseconds */ watchdogRequests (utc) { this._protoClient.watchdogRequests(utc) for (let [, value] of this._requests_by_timestamp) { let item = this._requests_by_id.get(value) let id = value let timestamp = item[0] let timespan = item[1] if ((timestamp + timespan) <= utc) { let promise = item[2] promise.reject(new Error('Timeout!')) this._requests_by_id.delete(id) this._requests_by_timestamp.delete(timestamp) } } } } exports.FinalClient = FinalClient