rocket.chat.mqtt
Version:
It's a MQTT Server, using redis to scale horizontally.
218 lines (201 loc) • 5.54 kB
JavaScript
;
// This file is auto generated by the protocol-buffers cli tool
/* eslint-disable quotes */
/* eslint-disable indent */
/* eslint-disable no-redeclare */
/* eslint-disable camelcase */
// Remember to `npm install --save protocol-buffers-encodings`
var encodings = require('protocol-buffers-encodings');
var varint = encodings.varint;
var skip = encodings.skip;
var Message = exports.Message = {
buffer: true,
encodingLength: null,
encode: null,
decode: null
};
var Typing = exports.Typing = {
buffer: true,
encodingLength: null,
encode: null,
decode: null
};
defineMessage();
defineTyping();
function defineMessage() {
var enc = [encodings.string, encodings.double];
Message.encodingLength = encodingLength;
Message.encode = encode;
Message.decode = decode;
function encodingLength(obj) {
var length = 0;
if (defined(obj._id)) {
var len = enc[0].encodingLength(obj._id);
length += 1 + len;
}
if (defined(obj.rid)) {
var len = enc[0].encodingLength(obj.rid);
length += 1 + len;
}
if (defined(obj.msg)) {
var len = enc[0].encodingLength(obj.msg);
length += 1 + len;
}
if (defined(obj.ts)) {
var len = enc[1].encodingLength(obj.ts);
length += 1 + len;
}
if (defined(obj.u)) {
var len = enc[0].encodingLength(obj.u);
length += 1 + len;
}
return length;
}
function encode(obj, buf, offset) {
if (!offset) offset = 0;
if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj));
var oldOffset = offset;
if (defined(obj._id)) {
buf[offset++] = 10;
enc[0].encode(obj._id, buf, offset);
offset += enc[0].encode.bytes;
}
if (defined(obj.rid)) {
buf[offset++] = 18;
enc[0].encode(obj.rid, buf, offset);
offset += enc[0].encode.bytes;
}
if (defined(obj.msg)) {
buf[offset++] = 26;
enc[0].encode(obj.msg, buf, offset);
offset += enc[0].encode.bytes;
}
if (defined(obj.ts)) {
buf[offset++] = 33;
enc[1].encode(obj.ts, buf, offset);
offset += enc[1].encode.bytes;
}
if (defined(obj.u)) {
buf[offset++] = 42;
enc[0].encode(obj.u, buf, offset);
offset += enc[0].encode.bytes;
}
encode.bytes = offset - oldOffset;
return buf;
}
function decode(buf, offset, end) {
if (!offset) offset = 0;
if (!end) end = buf.length;
if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid");
var oldOffset = offset;
var obj = {
_id: "",
rid: "",
msg: "",
ts: 0,
u: ""
};
while (true) {
if (end <= offset) {
decode.bytes = offset - oldOffset;
return obj;
}
var prefix = varint.decode(buf, offset);
offset += varint.decode.bytes;
var tag = prefix >> 3;
switch (tag) {
case 1:
obj._id = enc[0].decode(buf, offset);
offset += enc[0].decode.bytes;
break;
case 2:
obj.rid = enc[0].decode(buf, offset);
offset += enc[0].decode.bytes;
break;
case 3:
obj.msg = enc[0].decode(buf, offset);
offset += enc[0].decode.bytes;
break;
case 4:
obj.ts = enc[1].decode(buf, offset);
offset += enc[1].decode.bytes;
break;
case 5:
obj.u = enc[0].decode(buf, offset);
offset += enc[0].decode.bytes;
break;
default:
offset = skip(prefix & 7, buf, offset);
}
}
}
}
function defineTyping() {
var enc = [encodings.string, encodings.bool];
Typing.encodingLength = encodingLength;
Typing.encode = encode;
Typing.decode = decode;
function encodingLength(obj) {
var length = 0;
if (defined(obj.id)) {
var len = enc[0].encodingLength(obj.id);
length += 1 + len;
}
if (defined(obj.typing)) {
var len = enc[1].encodingLength(obj.typing);
length += 1 + len;
}
return length;
}
function encode(obj, buf, offset) {
if (!offset) offset = 0;
if (!buf) buf = Buffer.allocUnsafe(encodingLength(obj));
var oldOffset = offset;
if (defined(obj.id)) {
buf[offset++] = 10;
enc[0].encode(obj.id, buf, offset);
offset += enc[0].encode.bytes;
}
if (defined(obj.typing)) {
buf[offset++] = 16;
enc[1].encode(obj.typing, buf, offset);
offset += enc[1].encode.bytes;
}
encode.bytes = offset - oldOffset;
return buf;
}
function decode(buf, offset, end) {
if (!offset) offset = 0;
if (!end) end = buf.length;
if (!(end <= buf.length && offset <= buf.length)) throw new Error("Decoded message is not valid");
var oldOffset = offset;
var obj = {
id: "",
typing: false
};
while (true) {
if (end <= offset) {
decode.bytes = offset - oldOffset;
return obj;
}
var prefix = varint.decode(buf, offset);
offset += varint.decode.bytes;
var tag = prefix >> 3;
switch (tag) {
case 1:
obj.id = enc[0].decode(buf, offset);
offset += enc[0].decode.bytes;
break;
case 2:
obj.typing = enc[1].decode(buf, offset);
offset += enc[1].decode.bytes;
break;
default:
offset = skip(prefix & 7, buf, offset);
}
}
}
}
function defined(val) {
return val !== null && val !== undefined && (typeof val !== 'number' || !isNaN(val));
}