def update(self, event):
		"""
		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.
		
		"""
		
		# 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)
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.