rocket.chat.mqtt
Version:
It's a MQTT Server, using redis to scale horizontally.
223 lines (206 loc) • 5.41 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))
}