code: def update(self, event):
  		
  		
  		# Create our own copy of the event data, as we'll be pushing that to
  		# another data structure and we don't want it mangled by user code later
  		# on.
  		event = event.copy()
  
  		# Now just defer the work to later.
  		reactor.callInThread(self._update_deferred, event)
docs: All messages from the Protocol get passed through this method.  This
  		allows the client to have an up-to-date state for the client.
  		
  		However, this method doesn't actually update right away.  Instead, the
  		acutal update happens in another thread, potentially later, in order to
  		allow user code to handle the event faster.