/** * Encode Int 64 * @param value * @returns {Buffer} */ function put64 (value) { return Buffer.from(Long.fromString(value.toString()).toBytesLE()) }
readUInt64() { const first = this.readInt32(); const second = this.readInt32(); const long = new Long(first, second, true); if (long.isNegative()) { if (long.lessThan(-9007199254740991)) return long; } else if (long.greaterThan(9007199254740991)) return long; return long.toNumber(); }
/** * Decode Int 64 * @param buffer {Buffer} * @param offset {Number} * @returns {{value: Number, length: Number}} */ function get64 (buffer, offset = 0) { return { value: Long.fromBytesLE(buffer.slice(offset)).toString(), length: 8 } }
function readLongStr(buf, offset) { const l1 = buf.readInt32LE(offset); const l2 = buf.readInt32LE(offset + 4); return new Long(l1, l2).toString(); }
// things: array of inputs or outputs. function sumAmount(things) { var sum = new Long(0); things.forEach((th) => { sum = sum.add(th.amount); }); return sum; }
function createLongStr(str) { const buf = Buffer.alloc(8); const l = Long.fromString(`${str}`); buf.writeInt32LE(l.getLowBits(), 0); buf.writeInt32LE(l.getHighBits(), 4); return buf; }
public GetTerminationTime(): AwsLongOutcome { if (Long.NEG_ONE.compare(this.terminationTime) === 0) { return new AwsLongOutcome(new GameLiftError(GameLiftErrorType.TERMINATION_TIME_NOT_SET)) } return new AwsLongOutcome(this.terminationTime) }
export function getNumber(n: number | Long): number { return guardIsLong(n) ? n.toNumber() : n; }
it('should encode/decode uint 64', () => { const values = [Long.MAX_UNSIGNED_VALUE.toString(), '0', '10', '518'] values.forEach((value) => { const encoded = GdCom.putU64(value) const decoded = GdCom.getU64(encoded) expect(decoded.value).to.be.equal(value) }) })
/** * Encode Unsigned Int 64 * @param value * @returns {Buffer} */ function putU64 (value) { return Buffer.from(Long.fromNumber(value, true).toBytesLE()) }
/** * Decode integer * @param genericDecoder * @param buf {Buffer} * @param flag * @returns {{value: Number, length: Number}} */ function getVarInteger (genericDecoder, buf, flag = 0) { let result = null if (flag === 1) { result = { value: Long.fromBytesLE(buf.slice(0)).toNumber(), length: 8 } } else { result = { value: buf.readInt32LE(0), length: 4 } } return result }
readInt64() { const first = this.readInt32(); const second = this.readInt32(); const long = new Long(first, second, false); if (long.isNegative()) { if (long.lessThan(-9007199254740991)) return long; } else if (long.greaterThan(9007199254740991)) return long; return long.toNumber(); }
/** * Decode Unsigned Int 64 * @param buffer {Buffer} * @param offset {Number} * @returns {{value: Number, length: Number}} */ function getU64 (buffer, offset = 0) { return { value: Long.fromBytesLE(buffer.slice(offset), true).toString(), length: 8 } }