proteus-js-client
Version:
Proteus JavaScript Client
96 lines (72 loc) • 3.46 kB
JavaScript
/**
* 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.
*
*
*/
;
/* 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
};
}