Source code for yawf.messages.submessage

from . import Message

[docs]class Submessage(object): need_lock_object = True def __init__(self, obj, message_id, sender, params=None, need_lock_object=True, raw_params=None): self.obj = obj self.sender = sender self.message_id = message_id self.params = params self.raw_params = raw_params self.need_lock_object = need_lock_object super(Submessage, self).__init__()
[docs] def as_message(self, parent): return Message(self.sender, self.message_id, raw_params=self.raw_params, clean_params=self.params, parent_message_id=parent.unique_id, message_group=parent.message_group, )
[docs] def dispatch(self, parent_obj, parent_message): from yawf.dispatch import dispatch_message message = self.as_message(parent_message) return dispatch_message( self.obj, message=message, defer_side_effect=True, need_lock_object=self.need_lock_object)
[docs]class RecursiveSubmessage(Submessage): def __init__(self, message_id, sender, params=None, raw_params=None): super(RecursiveSubmessage, self).__init__( obj=None, sender=sender, message_id=message_id, params=params, raw_params=raw_params)
[docs] def dispatch(self, parent_obj, parent_message): from yawf.dispatch import dispatch_message message = self.as_message(parent_message) return dispatch_message( parent_obj, message=message, defer_side_effect=True, need_lock_object=False)