UNPKG

proteus-js-client

Version:

Proteus JavaScript Client

96 lines (72 loc) 3.46 kB
/** * Copyright (c) 2017-present, Netifi Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * */ 'use strict'; /* eslint-disable consistent-return, no-bitwise */ Object.defineProperty(exports, "__esModule", { value: true }); exports.encodeBrokerSetupFrame = encodeBrokerSetupFrame; exports.decodeBrokerSetupFrame = decodeBrokerSetupFrame; var _Frame = require('./Frame'); var _FrameHeaderFlyweight = require('./FrameHeaderFlyweight'); var _rsocketCore = require('rsocket-core'); var _RSocketBufferUtils = require('rsocket-core/build/RSocketBufferUtils'); var BROKER_ID_LENGTH_SIZE = 4; var CLUSTER_ID_LENGTH_SIZE = 4; var ACCESS_KEY_SIZE = 8; var ACCESS_TOKEN_LENGTH_SIZE = 4; function encodeBrokerSetupFrame(frame) { var brokerIdLength = _rsocketCore.UTF8Encoder.byteLength(frame.brokerId); var clusterIdLength = _rsocketCore.UTF8Encoder.byteLength(frame.clusterId); var accessTokenLength = _rsocketCore.BufferEncoder.byteLength(frame.accessToken); var buffer = (0, _rsocketCore.createBuffer)(_FrameHeaderFlyweight.FRAME_HEADER_SIZE + BROKER_ID_LENGTH_SIZE + brokerIdLength + CLUSTER_ID_LENGTH_SIZE + clusterIdLength + ACCESS_KEY_SIZE + ACCESS_TOKEN_LENGTH_SIZE + accessTokenLength); var offset = (0, _FrameHeaderFlyweight.encodeFrameHeader)(buffer, frame); offset = buffer.writeUInt32BE(brokerIdLength, offset); offset = _rsocketCore.UTF8Encoder.encode(frame.brokerId, buffer, offset, offset + brokerIdLength); offset = buffer.writeUInt32BE(clusterIdLength, offset); offset = _rsocketCore.UTF8Encoder.encode(frame.clusterId, buffer, offset, offset + clusterIdLength); offset = (0, _RSocketBufferUtils.writeUInt64BE)(buffer, frame.accessKey, offset); offset = buffer.writeUInt32BE(accessTokenLength, offset); _rsocketCore.BufferEncoder.encode(frame.accessToken, buffer, offset, offset + accessTokenLength); return buffer; } function decodeBrokerSetupFrame(buffer, majorVersion, minorVersion) { var offset = _FrameHeaderFlyweight.FRAME_HEADER_SIZE; var brokerIdLength = buffer.readUInt32BE(offset); offset += BROKER_ID_LENGTH_SIZE; var brokerId = _rsocketCore.UTF8Encoder.decode(buffer, offset, offset + brokerIdLength); offset += brokerIdLength; var clusterIdLength = buffer.readUInt32BE(offset); offset += CLUSTER_ID_LENGTH_SIZE; var clusterId = _rsocketCore.UTF8Encoder.decode(buffer, offset, offset + clusterIdLength); offset += clusterIdLength; var accessKey = (0, _RSocketBufferUtils.readUInt64BE)(buffer, offset); offset += ACCESS_KEY_SIZE; var accessTokenLength = buffer.readUInt32BE(offset); offset += ACCESS_TOKEN_LENGTH_SIZE; var accessToken = _rsocketCore.BufferEncoder.decode(buffer, offset, offset + accessTokenLength); return { type: _Frame.FrameTypes.BROKER_SETUP, majorVersion: majorVersion, minorVersion: minorVersion, brokerId: brokerId, clusterId: clusterId, accessKey: accessKey, accessToken: accessToken }; }