X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=src%2Fnepi%2Fresources%2Fns3%2Fns3queue.py;h=1341e965d04b5a492d8754191cedb9cc8c6f22d1;hb=6285ca51026efb69642eea9dfc7c480e722d84a9;hp=4a2b66bb5278f3dd34feddc5d5ec0830c263f3ea;hpb=f97424b88767d2ec6143e5264a58a740c5330d11;p=nepi.git diff --git a/src/nepi/resources/ns3/ns3queue.py b/src/nepi/resources/ns3/ns3queue.py index 4a2b66bb..1341e965 100644 --- a/src/nepi/resources/ns3/ns3queue.py +++ b/src/nepi/resources/ns3/ns3queue.py @@ -3,9 +3,8 @@ # Copyright (C) 2014 INRIA # # This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation; # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -19,34 +18,37 @@ from nepi.execution.resource import clsinit_copy from nepi.resources.ns3.ns3base import NS3Base -from nepi.resources.ns3.ns3device import NS3BaseNetDevice @clsinit_copy class NS3BaseQueue(NS3Base): - _rtype = "ns3::Queue" + _rtype = "abstract::ns3::Queue" @property def device(self): + from nepi.resources.ns3.ns3netdevice import NS3BaseNetDevice devices = self.get_connected(NS3BaseNetDevice.get_rtype()) - if devices: return devices[0] - return None + + if not devices: + msg = "Queue not connected to device" + self.error(msg, out, err) + raise RuntimeError(msg) + + return devices[0] @property def node(self): - device = self.device - if device: return device.node - return None + return self.device.node @property - def others_to_wait(self): - others = set() - device = self.device - if device: others.add(device) - return others + def _rms_to_wait(self): + rms = set() + rms.add(self.device) + return rms def _connect_object(self): device = self.device - if device and device.uuid not in self.connected: - self.simulator.invoke(device.uuid, "SetQueue", self.uuid) + if device.uuid not in self.connected: + self.simulation.invoke(device.uuid, "SetQueue", self.uuid) self._connected.add(device.uuid) + device._connected.add(self.uuid)