Changeset 722
- Timestamp:
- 07/21/08 01:06:44 (4 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
oss/headstock/headstock/protocol/extension/pubsub.py
r677 r722 13 13 'ItemPublicationDispatcher', 'ItemDeletionDispatcher', 14 14 'MessageEventDispatcher', 'NodePurgeDispatcher', 15 'PubSubDispatcher' ]15 'PubSubDispatcher', 'ItemRetrievalDispatcher'] 16 16 17 17 class SubscriptionDispatcher(component): … … 305 305 yield 1 306 306 307 class Item PublicationDispatcher(component):307 class ItemRetrievalDispatcher(component): 308 308 309 309 Inboxes = {"inbox" : "bridge.Element instance", 310 310 "control" : "Shutdown the client stream", 311 "forward" : " headstock.api.contact.Message instance to be sent back to the client. Transforms the instance to a bridge.Element instance and puts it into the 'outbox'",311 "forward" : "", 312 312 } 313 313 … … 323 323 324 324 def __init__(self): 325 super(Item PublicationDispatcher, self).__init__()325 super(ItemRetrievalDispatcher, self).__init__() 326 326 327 327 def main(self): … … 338 338 if self.dataReady("forward"): 339 339 s = self.recv("forward") 340 self.send(Node.to_ publication_element(s), "outbox")340 self.send(Node.to_request_item(s), "outbox") 341 341 342 342 if self.dataReady("inbox"): … … 350 350 351 351 if key in self.outboxes: 352 self.send(Node.from_ publication_element(e), key)352 self.send(Node.from_request_item(e), key) 353 353 handled = True 354 354 … … 363 363 yield 1 364 364 365 class Item DeletionDispatcher(component):365 class ItemPublicationDispatcher(component): 366 366 367 367 Inboxes = {"inbox" : "bridge.Element instance", … … 381 381 382 382 def __init__(self): 383 super(ItemPublicationDispatcher, self).__init__() 384 385 def main(self): 386 yield 1 387 388 while 1: 389 if self.dataReady("control"): 390 mes = self.recv("control") 391 392 if isinstance(mes, shutdownMicroprocess) or isinstance(mes, producerFinished): 393 self.send(producerFinished(), "signal") 394 break 395 396 if self.dataReady("forward"): 397 s = self.recv("forward") 398 self.send(Node.to_publication_element(s), "outbox") 399 400 if self.dataReady("inbox"): 401 handled = False 402 a = self.recv("inbox") 403 e = a.xml_parent.xml_parent 404 self.send(('INCOMING', e), "log") 405 406 msg_type = e.get_attribute_value(u'type') or 'get' 407 key = 'xmpp.%s' % unicode(msg_type) 408 409 if key in self.outboxes: 410 self.send(Node.from_publication_element(e), key) 411 handled = True 412 413 if not handled: 414 self.send(e, "unknown") 415 416 if not self.anyReady(): 417 self.pause() 418 419 yield 1 420 421 yield 1 422 423 class ItemDeletionDispatcher(component): 424 425 Inboxes = {"inbox" : "bridge.Element instance", 426 "control" : "Shutdown the client stream", 427 "forward" : "headstock.api.contact.Message instance to be sent back to the client. Transforms the instance to a bridge.Element instance and puts it into the 'outbox'", 428 } 429 430 Outboxes = {"outbox" : "bridge.Element instance", 431 "signal" : "Shutdown signal", 432 "log" : "log", 433 "unknown" : "Unknown element that could not be dispatched properly", 434 "xmpp.get" : "Activity requests", 435 "xmpp.set" : "Activity responses", 436 "xmpp.result" : "Activity responses", 437 "xmpp.error" : "Activity response error", 438 } 439 440 def __init__(self): 383 441 super(ItemDeletionDispatcher, self).__init__() 384 442 … … 464 522 Inboxes = {"inbox" : "bridge.Element instance", 465 523 "control" : "Shutdown the client stream", 524 "retrieve.inbox" : "", 525 "retrieve.forward" : "", 466 526 "create.inbox" : "", 467 527 "create.forward" : "", … … 479 539 "retract.forward" : "", 480 540 "message.inbox" : "", 541 "in.retrieve.error" : "Retrieve items response error", 542 "in.retrieve.get" : "Retrieve items requests", 543 "in.retrieve.set" : "Retrieve items responses", 544 "in.retrieve.result" : "Retrieve items responses", 481 545 "in.create.error" : "Publish items response error", 482 546 "in.create.get" : "Publish items requests", … … 512 576 "unknown" : "Unknown element that could not be dispatched properly", 513 577 "log" : "log", 578 "retrieve.outbox" : "", 514 579 "create.outbox" : "", 515 580 "purge.outbox" : "", … … 520 585 "retract.outbox" : "", 521 586 "message.outbox" : "", 587 "out.retrieve.error" : "Retrieve items responses", 588 "out.retrieve.get" : "Retrieve items requests", 589 "out.retrieve.set" : "Retrieve items responses", 590 "out.retrieve.result" : "Retrieve items responses", 522 591 "out.create.get" : "Publish items requests", 523 592 "out.create.set" : "Publish items responses", … … 639 708 nodedeletedisp.activate() 640 709 710 itemretrievedisp = ItemRetrievalDispatcher() 711 self.link((self, 'retrieve.inbox'), (itemretrievedisp, 'inbox'), passthrough=1) 712 self.link((self, 'retrieve.forward'), (itemretrievedisp, 'forward'), passthrough=1) 713 self.link((self, 'in.retrieve.get'), (itemretrievedisp, 'forward'), passthrough=1) 714 self.link((self, 'in.retrieve.set'), (itemretrievedisp, 'forward'), passthrough=1) 715 self.link((self, 'in.retrieve.result'), (itemretrievedisp, 'forward'), passthrough=1) 716 self.link((self, 'in.retrieve.error'), (itemretrievedisp, 'forward'), passthrough=1) 717 self.link((itemretrievedisp, 'outbox'), (self, 'retrieve.outbox'), passthrough=2) 718 self.link((itemretrievedisp, 'xmpp.get'), (self, 'out.retrieve.get'), passthrough=2) 719 self.link((itemretrievedisp, 'xmpp.set'), (self, 'out.retrieve.set'), passthrough=2) 720 self.link((itemretrievedisp, 'xmpp.result'), (self, 'out.retrieve.result'), passthrough=2) 721 self.link((itemretrievedisp, 'xmpp.error'), (self, 'out.retrieve.error'), passthrough=2) 722 self.link((itemretrievedisp, 'unknown'), (self, 'unknown'), passthrough=2) 723 self.link((itemretrievedisp, 'log'), (self, 'log'), passthrough=2) 724 self.addChildren(itemretrievedisp) 725 itemretrievedisp.activate() 726 641 727 itempublishdisp = ItemPublicationDispatcher() 642 728 self.link((self, 'publish.inbox'), (itempublishdisp, 'inbox'), passthrough=1)
