GUI -- Refactored (condensed) the Topo Event Service.
Change-Id: I58ecac5ed6fe91ae81a44097c3a48d564ccac4bb
diff --git a/web/gui/src/main/webapp/app/view/topo/topoEvent.js b/web/gui/src/main/webapp/app/view/topo/topoEvent.js
index e39e11c..bbe3d3a 100644
--- a/web/gui/src/main/webapp/app/view/topo/topoEvent.js
+++ b/web/gui/src/main/webapp/app/view/topo/topoEvent.js
@@ -16,7 +16,11 @@
/*
ONOS GUI -- Topology Event Module.
- Defines event handling for events received from the server.
+
+ Defines the conduit between the client and the server:
+ - provides a clean API for sending events to the server
+ - dispatches incoming events from the server to the appropriate submodule
+
*/
(function () {
@@ -26,107 +30,44 @@
var $log, wss, wes, tps, tis, tfs;
// internal state
- var wsock;
-
- var evHandler = {
- showSummary: showSummary,
- addInstance: addInstance,
- updateInstance: updateInstance,
- removeInstance: removeInstance,
- addDevice: addDevice,
- updateDevice: updateDevice,
- removeDevice: removeDevice,
- addHost: addHost,
- updateHost: updateHost,
- removeHost: removeHost,
- addLink: addLink,
- updateLink: updateLink,
- removeLink: removeLink
-
- // TODO: implement remaining handlers..
- };
-
- function unknownEvent(ev) {
- $log.warn('Unknown event (ignored):', ev);
- }
-
- // === Event Handlers ===
-
- // NOTE: --- once these are done, we will collapse them into
- // a more compact data structure... but for now, write in full..
-
- function showSummary(ev) {
- $log.debug(' **** Show Summary **** ', ev.payload);
- tps.showSummary(ev.payload);
- }
-
- function addInstance(ev) {
- $log.debug(' **** Add Instance **** ', ev.payload);
- tis.addInstance(ev.payload);
- }
-
- function updateInstance(ev) {
- $log.debug(' **** Update Instance **** ', ev.payload);
- tis.updateInstance(ev.payload);
- }
-
- function removeInstance(ev) {
- $log.debug(' **** Remove Instance **** ', ev.payload);
- tis.removeInstance(ev.payload);
- }
-
- function addDevice(ev) {
- $log.debug(' **** Add Device **** ', ev.payload);
- tfs.addDevice(ev.payload);
- }
-
- function updateDevice(ev) {
- $log.debug(' **** Update Device **** ', ev.payload);
- tfs.updateDevice(ev.payload);
- }
-
- function removeDevice(ev) {
- $log.debug(' **** Remove Device **** ', ev.payload);
- tfs.removeDevice(ev.payload);
- }
-
- function addHost(ev) {
- $log.debug(' **** Add Host **** ', ev.payload);
- tfs.addHost(ev.payload);
- }
-
- function updateHost(ev) {
- $log.debug(' **** Update Host **** ', ev.payload);
- tfs.updateHost(ev.payload);
- }
-
- function removeHost(ev) {
- $log.debug(' **** Remove Host **** ', ev.payload);
- tfs.removeHost(ev.payload);
- }
-
- function addLink(ev) {
- $log.debug(' **** Add Link **** ', ev.payload);
- tfs.addLink(ev.payload);
- }
-
- function updateLink(ev) {
- $log.debug(' **** Update Link **** ', ev.payload);
- tfs.updateLink(ev.payload);
- }
-
- function removeLink(ev) {
- $log.debug(' **** Remove Link **** ', ev.payload);
- tfs.removeLink(ev.payload);
- }
-
+ var wsock, evApis;
// ==========================
+ function bindApis() {
+ evApis = {
+ showSummary: tps,
+ addInstance: tis,
+ updateInstance: tis,
+ removeInstance: tis,
+ addDevice: tfs,
+ updateDevice: tfs,
+ removeDevice: tfs,
+ addHost: tfs,
+ updateHost: tfs,
+ removeHost: tfs,
+ addLink: tfs,
+ updateLink: tfs,
+ removeLink: tfs
+
+ // TODO: add remaining event api vectors
+ };
+ }
+
var dispatcher = {
handleEvent: function (ev) {
- (evHandler[ev.event] || unknownEvent)(ev);
+ var eid = ev.event,
+ api = evApis[eid] || {},
+ eh = api[eid];
+
+ if (eh) {
+ $log.debug(' *EVENT* ', ev.payload);
+ eh(ev.payload);
+ } else {
+ $log.warn('Unknown event (ignored):', ev);
+ }
},
+
sendEvent: function (evType, payload) {
if (wsock) {
wes.sendEvent(wsock, evType, payload);
@@ -168,6 +109,8 @@
tis = _tis_;
tfs = _tfs_;
+ bindApis();
+
// TODO: handle "guiSuccessor" functionality (replace host)
// TODO: implement retry on close functionality