[Telepathy-commits] [telepathy-spec/master] dis2: split into two, and propose solutions

Simon McVittie simon.mcvittie at collabora.co.uk
Mon Sep 15 11:05:54 PDT 2008


---
 doc/dispatch.txt |   43 +++++++++++++++----------------------------
 1 files changed, 15 insertions(+), 28 deletions(-)

diff --git a/doc/dispatch.txt b/doc/dispatch.txt
index f12a75c..cb0c2f4 100644
--- a/doc/dispatch.txt
+++ b/doc/dispatch.txt
@@ -125,48 +125,35 @@ Dispatch process::
     CD calls HandleChannels on Empathy chat process (service-activating it
     if needed)
 
-_`dis2`: Incoming 1-1 text message
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+_`dis2a`: Incoming 1-1 text message with lost window
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Juliet receives a message from Romeo after a pause in their conversation.
 
 Current implementation, _`dis2impl1`: it arrives in the Text channel
 
-Problems:
-
-* If Juliet's chat UI has crashed, the message is (as currently implemented)
-  lost forever (_`dis2problem1`)
+Potential problem: if the chat UI is not currently visible, as currently
+implemented it cannot necessarily use the same mechanism to notify the user
+that would be used for a new channel, because it doesn't "own" the
+notification mechanism for the new-channel case
 
-* If the chat UI is not currently visible, as currently implemented it
-  cannot necessarily use the same mechanism to notify the user that would
-  be used for a new channel, because it doesn't "own" the notification
-  mechanism for the new-channel case (this would be fixed by dis1impl2_)
-  (call this _`dis2problem2`)
-
-Proposed solution to dis2problem2_: if the the chat UI is in the same process
+Proposed solution: if the the chat UI is in the same process
 as the notification mechanism, all is good - it can prod the notifier
 directly. If it's not, then it can use a D-Bus API outside the scope of this
 spec to do the same. (Avoiding premature generalization and assuming clients
 to be competent)
 
-Alternative implementation, _`dis2impl2`:
-
-* When a ChannelHandler that was handling a channel closes, the channel
-  dispatcher forcibly closes that channel
-
-Problems:
-
-* Incoming messages might still be lost (there is a race between the channel
-  dispatcher closing the channel, and the new message coming in) so this does
-  not fully address dis2problem1_; however, having text channels respawn does
-  make this problem go away
+_`dis2b`: Incoming 1-1 text message with crashed handler
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-Possible solution for dis2problem1_, _`dis2impl3`:
+Juliet receives a message from Romeo after her chat UI has crashed.
 
-* When a ChannelHandler that was handling a channel closes, the channel
-  dispatcher re-dispatches that channel (to the same or a different handler)
+Current implementation: it arrives in the Text channel, which nothing is
+handling, and is lost
 
-Proposed implementation: FIXME
+Proposed implementation: when a ChannelHandler that was handling a channel
+falls off the bus, the channel dispatcher closes the channel. If the channel
+is of type Text, it restarts when the new message arrives.
 
 _`dis3`: Incoming 1-1 text message with window closed
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- 
1.5.6.5




More information about the Telepathy-commits mailing list