summaryrefslogtreecommitdiff
path: root/spec/Channel_Future.xml
blob: 5bbca17b1c06417a2ed1bec1b34f4bce1de08d94 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?xml version="1.0" ?>
<node name="/Channel_Future"
  xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
  <tp:copyright>Copyright (C) 2008 Collabora Ltd.</tp:copyright>
  <tp:copyright>Copyright (C) 2008 Nokia Corporation</tp:copyright>
  <tp:license xmlns="http://www.w3.org/1999/xhtml">
    <p>This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.</p>

<p>This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.</p>

<p>You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</p>
  </tp:license>
  <interface name="org.freedesktop.Telepathy.Channel.FUTURE"
    tp:causes-havoc="a staging area for future Channel functionality">

    <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
      <p>This interface contains functionality which we intend to incorporate
        into the <tp:dbus-ref
        namespace="org.freedesktop.Telepathy">Channel</tp:dbus-ref> interface
        in future. It should be considered to
        be conceptually part of the core Channel interface, but without
        API or ABI guarantees.</p>

      <tp:rationale>
        <p>If we add new functionality to the Channel interface, libraries
          that use generated code (notably telepathy-glib) will have it as
          part of their ABI forever, meaning we can't make incompatible
          changes. By using this interface as a staging area for future
          Channel functionality, we can try out new properties, signals
          and methods as application-specific extensions, then merge them
          into the core Channel interface when we have enough implementation
          experience to declare them to be stable.</p>

        <p>The name is by analogy to Python's <code>__future__</code>
          pseudo-module.</p>
      </tp:rationale>
    </tp:docstring>

    <property name="Bundle" tp:name-for-bindings="Bundle"
      type="o" access="read">
      <tp:added version="0.17.9">(in Channel.FUTURE
        pseudo-interface)</tp:added>
      <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
        <p>The
          <tp:dbus-ref namespace="org.freedesktop.Telepathy">ChannelBundle.DRAFT</tp:dbus-ref>
          to which this channel belongs.</p>

        <p>A channel's Bundle property can never change.</p>

        <p>Older connection managers might not have this property. Clients
          (particularly the channel dispatcher) SHOULD recover by considering
          each channel to be in a bundle containing only that channel,
          distinct from all other bundles, which has no additional
          interfaces.</p>
      </tp:docstring>
    </property>

  </interface>
</node>
<!-- vim:set sw=2 sts=2 et ft=xml: -->