mirror of
https://github.com/protobufjs/protobuf.js.git
synced 2025-12-08 20:58:55 +00:00
377 lines
12 KiB
JavaScript
377 lines
12 KiB
JavaScript
"use strict"; // eslint-disable-line strict
|
|
|
|
var $protobuf = require("../../runtime");
|
|
|
|
// Lazily resolved type references
|
|
var $lazyTypes = [];
|
|
|
|
// Exported root namespace
|
|
var $root = {};
|
|
|
|
$root.MyService = (function() {
|
|
|
|
/**
|
|
* RPC implementation passed to services performing a service request on network level, i.e. by utilizing http requests or websockets.
|
|
* @typedef RPCImpl
|
|
* @type {function}
|
|
* @param {$protobuf.Method} method Reflected method being called
|
|
* @param {Uint8Array} requestData Request data
|
|
* @param {RPCCallback} callback Callback function
|
|
* @returns {undefined}
|
|
*/
|
|
|
|
/**
|
|
* Node-style callback as used by {@link RPCImpl}.
|
|
* @typedef RPCCallback
|
|
* @type {function}
|
|
* @param {?Error} error Error, if any, otherwise `null`
|
|
* @param {Uint8Array} [responseData] Response data or `null` to signal end of stream, if there hasn't been an error
|
|
* @returns {undefined}
|
|
*/
|
|
|
|
/**
|
|
* Constructs a new MyService.
|
|
* @exports MyService
|
|
* @constructor
|
|
* @param {RPCImpl} rpc RPC implementation
|
|
* @param {boolean} [requestDelimited=false] Whether requests are length-delimited
|
|
* @param {boolean} [responseDelimited=false] Whether responses are length-delimited
|
|
*/
|
|
function MyService(rpc, requestDelimited, responseDelimited) {
|
|
|
|
/**
|
|
* RPC implementation.
|
|
* @type {RPCImpl}
|
|
*/
|
|
this.rpc = rpc;
|
|
|
|
/**
|
|
* Whether requests are length-delimited.
|
|
* @type {boolean}
|
|
*/
|
|
this.requestDelimited = Boolean(requestDelimited);
|
|
|
|
/**
|
|
* Whether responses are length-delimited.
|
|
* @type {boolean}
|
|
*/
|
|
this.responseDelimited = Boolean(responseDelimited);
|
|
};
|
|
|
|
/**
|
|
* Callback as used by {@link MyService#myMethod}.
|
|
* @typedef MyService_myMethod_Callback
|
|
* @type {function}
|
|
* @param {?Error} error Error, if any
|
|
* @param {MyResponse} [response] MyResponse
|
|
*/
|
|
|
|
/**
|
|
* Calls MyMethod.
|
|
* @param {MyRequest|Object} request MyRequest or plain object
|
|
* @param {MyService_myMethod_Callback} callback Node-style callback called with the error, if any, and MyResponse
|
|
* @returns {undefined}
|
|
*/
|
|
MyService.prototype["myMethod"] = function myMethod(request, callback) {
|
|
var requestData;
|
|
try {
|
|
requestData = (this.requestDelimited ? $root.MyRequest.encodeDelimited(request) : $root.MyRequest.encode(request)).finish();
|
|
} catch (err) {
|
|
(typeof setImmediate === 'function' ? setImmediate : setTimeout)(function() { callback(err); });
|
|
return;
|
|
}
|
|
var self = this;
|
|
this.rpc(myMethod, requestData, function(err, responseData) {
|
|
if (err) {
|
|
callback(err);
|
|
return;
|
|
}
|
|
var response;
|
|
try {
|
|
response = self.responseDelimited ? $root.MyResponse.decodeDelimited(responseData) : $root.MyResponse.decode(responseData);
|
|
} catch (err2) {
|
|
callback(err2);
|
|
return;
|
|
}
|
|
callback(null, response);
|
|
});
|
|
};
|
|
|
|
return MyService;
|
|
})();
|
|
|
|
$root.MyRequest = (function() {
|
|
|
|
/**
|
|
* Constructs a new MyRequest.
|
|
* @exports MyRequest
|
|
* @constructor
|
|
* @param {Object} [properties] Properties to set
|
|
*/
|
|
function MyRequest(properties) {
|
|
if (properties) {
|
|
var keys = Object.keys(properties);
|
|
for (var i = 0; i < keys.length; ++i)
|
|
this[keys[i]] = properties[keys[i]];
|
|
}
|
|
}
|
|
|
|
/** @alias MyRequest.prototype */
|
|
var $prototype = MyRequest.prototype;
|
|
|
|
/**
|
|
* MyRequest path.
|
|
* @type {string}
|
|
*/
|
|
$prototype.path = "";
|
|
|
|
/**
|
|
* Creates a new MyRequest instance using the specified properties.
|
|
* @param {Object} [properties] Properties to set
|
|
* @returns {MyRequest} MyRequest instance
|
|
*/
|
|
MyRequest.create = function create(properties) {
|
|
return new MyRequest(properties);
|
|
};
|
|
|
|
/**
|
|
* Encodes the specified MyRequest.
|
|
* @function
|
|
* @param {MyRequest|Object} message MyRequest or plain object to encode
|
|
* @param {$protobuf.Writer} [writer] Writer to encode to
|
|
* @returns {$protobuf.Writer} Writer
|
|
*/
|
|
MyRequest.encode = (function() {
|
|
/* eslint-disable */
|
|
var Writer = $protobuf.Writer;
|
|
var util = $protobuf.util;
|
|
var types; $lazyTypes.push(types = [null]);
|
|
return function encode(m, w) {
|
|
w||(w=Writer.create())
|
|
if(m.path!==undefined&&m.path!=="")
|
|
w.uint32(10).string(m.path)
|
|
return w
|
|
}
|
|
/* eslint-enable */
|
|
})();
|
|
|
|
/**
|
|
* Encodes the specified MyRequest, length delimited.
|
|
* @param {MyRequest|Object} message MyRequest or plain object to encode
|
|
* @param {$protobuf.Writer} [writer] Writer to encode to
|
|
* @returns {$protobuf.Writer} Writer
|
|
*/
|
|
MyRequest.encodeDelimited = function encodeDelimited(message, writer) {
|
|
return this.encode(message, writer).ldelim();
|
|
};
|
|
|
|
/**
|
|
* Decodes a MyRequest from the specified reader or buffer.
|
|
* @function
|
|
* @param {$protobuf.Reader|Uint8Array} readerOrBuffer Reader or buffer to decode from
|
|
* @param {number} [length] Message length if known beforehand
|
|
* @returns {MyRequest} MyRequest
|
|
*/
|
|
MyRequest.decode = (function() {
|
|
/* eslint-disable */
|
|
var Reader = $protobuf.Reader;
|
|
var util = $protobuf.util;
|
|
var types; $lazyTypes.push(types = [null]);
|
|
return function decode(r, l) {
|
|
r instanceof Reader||(r=Reader.create(r))
|
|
var c=l===undefined?r.len:r.pos+l,m=new $root.MyRequest
|
|
while(r.pos<c){
|
|
var t=r.uint32()
|
|
switch(t>>>3){
|
|
case 1:
|
|
m.path=r.string()
|
|
break
|
|
default:
|
|
r.skipType(t&7)
|
|
break
|
|
}
|
|
}
|
|
return m
|
|
}
|
|
/* eslint-enable */
|
|
})();
|
|
|
|
/**
|
|
* Decodes a MyRequest from the specified reader or buffer, length delimited.
|
|
* @param {$protobuf.Reader|Uint8Array} readerOrBuffer Reader or buffer to decode from
|
|
* @returns {MyRequest} MyRequest
|
|
*/
|
|
MyRequest.decodeDelimited = function decodeDelimited(readerOrBuffer) {
|
|
readerOrBuffer = readerOrBuffer instanceof $protobuf.Reader ? readerOrBuffer : $protobuf.Reader(readerOrBuffer);
|
|
return this.decode(readerOrBuffer, readerOrBuffer.uint32());
|
|
};
|
|
|
|
/**
|
|
* Verifies a MyRequest.
|
|
* @function
|
|
* @param {MyRequest|Object} message MyRequest or plain object to verify
|
|
* @returns {?string} `null` if valid, otherwise the reason why it is not
|
|
*/
|
|
MyRequest.verify = (function() {
|
|
/* eslint-disable */
|
|
var util = $protobuf.util;
|
|
var types; $lazyTypes.push(types = [null]);
|
|
return function verify(m) {
|
|
if(m.path!==undefined){
|
|
if(!util.isString(m.path))
|
|
return"invalid value for field .MyRequest.path (string expected)"
|
|
}
|
|
return null
|
|
}
|
|
/* eslint-enable */
|
|
})();
|
|
|
|
return MyRequest;
|
|
})();
|
|
|
|
$root.MyResponse = (function() {
|
|
|
|
/**
|
|
* Constructs a new MyResponse.
|
|
* @exports MyResponse
|
|
* @constructor
|
|
* @param {Object} [properties] Properties to set
|
|
*/
|
|
function MyResponse(properties) {
|
|
if (properties) {
|
|
var keys = Object.keys(properties);
|
|
for (var i = 0; i < keys.length; ++i)
|
|
this[keys[i]] = properties[keys[i]];
|
|
}
|
|
}
|
|
|
|
/** @alias MyResponse.prototype */
|
|
var $prototype = MyResponse.prototype;
|
|
|
|
/**
|
|
* MyResponse status.
|
|
* @type {number}
|
|
*/
|
|
$prototype.status = 0;
|
|
|
|
/**
|
|
* Creates a new MyResponse instance using the specified properties.
|
|
* @param {Object} [properties] Properties to set
|
|
* @returns {MyResponse} MyResponse instance
|
|
*/
|
|
MyResponse.create = function create(properties) {
|
|
return new MyResponse(properties);
|
|
};
|
|
|
|
/**
|
|
* Encodes the specified MyResponse.
|
|
* @function
|
|
* @param {MyResponse|Object} message MyResponse or plain object to encode
|
|
* @param {$protobuf.Writer} [writer] Writer to encode to
|
|
* @returns {$protobuf.Writer} Writer
|
|
*/
|
|
MyResponse.encode = (function() {
|
|
/* eslint-disable */
|
|
var Writer = $protobuf.Writer;
|
|
var util = $protobuf.util;
|
|
var types; $lazyTypes.push(types = [null]);
|
|
return function encode(m, w) {
|
|
w||(w=Writer.create())
|
|
if(m.status!==undefined&&m.status!==0)
|
|
w.uint32(16).int32(m.status)
|
|
return w
|
|
}
|
|
/* eslint-enable */
|
|
})();
|
|
|
|
/**
|
|
* Encodes the specified MyResponse, length delimited.
|
|
* @param {MyResponse|Object} message MyResponse or plain object to encode
|
|
* @param {$protobuf.Writer} [writer] Writer to encode to
|
|
* @returns {$protobuf.Writer} Writer
|
|
*/
|
|
MyResponse.encodeDelimited = function encodeDelimited(message, writer) {
|
|
return this.encode(message, writer).ldelim();
|
|
};
|
|
|
|
/**
|
|
* Decodes a MyResponse from the specified reader or buffer.
|
|
* @function
|
|
* @param {$protobuf.Reader|Uint8Array} readerOrBuffer Reader or buffer to decode from
|
|
* @param {number} [length] Message length if known beforehand
|
|
* @returns {MyResponse} MyResponse
|
|
*/
|
|
MyResponse.decode = (function() {
|
|
/* eslint-disable */
|
|
var Reader = $protobuf.Reader;
|
|
var util = $protobuf.util;
|
|
var types; $lazyTypes.push(types = [null]);
|
|
return function decode(r, l) {
|
|
r instanceof Reader||(r=Reader.create(r))
|
|
var c=l===undefined?r.len:r.pos+l,m=new $root.MyResponse
|
|
while(r.pos<c){
|
|
var t=r.uint32()
|
|
switch(t>>>3){
|
|
case 2:
|
|
m.status=r.int32()
|
|
break
|
|
default:
|
|
r.skipType(t&7)
|
|
break
|
|
}
|
|
}
|
|
return m
|
|
}
|
|
/* eslint-enable */
|
|
})();
|
|
|
|
/**
|
|
* Decodes a MyResponse from the specified reader or buffer, length delimited.
|
|
* @param {$protobuf.Reader|Uint8Array} readerOrBuffer Reader or buffer to decode from
|
|
* @returns {MyResponse} MyResponse
|
|
*/
|
|
MyResponse.decodeDelimited = function decodeDelimited(readerOrBuffer) {
|
|
readerOrBuffer = readerOrBuffer instanceof $protobuf.Reader ? readerOrBuffer : $protobuf.Reader(readerOrBuffer);
|
|
return this.decode(readerOrBuffer, readerOrBuffer.uint32());
|
|
};
|
|
|
|
/**
|
|
* Verifies a MyResponse.
|
|
* @function
|
|
* @param {MyResponse|Object} message MyResponse or plain object to verify
|
|
* @returns {?string} `null` if valid, otherwise the reason why it is not
|
|
*/
|
|
MyResponse.verify = (function() {
|
|
/* eslint-disable */
|
|
var util = $protobuf.util;
|
|
var types; $lazyTypes.push(types = [null]);
|
|
return function verify(m) {
|
|
if(m.status!==undefined){
|
|
if(!util.isInteger(m.status))
|
|
return"invalid value for field .MyResponse.status (integer expected)"
|
|
}
|
|
return null
|
|
}
|
|
/* eslint-enable */
|
|
})();
|
|
|
|
return MyResponse;
|
|
})();
|
|
|
|
// Resolve lazy types
|
|
$lazyTypes.forEach(function(types) {
|
|
types.forEach(function(path, i) {
|
|
if (!path)
|
|
return;
|
|
path = path.split('.');
|
|
var ptr = $root;
|
|
while (path.length)
|
|
ptr = ptr[path.shift()];
|
|
types[i] = ptr;
|
|
});
|
|
});
|
|
|
|
$protobuf.roots["test_rpc"] = $root;
|
|
|
|
module.exports = $root;
|