| /* |
| * Copyright 2015 Open Networking Laboratory |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| /* |
| Sample Demo module. This contains the "business logic" for the topology |
| overlay that we are implementing. |
| */ |
| |
| (function () { |
| 'use strict'; |
| |
| // injected refs |
| var $log, fs, flash, wss; |
| |
| // constants |
| var srcMessage = 'ppTopovSetSrc', |
| dstMessage = 'ppTopovSetDst', |
| swapMessage = 'ppTopovSwapSrcDst', |
| modeMessage = 'ppTopovSetMode', |
| nextPathMessage = 'ppTopovNextPath', |
| clearMessage = 'ppTopovClear', |
| prevPathMessage = 'ppTopovPrevPath'; |
| |
| // internal state |
| var currentMode = null; |
| |
| |
| // === --------------------------- |
| // === Helper functions |
| |
| |
| // === --------------------------- |
| // === Main API functions |
| |
| function clear() { |
| wss.sendEvent(clearMessage); |
| flash.flash('Source node: ' + node.id); |
| } |
| |
| function setSrc(node) { |
| wss.sendEvent(srcMessage, { |
| id: node.id, |
| type: node.type |
| }); |
| flash.flash('Source node: ' + node.id); |
| } |
| |
| function setDst(node) { |
| wss.sendEvent(dstMessage, { |
| id: node.id, |
| type: node.type |
| }); |
| flash.flash('Destination node: ' + node.id); |
| } |
| |
| function swapSrcDst() { |
| wss.sendEvent(swapMessage) |
| flash.flash('Source and destination swap'); |
| } |
| |
| function nextPath() { |
| wss.sendEvent(nextPathMessage); |
| } |
| |
| function prevPath() { |
| wss.sendEvent(prevPathMessage); |
| } |
| |
| |
| function setMode(mode) { |
| if (currentMode === mode) { |
| $log.debug('(in mode', mode, 'already)'); |
| flash.flash('Already in ' + mode + ' mode'); |
| } else { |
| currentMode = mode; |
| wss.sendEvent(modeMessage, { |
| mode: mode |
| }); |
| flash.flash('Path mode: ' + mode); |
| } |
| } |
| |
| // === --------------------------- |
| // === Module Factory Definition |
| |
| angular.module('ovPpTopov', []) |
| .factory('PathPainterTopovService', |
| ['$log', 'FnService', 'FlashService', 'WebSocketService', |
| |
| function (_$log_, _fs_, _flash_, _wss_) { |
| $log = _$log_; |
| fs = _fs_; |
| flash = _flash_; |
| wss = _wss_; |
| |
| return { |
| setSrc: setSrc, |
| setDst: setDst, |
| setMode: setMode, |
| nextPath: nextPath, |
| prevPath: prevPath, |
| swapSrcDst: swapSrcDst, |
| clear: clear |
| }; |
| }]); |
| }()); |