GUI -- Refactored (condensed) the Topo Event Service.
Change-Id: I58ecac5ed6fe91ae81a44097c3a48d564ccac4bb
Showing
1 changed file
with
38 additions
and
95 deletions
... | @@ -16,7 +16,11 @@ | ... | @@ -16,7 +16,11 @@ |
16 | 16 | ||
17 | /* | 17 | /* |
18 | ONOS GUI -- Topology Event Module. | 18 | ONOS GUI -- Topology Event Module. |
19 | - Defines event handling for events received from the server. | 19 | + |
20 | + Defines the conduit between the client and the server: | ||
21 | + - provides a clean API for sending events to the server | ||
22 | + - dispatches incoming events from the server to the appropriate submodule | ||
23 | + | ||
20 | */ | 24 | */ |
21 | 25 | ||
22 | (function () { | 26 | (function () { |
... | @@ -26,107 +30,44 @@ | ... | @@ -26,107 +30,44 @@ |
26 | var $log, wss, wes, tps, tis, tfs; | 30 | var $log, wss, wes, tps, tis, tfs; |
27 | 31 | ||
28 | // internal state | 32 | // internal state |
29 | - var wsock; | 33 | + var wsock, evApis; |
30 | - | ||
31 | - var evHandler = { | ||
32 | - showSummary: showSummary, | ||
33 | - addInstance: addInstance, | ||
34 | - updateInstance: updateInstance, | ||
35 | - removeInstance: removeInstance, | ||
36 | - addDevice: addDevice, | ||
37 | - updateDevice: updateDevice, | ||
38 | - removeDevice: removeDevice, | ||
39 | - addHost: addHost, | ||
40 | - updateHost: updateHost, | ||
41 | - removeHost: removeHost, | ||
42 | - addLink: addLink, | ||
43 | - updateLink: updateLink, | ||
44 | - removeLink: removeLink | ||
45 | - | ||
46 | - // TODO: implement remaining handlers.. | ||
47 | - }; | ||
48 | - | ||
49 | - function unknownEvent(ev) { | ||
50 | - $log.warn('Unknown event (ignored):', ev); | ||
51 | - } | ||
52 | - | ||
53 | - // === Event Handlers === | ||
54 | - | ||
55 | - // NOTE: --- once these are done, we will collapse them into | ||
56 | - // a more compact data structure... but for now, write in full.. | ||
57 | - | ||
58 | - function showSummary(ev) { | ||
59 | - $log.debug(' **** Show Summary **** ', ev.payload); | ||
60 | - tps.showSummary(ev.payload); | ||
61 | - } | ||
62 | - | ||
63 | - function addInstance(ev) { | ||
64 | - $log.debug(' **** Add Instance **** ', ev.payload); | ||
65 | - tis.addInstance(ev.payload); | ||
66 | - } | ||
67 | - | ||
68 | - function updateInstance(ev) { | ||
69 | - $log.debug(' **** Update Instance **** ', ev.payload); | ||
70 | - tis.updateInstance(ev.payload); | ||
71 | - } | ||
72 | - | ||
73 | - function removeInstance(ev) { | ||
74 | - $log.debug(' **** Remove Instance **** ', ev.payload); | ||
75 | - tis.removeInstance(ev.payload); | ||
76 | - } | ||
77 | 34 | ||
78 | - function addDevice(ev) { | 35 | + // ========================== |
79 | - $log.debug(' **** Add Device **** ', ev.payload); | ||
80 | - tfs.addDevice(ev.payload); | ||
81 | - } | ||
82 | - | ||
83 | - function updateDevice(ev) { | ||
84 | - $log.debug(' **** Update Device **** ', ev.payload); | ||
85 | - tfs.updateDevice(ev.payload); | ||
86 | - } | ||
87 | - | ||
88 | - function removeDevice(ev) { | ||
89 | - $log.debug(' **** Remove Device **** ', ev.payload); | ||
90 | - tfs.removeDevice(ev.payload); | ||
91 | - } | ||
92 | - | ||
93 | - function addHost(ev) { | ||
94 | - $log.debug(' **** Add Host **** ', ev.payload); | ||
95 | - tfs.addHost(ev.payload); | ||
96 | - } | ||
97 | - | ||
98 | - function updateHost(ev) { | ||
99 | - $log.debug(' **** Update Host **** ', ev.payload); | ||
100 | - tfs.updateHost(ev.payload); | ||
101 | - } | ||
102 | - | ||
103 | - function removeHost(ev) { | ||
104 | - $log.debug(' **** Remove Host **** ', ev.payload); | ||
105 | - tfs.removeHost(ev.payload); | ||
106 | - } | ||
107 | - | ||
108 | - function addLink(ev) { | ||
109 | - $log.debug(' **** Add Link **** ', ev.payload); | ||
110 | - tfs.addLink(ev.payload); | ||
111 | - } | ||
112 | - | ||
113 | - function updateLink(ev) { | ||
114 | - $log.debug(' **** Update Link **** ', ev.payload); | ||
115 | - tfs.updateLink(ev.payload); | ||
116 | - } | ||
117 | 36 | ||
118 | - function removeLink(ev) { | 37 | + function bindApis() { |
119 | - $log.debug(' **** Remove Link **** ', ev.payload); | 38 | + evApis = { |
120 | - tfs.removeLink(ev.payload); | 39 | + showSummary: tps, |
40 | + addInstance: tis, | ||
41 | + updateInstance: tis, | ||
42 | + removeInstance: tis, | ||
43 | + addDevice: tfs, | ||
44 | + updateDevice: tfs, | ||
45 | + removeDevice: tfs, | ||
46 | + addHost: tfs, | ||
47 | + updateHost: tfs, | ||
48 | + removeHost: tfs, | ||
49 | + addLink: tfs, | ||
50 | + updateLink: tfs, | ||
51 | + removeLink: tfs | ||
52 | + | ||
53 | + // TODO: add remaining event api vectors | ||
54 | + }; | ||
121 | } | 55 | } |
122 | 56 | ||
123 | - | ||
124 | - // ========================== | ||
125 | - | ||
126 | var dispatcher = { | 57 | var dispatcher = { |
127 | handleEvent: function (ev) { | 58 | handleEvent: function (ev) { |
128 | - (evHandler[ev.event] || unknownEvent)(ev); | 59 | + var eid = ev.event, |
60 | + api = evApis[eid] || {}, | ||
61 | + eh = api[eid]; | ||
62 | + | ||
63 | + if (eh) { | ||
64 | + $log.debug(' *EVENT* ', ev.payload); | ||
65 | + eh(ev.payload); | ||
66 | + } else { | ||
67 | + $log.warn('Unknown event (ignored):', ev); | ||
68 | + } | ||
129 | }, | 69 | }, |
70 | + | ||
130 | sendEvent: function (evType, payload) { | 71 | sendEvent: function (evType, payload) { |
131 | if (wsock) { | 72 | if (wsock) { |
132 | wes.sendEvent(wsock, evType, payload); | 73 | wes.sendEvent(wsock, evType, payload); |
... | @@ -168,6 +109,8 @@ | ... | @@ -168,6 +109,8 @@ |
168 | tis = _tis_; | 109 | tis = _tis_; |
169 | tfs = _tfs_; | 110 | tfs = _tfs_; |
170 | 111 | ||
112 | + bindApis(); | ||
113 | + | ||
171 | // TODO: handle "guiSuccessor" functionality (replace host) | 114 | // TODO: handle "guiSuccessor" functionality (replace host) |
172 | // TODO: implement retry on close functionality | 115 | // TODO: implement retry on close functionality |
173 | 116 | ... | ... |
-
Please register or login to post a comment