[Telepathy-commits] [telepathy-spec/master] Text: Move "SHOULD implement Destroyable" after rationale for respawning, and give it its own rationale

Simon McVittie simon.mcvittie at collabora.co.uk
Thu Oct 30 08:29:54 PDT 2008


---
 spec/Channel_Type_Text.xml |   23 ++++++++++++++++++++---
 1 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/spec/Channel_Type_Text.xml b/spec/Channel_Type_Text.xml
index 400111d..8340305 100644
--- a/spec/Channel_Type_Text.xml
+++ b/spec/Channel_Type_Text.xml
@@ -516,9 +516,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
         <tp:dbus-ref namespace="org.freedesktop.Telepathy.Connection">NewChannel</tp:dbus-ref>
         signal (with the suppress_handler parameter set to FALSE).</p>
 
-      <p>As a result, Text channels SHOULD implement <tp:dbus-ref
-          namespace="org.freedesktop.Telepathy">Channel.Interface.Destroyable</tp:dbus-ref>.</p>
-
       <p>If messages were sent on the old channel but the
         <tp:member-ref>Sent</tp:member-ref>signal has not yet been emitted
         for those messages, the new channel SHOULD emit Sent for those
@@ -553,6 +550,26 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
         <p>suppress_handler must be set to FALSE so the replacement channel
           will be handled by something.</p>
       </tp:rationale>
+
+      <p>As a result, Text channels SHOULD implement <tp:dbus-ref
+          namespace="org.freedesktop.Telepathy">Channel.Interface.Destroyable</tp:dbus-ref>.</p>
+
+      <tp:rationale>
+        <p>This "respawning" behaviour becomes problematic if there is no
+          suitable handler for Text channels, or if a particular message
+          repeatedly crashes the Text channel handler; a channel dispatcher
+          can't just Close() the channel in these situations, because
+          it will come back.</p>
+
+        <p>In these situations, the channel dispatcher needs a last-resort
+          way to destroy the channel and stop it respawning. It could either
+          acknowledge the messages itself, or use the Destroyable interface;
+          the Destroyable interface has the advantage that it's not
+          channel-type-dependent, so the channel dispatcher only has to
+          understand one extra interface, however many channel types
+          eventually need a distinction between Close and Destroy.</p>
+      </tp:rationale>
+
     </tp:docstring>
   </interface>
 </node>
-- 
1.5.6.5



More information about the Telepathy-commits mailing list