runtime/PyroServer.py
changeset 2476 1881d0ff5ae2
parent 2315 523559fe6352
child 2492 7dd551ac2fa0
--- a/runtime/PyroServer.py	Fri Dec 21 13:39:41 2018 +0100
+++ b/runtime/PyroServer.py	Fri Dec 21 13:43:41 2018 +0100
@@ -19,7 +19,7 @@
 from runtime.ServicePublisher import ServicePublisher
 
 
-class Server(object):
+class PyroServer(object):
     def __init__(self, servicename, ip_addr, port):
         self.continueloop = True
         self.daemon = None
@@ -41,6 +41,7 @@
         sys.stdout.flush()
 
     def PyroLoop(self, when_ready):
+        if self._to_be_published(): self.Publish()
         while self.continueloop:
             Pyro.config.PYRO_MULTITHREADED = 0
             pyro.initServer()
@@ -56,23 +57,24 @@
 
             self.daemon.connect(pyro_obj, "PLCObject")
 
-            if self._to_be_published():
-                self.servicepublisher = ServicePublisher()
-                self.servicepublisher.RegisterService(self.servicename, self.ip_addr, self.port)
-
             when_ready()
             self.daemon.requestLoop()
             self.daemon.sock.close()
+        self.Unpublish()
 
     def Restart(self):
-        self._stop()
+        self.daemon.shutdown(True)
 
     def Quit(self):
         self.continueloop = False
-        self._stop()
+        self.daemon.shutdown(True)
 
-    def _stop(self):
+    def Publish(self):
+        self.servicepublisher = ServicePublisher("PYRO")
+        self.servicepublisher.RegisterService(self.servicename,
+                                              self.ip_addr, self.port)
+
+    def Unpublish(self):
         if self.servicepublisher is not None:
             self.servicepublisher.UnRegisterService()
             self.servicepublisher = None
-        self.daemon.shutdown(True)