UNPKG

rocket.chat.mqtt

Version:

It's a MQTT Server, using redis to scale horizontally.

218 lines (201 loc) 5.54 kB
"use strict"; // 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)); }