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, | _activeListenerCount: 0, | ||||
| _totalListenerCount : 0, | _totalListenerCount: 0, | ||||
| addListener : function(socket) { | addListener: function(socket) { | ||||
| var listener = new JX.AphlictListener( | var listener = new JX.AphlictListener(this._generateNextID(), socket); | ||||
| this._generateNextID(), | |||||
| socket); | |||||
| this._listeners[listener.getID()] = listener; | this._listeners[listener.getID()] = listener; | ||||
| this._activeListenerCount++; | 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--; | this._activeListenerCount--; | ||||
| } | } | ||||
| }, | }, | ||||
| getListeners : function() { | getListeners: function() { | ||||
| return this._listeners; | return this._listeners; | ||||
| }, | }, | ||||
| getActiveListenerCount : function() { | getActiveListenerCount: function() { | ||||
| return this._activeListenerCount; | return this._activeListenerCount; | ||||
| }, | }, | ||||
| getTotalListenerCount : function() { | getTotalListenerCount: function() { | ||||
| return this._totalListenerCount; | return this._totalListenerCount; | ||||
| }, | }, | ||||
| _generateNextID : function() { | _generateNextID: function() { | ||||
| do { | do { | ||||
| this._nextID = ((this._nextID + 1) % 1000000000000); | this._nextID = ((this._nextID + 1) % 1000000000000); | ||||
| } while (this._nextID in this._listeners); | } while (this._nextID in this._listeners); | ||||
| return this._nextID; | return this._nextID; | ||||
| } | } | ||||
| } | } | ||||
| }); | }); | ||||