summaryrefslogtreecommitdiff
path: root/doc/core/howto/tutorial/listings/finger/finger19a_changes.py
diff options
context:
space:
mode:
Diffstat (limited to 'doc/core/howto/tutorial/listings/finger/finger19a_changes.py')
-rw-r--r--doc/core/howto/tutorial/listings/finger/finger19a_changes.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/doc/core/howto/tutorial/listings/finger/finger19a_changes.py b/doc/core/howto/tutorial/listings/finger/finger19a_changes.py
new file mode 100644
index 0000000..cbb3623
--- /dev/null
+++ b/doc/core/howto/tutorial/listings/finger/finger19a_changes.py
@@ -0,0 +1,29 @@
+
+class IFingerSetterService(Interface):
+
+ def setUser(user, status):
+ """Set the user's status to something"""
+
+# Advantages of latest version
+
+class MemoryFingerService(service.Service):
+
+ implements([IFingerService, IFingerSetterService])
+
+ def __init__(self, **kwargs):
+ self.users = kwargs
+
+ def getUser(self, user):
+ return defer.succeed(self.users.get(user, "No such user"))
+
+ def getUsers(self):
+ return defer.succeed(self.users.keys())
+
+ def setUser(self, user, status):
+ self.users[user] = status
+
+
+f = MemoryFingerService(moshez='Happy and well')
+serviceCollection = service.IServiceCollection(application)
+internet.TCPServer(1079, IFingerSetterFactory(f), interface='127.0.0.1'
+ ).setServiceParent(serviceCollection)