applied the except and raise fixers to the master branch to close the gap with py3
[nepi.git] / src / nepi / resources / ns3 / ns3channel.py
index fe628c8..b218e51 100644 (file)
@@ -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
 
 from nepi.execution.resource import clsinit_copy
 from nepi.resources.ns3.ns3base import NS3Base
-from nepi.resources.ns3.ns3device import NS3BaseNetDevice
 
 @clsinit_copy
 class NS3BaseChannel(NS3Base):
-    _rtype = "ns3::Channel"
+    _rtype = "abstract::ns3::Channel"
+
+    @property
+    def simulation(self):
+        return self.devices[0].node.simulation
 
     @property
     def devices(self):
-        return self.get_connected(NS3BaseNetDevice.get_rtype())
+        from nepi.resources.ns3.ns3netdevice import NS3BaseNetDevice
+        devices = self.get_connected(NS3BaseNetDevice.get_rtype())
+
+        if not devices: 
+            msg = "Channel not connected to devices"
+            self.error(msg)
+            raise RuntimeError(msg)
+
+        return devices
 
     @property
-    def simulator(self):
-        devices = self.devices
-        if devices: return device[0].node.simulator
-        return None
-    
+    def _rms_to_wait(self):
+        rms = set()
+        rms.add(self.simulation)
+        return rms
+
+    def _connect_object(self):
+        pass
+