Package grassyknoll :: Package concurrent :: Module Message
[hide private]

Source Code for Module grassyknoll.concurrent.Message

 1  """contains L{Message}""" 
 2   
 3  from grassyknoll.lib import intUniqueId 
 4  import MailBox 
 5   
 6  __all__=['Message'] 
 7   
8 -class Message(object):
9 """a message 10 11 @ivar payload: the contents of the message 12 @type payload: object 13 14 @ivar id: a unique identifier for this message 15 @type id: integer 16 17 @ivar reply_box: where responses for this message should be 18 sent to. May be None. 19 @type reply_box: L{MailBox.MailBox} 20 21 @ivar re_id: the id of the Message this is a response to. May 22 be None 23 @type re_id: integer 24 """ 25 26 __slots__=['payload', 'id', 'reply_box', 're_id'] 27
28 - def __init__(self, payload, re_id=None, reply_box=None):
29 self.id = intUniqueId() 30 self.payload = payload 31 32 if not (re_id is None or isinstance(re_id, (int, long))): 33 raise TypeError("re_id must be int or long, not %r"%re_id) 34 35 self.re_id = re_id 36 37 if not(reply_box is None or isinstance(reply_box, MailBox.MailBox)): 38 raise TypeError("reply_box must be MailBox, not %r"%reply_box) 39 40 self.reply_box = reply_box
41
42 - def __repr__(self):
43 return "<Message %d\npayload %r\nreply_box %r\nre_id %r>"%( 44 self.id, self.payload, self.reply_box, self.re_id)
45