summaryrefslogtreecommitdiff
path: root/spec/Channel.xml
blob: 621702939000ed872ead094613f4d886084ac9ce (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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<?xml version="1.0" ?>
<node name="/Channel" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
  <tp:copyright>Copyright (C) 2005, 2006 Collabora Limited</tp:copyright>
  <tp:copyright>Copyright (C) 2005, 2006 Nokia Corporation</tp:copyright>
  <tp:copyright>Copyright (C) 2006 INdT</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">
    <method name="Close">
      <tp:docstring>
        Request that the channel be closed. This is not the case until
        the Closed signal has been emitted, and depending on the connection
        manager this may simply remove you from the channel on the server,
        rather than causing it to stop existing entirely. Some channels
        such as contact list channels may not be closed.
      </tp:docstring>
      <tp:possible-errors>
        <tp:error name="org.freedesktop.Telepathy.Error.Disconnected"/>
        <tp:error name="org.freedesktop.Telepathy.Error.NetworkError"/>
        <tp:error name="org.freedesktop.Telepathy.Error.NotImplemented">
          <tp:docstring>
            This channel may never be closed, e.g. a contact list
          </tp:docstring>
        </tp:error>
        <tp:error name="org.freedesktop.Telepathy.Error.NotAvailable">
          <tp:docstring>
            This channel is not currently in a state where it can be closed,
            e.g. a non-empty user-defined contact group
          </tp:docstring>
        </tp:error>
      </tp:possible-errors>
    </method>

    <signal name="Closed">
      <tp:docstring>
        Emitted when the channel has been closed. Method calls on the
        channel are no longer valid after this signal has been emitted,
        and the connection manager may then remove the object from the bus
        at any point.
      </tp:docstring>
    </signal>

    <method name="GetChannelType">
      <arg direction="out" type="s" tp:type="DBus_Interface">
        <tp:docstring>The interface name</tp:docstring>
      </arg>
      <tp:docstring>
        Returns the interface name for the type of this channel.
      </tp:docstring>
    </method>

    <method name="GetHandle">
      <arg direction="out" type="u" tp:type="Handle_Type">
        <tp:docstring>
        The handle type, or zero if this channel does not correspond to any
        particular handle
        </tp:docstring>
      </arg>
      <arg direction="out" type="u" tp:type="Handle">
        <tp:docstring>
        The handle, or zero if this channel does not correspond to any
        particular handle
        </tp:docstring>
      </arg>
      <tp:docstring>
        Returns the handle type and number if this channel represents a
        communication with a particular contact, room or server-stored list, or
        zero if it is transient and defined only by its contents.
      </tp:docstring>
    </method>

    <method name="GetInterfaces">
      <arg direction="out" type="as" tp:type="DBus_Interface[]">
        <tp:docstring>
          An array of the D-Bus interface names
        </tp:docstring>
      </arg>
      <tp:docstring>
        Get the optional interfaces implemented by the channel.
      </tp:docstring>
    </method>

    <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
    <p>All communication in the Telepathy framework is carried out via channel
    objects which are created and managed by connections. This interface must
    be implemented by all channel objects, along with one single channel type,
    such as Channel.Type.ContactList which represents a list of people (such
    as a buddy list) or a Channel.Type.Text which represents a channel over
    which textual messages are sent and received.</p>

    <p>Each channel may have an immutable handle associated with it, which
      may be any handle type, such as a contact, room or list handle,
      indicating that the channel is for communicating with that handle.
      There can be at most one channel for each combination of
      (channel type, handle type, handle) with nonzero handle type.</p>
    
    <p>If a channel does not have a handle (an "anonymous channel"), it
      means that the channel is defined by some other terms, such as it
      may be a transient group defined only by its members as visible
      through the Channel.Interface.Group interface. There can be any number
      of anonymous channels of the same channel type.</p>

    <p>Other optional interfaces can be implemented to indicate other available
    functionality, such as Channel.Interface.Group if the channel contains
    a number of contacts, Channel.Interface.Password to indicate
    that a channel may have a password set to require entry, and
    Properties for extra data about channels which represent chat
    rooms or voice calls. The interfaces implemented may not vary after the
    channel's creation has been signalled to the bus (with the connection's
    NewChannel signal).</p>

    <p>Specific connection manager implementations may implement channel types and
    interfaces which are not contained within this specification in order to
    support further functionality. To aid interoperability between client and
    connection manager implementations, the interfaces specified here should be
    used wherever applicable, and new interfaces made protocol-independent
    wherever possible. Because of the potential for 3rd party interfaces adding
    methods or signals with conflicting names, the D-Bus interface names should
    always be used to invoke methods and bind signals.</p>
    </tp:docstring>
  </interface>
</node>
<!-- vim:set sw=2 sts=2 et ft=xml: -->