Callback ids cycle from 0 to 1000

This commit is contained in:
David Cormier 2013-10-27 15:41:45 -04:00
parent 51abcc6953
commit 1f455c813a

View file

@ -196,17 +196,35 @@ weechat.factory('connection', ['$q', '$rootScope', '$log', '$store', 'handlers',
var callbacks = {}
var currentCallBackId = 0;
/*
* Returns the current callback id
*/
var getCurrentCallBackId = function() {
currentCallBackId += 1;
if (currentCallBackId > 1000) {
currentCallBackId = 0;
}
return currentCallBackId;
}
/*
* Create a callback, adds it to the callback list
* and return it.
*/
var createCallback = function() {
var defer = $q.defer();
callbacks[++currentCallBackId] = {
var cbId = getCurrentCallBackId();
callbacks[cbId] = {
time: new Date,
cb: defer
cb: defer,
}
callBackIdString = "(" + currentCallBackId + ")";
defer.id = cbId
return defer;
}
@ -232,7 +250,7 @@ weechat.factory('connection', ['$q', '$rootScope', '$log', '$store', 'handlers',
var send = function(message) {
message.replace(/[\r\n]+$/g, "").split("\n");
var cb = createCallback(message);
websocket.send(callBackIdString + " " + message);
websocket.send("(" + cb.id + ") " + message);
return cb.promise;
}