Mercurial > libervia-pubsub
comparison idavoll/pubsub.py @ 68:a3d67cbab9c4
Return deferreds from getFeatures() and getIdentities().
Find out if a node exists for getIdentities(), and return its type.
author | Ralph Meijer <ralphm@ik.nu> |
---|---|
date | Sat, 06 Nov 2004 22:18:45 +0000 |
parents | f6b7a06b8870 |
children | 5d7a924ebddb |
comparison
equal
deleted
inserted
replaced
67:cdf17c4d3bf9 | 68:a3d67cbab9c4 |
---|---|
112 iq.handled = True | 112 iq.handled = True |
113 | 113 |
114 class ComponentServiceFromService(Service): | 114 class ComponentServiceFromService(Service): |
115 | 115 |
116 def getIdentities(self, node): | 116 def getIdentities(self, node): |
117 results = [] | 117 if node: |
118 if not node: | 118 d = self.backend.get_node_type(node) |
119 results.append({ | 119 d.addCallback(lambda x: [{'category': 'pubsub', 'type': x}]) |
120 'category': 'pubsub', | 120 d.addErrback(lambda x: []) |
121 'type': 'generic', | 121 return d |
122 'name': 'Generic Pubsub Service' | 122 else: |
123 }) | 123 return defer.succeed({'category': 'pubsub', |
124 return results | 124 'type': 'generic', |
125 'name': 'Generic Pubsub Service'}) | |
125 | 126 |
126 def getFeatures(self, node): | 127 def getFeatures(self, node): |
127 features = [] | 128 features = [] |
128 | 129 |
129 if not node: | 130 if not node: |
134 features.append(NS_PUBSUB + "#outcast-affiliation") | 135 features.append(NS_PUBSUB + "#outcast-affiliation") |
135 | 136 |
136 if self.backend.supports_persistent_items(): | 137 if self.backend.supports_persistent_items(): |
137 features.append(NS_PUBSUB + "#persistent-items") | 138 features.append(NS_PUBSUB + "#persistent-items") |
138 | 139 |
139 return features | 140 return defer.succeed(features) |
140 | 141 |
141 components.registerAdapter(ComponentServiceFromService, backend.IBackendService, component.IService) | 142 components.registerAdapter(ComponentServiceFromService, backend.IBackendService, component.IService) |
142 | 143 |
143 class ComponentServiceFromNotificationService(Service): | 144 class ComponentServiceFromNotificationService(Service): |
144 | 145 |
203 features = [] | 204 features = [] |
204 | 205 |
205 if not node: | 206 if not node: |
206 features.append(NS_PUBSUB + "#subscribe") | 207 features.append(NS_PUBSUB + "#subscribe") |
207 | 208 |
208 return features | 209 return defer.succeed(features) |
209 | 210 |
210 def onSubscribe(self, iq): | 211 def onSubscribe(self, iq): |
211 self.handler_wrapper(self._onSubscribe, iq) | 212 self.handler_wrapper(self._onSubscribe, iq) |
212 | 213 |
213 def _onSubscribe(self, iq): | 214 def _onSubscribe(self, iq): |
261 | 262 |
262 components.registerAdapter(ComponentServiceFromSubscriptionService, backend.ISubscriptionService, component.IService) | 263 components.registerAdapter(ComponentServiceFromSubscriptionService, backend.ISubscriptionService, component.IService) |
263 | 264 |
264 class ComponentServiceFromNodeCreationService(Service): | 265 class ComponentServiceFromNodeCreationService(Service): |
265 | 266 |
266 def getFeatures(self, node): | |
267 features = [] | |
268 | |
269 if not node: | |
270 features.append(NS_PUBSUB + "#create-nodes") | |
271 | |
272 if self.backend.supports_instant_nodes(): | |
273 features.append(NS_PUBSUB + "#instant-nodes") | |
274 | |
275 return features | |
276 | |
277 def componentConnected(self, xmlstream): | 267 def componentConnected(self, xmlstream): |
278 xmlstream.addObserver(PUBSUB_CREATE, self.onCreate) | 268 xmlstream.addObserver(PUBSUB_CREATE, self.onCreate) |
279 xmlstream.addObserver(PUBSUB_CONFIGURE_GET, self.onConfigureGet) | 269 xmlstream.addObserver(PUBSUB_CONFIGURE_GET, self.onConfigureGet) |
280 xmlstream.addObserver(PUBSUB_CONFIGURE_SET, self.onConfigureSet) | 270 xmlstream.addObserver(PUBSUB_CONFIGURE_SET, self.onConfigureSet) |
271 | |
272 def getFeatures(self, node): | |
273 features = [] | |
274 | |
275 if not node: | |
276 features.append(NS_PUBSUB + "#create-nodes") | |
277 | |
278 if self.backend.supports_instant_nodes(): | |
279 features.append(NS_PUBSUB + "#instant-nodes") | |
280 | |
281 return defer.succeed(features) | |
281 | 282 |
282 def onCreate(self, iq): | 283 def onCreate(self, iq): |
283 self.handler_wrapper(self._onCreate, iq) | 284 self.handler_wrapper(self._onCreate, iq) |
284 | 285 |
285 def _onCreate(self, iq): | 286 def _onCreate(self, iq): |