diff --git a/lib/client/socket.js b/lib/client/socket.js index 6aef6bba..04fc941e 100644 --- a/lib/client/socket.js +++ b/lib/client/socket.js @@ -1,7 +1,7 @@ -var CloudCmd, Util, DOM, CloudFunc, io; +var CloudCmd, Util, DOM, io; -(function(CloudCmd, Util, DOM, CloudFunc) { +(function(CloudCmd, Util, DOM) { 'use strict'; CloudCmd.Socket = SocketProto; @@ -34,11 +34,11 @@ var CloudCmd, Util, DOM, CloudFunc, io; } function addListener(name, func) { - CloudFunc.addListener(name, func, AllListeners, socket); + Util.addListener(name, func, AllListeners, socket); } function removeListener(name, func) { - CloudFunc.removeListener(name, func, AllListeners, socket); + Util.removeListener(name, func, AllListeners, socket); } function send(data) { @@ -92,4 +92,4 @@ var CloudCmd, Util, DOM, CloudFunc, io; return Socket; } -})(CloudCmd, Util, DOM, CloudFunc); +})(CloudCmd, Util, DOM); diff --git a/lib/cloudfunc.js b/lib/cloudfunc.js index e0b955a9..b6dc79e1 100644 --- a/lib/cloudfunc.js +++ b/lib/cloudfunc.js @@ -33,58 +33,7 @@ var Util; this.CHANNEL_TERMINAL_RESIZE= 'terminal-resize'; this.MAX_FILE_SIZE = 500 * 1024; - this.addListener = function(name, func, allListeners, socket) { - var listeners, obj, - type = Util.getType(name); - - switch(type) { - case 'string': - listeners = allListeners[name]; - - if (!listeners) - listeners = allListeners[name] = []; - - listeners.push(func); - - if (func && socket) - socket.on(name, func); - - break; - - case 'object': - obj = name; - - Object.keys(obj).forEach(function(name) { - func = obj[name]; - CloudFunc.addListener(name, func, allListeners, socket); - }); - - break; - } - - return this; - }; - - this.removeListener = function(name, func, allListeners, socket) { - var listeners; - - if (socket) - socket.removeListener(name, func); - - listeners = allListeners[name]; - - if (listeners) - listeners = listeners.map(function(listener) { - if (listener === func) - listener = null; - - return listener; - }); - - return this; - }; - - /** + /** * ad new line (if it's not) * @param {string} pText */ diff --git a/lib/server/socket.js b/lib/server/socket.js index 3b1a7704..8f2fd0a3 100644 --- a/lib/server/socket.js +++ b/lib/server/socket.js @@ -2,8 +2,9 @@ 'use strict'; var main = global.cloudcmd.main, + DIR = '../', io = main.require('socket.io'), - CloudFunc = main.cloudfunc, + Util = require(DIR + 'util'), AllListeners = []; exports.on = addListener; @@ -17,11 +18,11 @@ if (!socket) socket = io.sockets; - CloudFunc.addListener(name, func, AllListeners, socket); + Util.addListener(name, func, AllListeners, socket); } function removeListener(name, func, socket) { - CloudFunc.removeListener(name, func, AllListeners, socket); + Util.removeListener(name, func, AllListeners, socket); } function send(msg, socket) { diff --git a/lib/util.js b/lib/util.js index b6ab1ec4..a621eb91 100644 --- a/lib/util.js +++ b/lib/util.js @@ -26,6 +26,73 @@ return new F(); }; + /** + * add listener to observer + * + * @param name - event name + * @param func - function + * @param allListeners - listeners array + * @param observer - observer object + */ + this.addListener = function(name, func, allListeners, observer) { + var listeners, obj, + type = Util.getType(name); + + switch(type) { + case 'string': + listeners = allListeners[name]; + + if (!listeners) + listeners = allListeners[name] = []; + + listeners.push(func); + + if (func && observer) + observer.on(name, func); + + break; + + case 'object': + obj = name; + + Object.keys(obj).forEach(function(name) { + func = obj[name]; + Util.addListener(name, func, allListeners, observer); + }); + + break; + } + + return this; + }; + + /** + * remove listener from observer + * + * @param name - event name + * @param func - function + * @param allListeners - listeners array + * @param observer - observer object + */ + this.removeListener = function(name, func, allListeners, observer) { + var listeners; + + if (observer) + observer.removeListener(name, func); + + listeners = allListeners[name]; + + if (listeners) + listeners = listeners.map(function(listener) { + if (listener === func) + listener = null; + + return listener; + }); + + return this; + }; + /** * Функция ищет в имени файла расширение * и если находит возвращает true