Changeset View
Changeset View
Standalone View
Standalone View
support/aphlict/server/lib/AphlictListenerList.js
| var JX = require('javelin').JX; | var JX = require('javelin').JX; | ||||
| JX.require('AphlictListener', __dirname); | JX.require('AphlictListener', __dirname); | ||||
| JX.install('AphlictListenerList', { | JX.install('AphlictListenerList', { | ||||
| construct: function() { | construct: function() { | ||||
| this._listeners = {}; | this._listeners = {}; | ||||
| }, | }, | ||||
| members: { | members: { | ||||
| _listeners: null, | _listeners: null, | ||||
| _nextID: 0, | _nextID: 0, | ||||
| _activeListenerCount: 0, | |||||
| _totalListenerCount: 0, | _totalListenerCount: 0, | ||||
| addListener: function(socket) { | addListener: function(socket) { | ||||
| var listener = new JX.AphlictListener(this._generateNextID(), socket); | var listener = new JX.AphlictListener(this._generateNextID(), socket); | ||||
| this._listeners[listener.getID()] = listener; | this._listeners[listener.getID()] = listener; | ||||
| this._activeListenerCount++; | |||||
| this._totalListenerCount++; | this._totalListenerCount++; | ||||
| return listener; | return listener; | ||||
| }, | }, | ||||
| removeListener: function(listener) { | removeListener: function(listener) { | ||||
| var id = listener.getID(); | var id = listener.getID(); | ||||
| if (id in this._listeners) { | if (id in this._listeners) { | ||||
| delete this._listeners[id]; | delete this._listeners[id]; | ||||
| this._activeListenerCount--; | |||||
| } | } | ||||
| }, | }, | ||||
| getListeners: function() { | getListeners: function() { | ||||
| var keys = Object.keys(this._listeners); | var keys = Object.keys(this._listeners); | ||||
| var listeners = []; | var listeners = []; | ||||
| for (var i = 0; i < keys.length; i++) { | for (var i = 0; i < keys.length; i++) { | ||||
| listeners.push(this._listeners[keys[i]]); | listeners.push(this._listeners[keys[i]]); | ||||
| } | } | ||||
| return listeners; | return listeners; | ||||
| }, | }, | ||||
| getActiveListenerCount: function() { | getActiveListenerCount: function() { | ||||
| return this._activeListenerCount; | return Object.keys(this._listeners).length; | ||||
| }, | }, | ||||
| getTotalListenerCount: function() { | getTotalListenerCount: function() { | ||||
| return this._totalListenerCount; | return this._totalListenerCount; | ||||
| }, | }, | ||||
| _generateNextID: function() { | _generateNextID: function() { | ||||
| do { | do { | ||||
| Show All 9 Lines | |||||