feature(util) mv addListener, removeListener from cloudfunc

This commit is contained in:
coderaiser 2014-07-01 04:24:04 -04:00
parent e7dad86f91
commit 5e12b475bb
4 changed files with 77 additions and 60 deletions

View file

@ -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);

View file

@ -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
*/

View file

@ -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) {

View file

@ -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