diff options
Diffstat (limited to 'spec/spec/Connection.xml')
-rw-r--r-- | spec/spec/Connection.xml | 1311 |
1 files changed, 1311 insertions, 0 deletions
diff --git a/spec/spec/Connection.xml b/spec/spec/Connection.xml new file mode 100644 index 000000000..6a560fc30 --- /dev/null +++ b/spec/spec/Connection.xml @@ -0,0 +1,1311 @@ +<?xml version="1.0" ?> +<node name="/Connection" + xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0" + > + <tp:copyright>Copyright (C) 2005-2009 Collabora Limited</tp:copyright> + <tp:copyright>Copyright (C) 2005-2009 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.Connection"> + <tp:requires interface="org.freedesktop.Telepathy.Connection.Interface.Requests"/> + <tp:requires interface="org.freedesktop.Telepathy.Connection.Interface.Contacts"/> + + <tp:struct name="Channel_Info" array-name="Channel_Info_List"> + <tp:deprecated version="0.17.23"/> + <tp:docstring>A struct representing a channel, as returned by + ListChannels on the Connection interface.</tp:docstring> + <tp:member type="o" name="Channel"> + <tp:docstring>The object path of the channel, which is on the + same bus name as the connection</tp:docstring> + </tp:member> + <tp:member type="s" tp:type="DBus_Interface" name="Channel_Type"> + <tp:docstring>The channel's type</tp:docstring> + </tp:member> + <tp:member type="u" tp:type="Handle_Type" name="Handle_Type"> + <tp:docstring>The type of the handle that the channel communicates + with, or Handle_Type_None if there is no associated + handle</tp:docstring> + </tp:member> + <tp:member type="u" tp:type="Handle" name="Handle"> + <tp:docstring>The handle that the channel communicates with, + or 0 if there is no associated handle</tp:docstring> + </tp:member> + </tp:struct> + + <method name="Connect" tp:name-for-bindings="Connect"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>Request that the connection be established. This will be done + asynchronously and errors will be returned by emitting + <tp:member-ref>StatusChanged</tp:member-ref> signals.</p> + + <p>Calling this method on a Connection that is already connecting + or connected is allowed, and has no effect.</p> + </tp:docstring> + </method> + + <method name="Disconnect" tp:name-for-bindings="Disconnect"> + <tp:docstring> + Request that the connection be closed. This closes the connection if + it's not already in DISCONNECTED state, and destroys the connection + object. + </tp:docstring> + </method> + + <property name="Interfaces" tp:name-for-bindings="Interfaces" + access="read" type="as" tp:type="DBus_Interface[]"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>The set of optional interfaces supported by this connection. + Before the connection status changes to CONNECTED, + this property may change at any time, but it is guaranteed that + interfaces will only be added, not removed. After the connection + status changes to CONNECTED, this property cannot + change further.</p> + + <p>There is no explicit change notification; reasonable behaviour + for a client would be to retrieve the interfaces list once + initially, and once more when it becomes CONNECTED.</p> + + <tp:rationale> + <p>In some connection managers, certain capabilities of a connection + are known to be implemented for all connections (e.g. support + for SimplePresence), and some interfaces (like SimplePresence) can + even be used before connecting. Other capabilities may + or may not exist, depending on server functionality; by the time + the connection goes CONNECTED, the connection manager is expected + to have evaluated the server's functionality and enabled any extra + interfaces for the remainder of the Connection's lifetime.</p> + </tp:rationale> + </tp:docstring> + <tp:added version="0.19.2">Clients SHOULD fall back + to calling <tp:member-ref>GetInterfaces</tp:member-ref> if this + property is not supported.</tp:added> + </property> + + <method name="GetInterfaces" tp:name-for-bindings="Get_Interfaces"> + <arg direction="out" type="as" tp:type="DBus_Interface[]" + name="Interfaces"> + <tp:docstring> + The value of the <tp:member-ref>Interfaces</tp:member-ref> property + </tp:docstring> + </arg> + + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>Returns the set of optional interfaces supported by this + connection. See <tp:member-ref>Interfaces</tp:member-ref> for more + details.</p> + </tp:docstring> + + <tp:possible-errors> + <tp:error name="org.freedesktop.Telepathy.Error.Disconnected"> + <tp:docstring> + Before version 0.17.8 calling GetInterfaces while + on a connection that is not yet CONNECTED wasn't allowed. If a + CM returns this error, its list of interfaces should be regarded + as empty until it becomes CONNECTED. + </tp:docstring> + </tp:error> + </tp:possible-errors> + </method> + + <method name="GetProtocol" tp:name-for-bindings="Get_Protocol"> + <arg direction="out" type="s" tp:type="Protocol" name="Protocol"> + <tp:docstring> + A string identifier for the protocol + </tp:docstring> + </arg> + + <tp:docstring> + Get the protocol this connection is using. + </tp:docstring> + </method> + + <signal name="SelfHandleChanged" + tp:name-for-bindings="Self_Handle_Changed"> + <tp:docstring> + Emitted whenever the <tp:member-ref>SelfHandle</tp:member-ref> property + changes. If the connection + is not yet in the CONNECTED state, this signal is not guaranteed + to be emitted. + </tp:docstring> + <tp:added version="0.17.10">Clients MAY assume that if the + SelfHandle property exists, this signal will be emitted when + necessary.</tp:added> + + <arg type="u" tp:type="Contact_Handle" name="Self_Handle"> + <tp:docstring> + The new value of the SelfHandle property. + </tp:docstring> + </arg> + </signal> + + <property name="SelfHandle" tp:name-for-bindings="Self_Handle" + type="u" tp:type="Contact_Handle" access="read"> + <tp:docstring> + The handle which represents the user on this connection, which will + remain valid for the lifetime of this connection, or until a change + in the user's identifier is signalled by the + <tp:member-ref>SelfHandleChanged</tp:member-ref> signal. + If the connection is not yet in the CONNECTED state, the value of + this property MAY be zero. + </tp:docstring> + <tp:added version="0.17.10">For compatibility with older + versions, clients should fall back to calling the + <tp:member-ref>GetSelfHandle</tp:member-ref> + method.</tp:added> + </property> + + <method name="GetSelfHandle" tp:name-for-bindings="Get_Self_Handle"> + <arg direction="out" type="u" tp:type="Contact_Handle" + name="Self_Handle"> + <tp:docstring> + The value of the <tp:member-ref>SelfHandle</tp:member-ref> property + </tp:docstring> + </arg> + + <tp:docstring> + Returns the value of the SelfHandle property. Change notification + is via the SelfHandleChanged signal. + </tp:docstring> + <tp:deprecated version="0.17.10">Use GetAll to get the + SelfHandle property (and all other Connection properties) + instead.</tp:deprecated> + + <tp:possible-errors> + <tp:error name="org.freedesktop.Telepathy.Error.Disconnected"/> + </tp:possible-errors> + </method> + + <property name="Status" tp:name-for-bindings="Status" + access="read" type="u" tp:type="Connection_Status"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>The current status of the connection. Change notification is via + the <tp:member-ref>StatusChanged</tp:member-ref> signal.</p> + + <p>If retrieval of property succeeds and yields the value Disconnected, + this indicates that the connection has not yet been established. + If connection has been attempted and failed, the Connection object + SHOULD be removed from the bus entirely, meaning that retrieval of + this property SHOULD fail.</p> + </tp:docstring> + <tp:added version="0.19.2">Clients SHOULD fall back + to calling <tp:member-ref>GetStatus</tp:member-ref> if this + property is not supported.</tp:added> + </property> + + <method name="GetStatus" tp:name-for-bindings="Get_Status"> + <arg direction="out" type="u" tp:type="Connection_Status" + name="Status"> + <tp:docstring> + The value of the <tp:member-ref>Status</tp:member-ref> property + </tp:docstring> + </arg> + + <tp:docstring> + Get the current status as defined in the + <tp:member-ref>StatusChanged</tp:member-ref> signal. + </tp:docstring> + </method> + + <method name="HoldHandles" tp:name-for-bindings="Hold_Handles"> + <tp:changed version="0.21.6">If + <tp:member-ref>HasImmortalHandles</tp:member-ref> is true, + this method no longer does anything.</tp:changed> + <arg direction="in" name="Handle_Type" type="u" tp:type="Handle_Type"> + <tp:docstring> + The type of handle to be held + </tp:docstring> + </arg> + + <arg direction="in" name="Handles" type="au" tp:type="Handle[]"> + <tp:docstring> + A array of integer handles to hold + </tp:docstring> + </arg> + + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>If <tp:member-ref>HasImmortalHandles</tp:member-ref> is true, + which SHOULD always be the case in this version of telepathy-spec, + this method does nothing and returns successfully, unless + the given handle type or any of the given handles is invalid.</p> + + <p>In older connection managers, this method + notifies the connection manger that your client is holding a copy + of handles which may not be in use in any existing channel or + list, and were not obtained by using the + <tp:member-ref>RequestHandles</tp:member-ref> method. For + example, a handle observed in an emitted signal, or displayed + somewhere in the UI that is not associated with a channel. The + connection manager must not deallocate a handle where any clients + have used this method to indicate it is in use until the + <tp:member-ref>ReleaseHandles</tp:member-ref> + method is called, or the clients disappear from the bus.</p> + + <p>Note that HoldHandles is idempotent - calling it multiple times + is equivalent to calling it once. If a handle is "referenced" by + several components which share a D-Bus unique name, the client + should perform reference counting internally, and only call + ReleaseHandles when none of the cooperating components need the + handle any longer.</p> + </tp:docstring> + + <tp:possible-errors> + <tp:error name="org.freedesktop.Telepathy.Error.Disconnected"/> + <tp:error name="org.freedesktop.Telepathy.Error.InvalidArgument"> + <tp:docstring> + The handle type is invalid + </tp:docstring> + </tp:error> + <tp:error name="org.freedesktop.Telepathy.Error.InvalidHandle"> + <tp:docstring> + One of the given handles is not valid + </tp:docstring> + </tp:error> + </tp:possible-errors> + </method> + + <method name="InspectHandles" tp:name-for-bindings="Inspect_Handles"> + <arg direction="in" name="Handle_Type" type="u" tp:type="Handle_Type"> + <tp:docstring> + The type of handle to be inspected + </tp:docstring> + </arg> + + <arg direction="in" name="Handles" type="au" tp:type="Handle[]"> + <tp:docstring> + An array of integer handles of this type + </tp:docstring> + </arg> + + <arg direction="out" type="as" name="Identifiers"> + <tp:docstring> + An array of identifiers corresponding to the given handles, in the same order. + </tp:docstring> + </arg> + + <tp:docstring> + Return a string representation for a number of handles of a given + type. + </tp:docstring> + + <tp:possible-errors> + <tp:error name="org.freedesktop.Telepathy.Error.Disconnected"/> + <tp:error name="org.freedesktop.Telepathy.Error.InvalidArgument"> + <tp:docstring> + The handle type is invalid + </tp:docstring> + </tp:error> + <tp:error name="org.freedesktop.Telepathy.Error.InvalidHandle"> + <tp:docstring> + One of the given handles is not valid + </tp:docstring> + </tp:error> + </tp:possible-errors> + </method> + + <method name="ListChannels" tp:name-for-bindings="List_Channels"> + <tp:deprecated version="0.17.23">Use the + <tp:dbus-ref + namespace="org.freedesktop.Telepathy.Connection.Interface">Requests.Channels</tp:dbus-ref> + property instead. + </tp:deprecated> + + <arg direction="out" type="a(osuu)" tp:type="Channel_Info[]" + name="Channel_Info"> + <tp:docstring> + An array of structs representing channels. + </tp:docstring> + </arg> + + <tp:docstring> + List all the channels which currently exist on this connection. + </tp:docstring> + + <tp:possible-errors> + <tp:error name="org.freedesktop.Telepathy.Error.Disconnected"/> + </tp:possible-errors> + </method> + + <signal name="NewChannel" tp:name-for-bindings="New_Channel"> + <tp:deprecated version="0.17.23">Connection managers MUST still + emit this signal, but clients SHOULD listen for the <tp:dbus-ref + namespace="org.freedesktop.Telepathy.Connection.Interface">Requests.NewChannels</tp:dbus-ref> + signal instead. + </tp:deprecated> + + <arg name="Object_Path" type="o"> + <tp:docstring> + A D-Bus object path for the channel object on this service + </tp:docstring> + </arg> + + <arg name="Channel_Type" type="s" tp:type="DBus_Interface"> + <tp:docstring> + A D-Bus interface name representing the channel type + </tp:docstring> + </arg> + + <arg name="Handle_Type" type="u" tp:type="Handle_Type"> + <tp:docstring> + An integer representing the type of handle this channel + communicates with, or Handle_Type_None if no handle is specified + </tp:docstring> + </arg> + + <arg name="Handle" type="u" tp:type="Handle"> + <tp:docstring> + A handle indicating the specific contact, room or list this + channel communicates with, or zero if no handle is specified + </tp:docstring> + </arg> + + <arg name="Suppress_Handler" type="b"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>If true, the channel was requested by a client that intends to + present it to the user itself (i.e. it passed suppress_handler=TRUE + to the <tp:member-ref>RequestChannel</tp:member-ref> method), so no + other handler should be + launched. Clients MAY assume that channels where this is true + were created by a user request.</p> + + <p>If false, either the channel was created due to incoming + information from the service, or the channel was requested by + a local client that does not intend to handle the channel itself + (this usage is deprecated).</p> + + <p>Clients MUST NOT assume that only incoming channels will have + this flag set to false.</p> + </tp:docstring> + </arg> + + <tp:docstring> + Emitted when a new Channel object is created, either through user + request or incoming information from the service. + </tp:docstring> + </signal> + + <method name="ReleaseHandles" tp:name-for-bindings="Release_Handles"> + <tp:changed version="0.21.6">If + <tp:member-ref>HasImmortalHandles</tp:member-ref> is true, + this method no longer does anything.</tp:changed> + <arg direction="in" name="Handle_Type" type="u" tp:type="Handle_Type"> + <tp:docstring> + An integer handle type (as defined in RequestHandle) + </tp:docstring> + </arg> + + <arg direction="in" name="Handles" type="au" tp:type="Handle[]"> + <tp:docstring> + An array of integer handles being held by the client + </tp:docstring> + </arg> + + <tp:docstring> + <p>If <tp:member-ref>HasImmortalHandles</tp:member-ref> is true, + which SHOULD always be the case in this version of telepathy-spec, + this method does nothing and returns successfully, unless + the given handle type or any of the given handles is invalid.</p> + + <p>In older connection managers, this method + explicitly notifies the connection manager that your client is no + longer holding any references to the given handles, and that they + may be deallocated if they are not held by any other clients or + referenced by any existing channels. See + <tp:member-ref>HoldHandles</tp:member-ref> for notes.</p> + </tp:docstring> + + <tp:possible-errors> + <tp:error name="org.freedesktop.Telepathy.Error.Disconnected"/> + <tp:error name="org.freedesktop.Telepathy.Error.InvalidArgument"> + <tp:docstring> + The handle type is invalid + </tp:docstring> + </tp:error> + <tp:error name="org.freedesktop.Telepathy.Error.InvalidHandle"> + <tp:docstring> + One of the given handles is not valid + </tp:docstring> + </tp:error> + </tp:possible-errors> + </method> + + <method name="RequestChannel" tp:name-for-bindings="Request_Channel"> + <tp:deprecated version="0.17.23">Use + <tp:dbus-ref + namespace="org.freedesktop.Telepathy.Connection.Interface">Requests.CreateChannel</tp:dbus-ref> + or <tp:dbus-ref + namespace="org.freedesktop.Telepathy.Connection.Interface">Requests.EnsureChannel</tp:dbus-ref> + instead. Connection managers MAY implement RequestChannel by + raising NotImplemented, or implement fewer types of channel via + this API.</tp:deprecated> + + <arg direction="in" name="Type" type="s" tp:type="DBus_Interface"> + <tp:docstring> + A D-Bus interface name representing base channel type + </tp:docstring> + </arg> + + <arg direction="in" name="Handle_Type" type="u" tp:type="Handle_Type"> + <tp:docstring> + An integer representing the handle type, or Handle_Type_None if + no handle is specified + </tp:docstring> + </arg> + + <arg direction="in" name="Handle" type="u" tp:type="Handle"> + <tp:docstring> + A nonzero integer handle representing a contact, room, list etc. + according to handle_type, or zero if the handle_type is + Handle_Type_None + </tp:docstring> + </arg> + + <arg direction="in" name="Suppress_Handler" type="b"> + <tp:docstring> + <p>Clients SHOULD always set this to true.</p> + + <tp:rationale> + <p>The historical meaning was that clients that did not + intend to take responsibility for displaying the channel to + the user could set this to FALSE, in which case the channel + dispatcher would launch an appropriate channel handler.</p> + + <p>However, clients whose functionality relies on having a + working channel dispatcher should obtain that functionality by + calling methods on the channel dispatcher, so that they will + get an appropriate error if the channel dispatcher is missing + or not working.</p> + + <p>The channel dispatcher itself should set this to true too, + so that it will ignore the + <tp:member-ref>NewChannel</tp:member-ref> signal that results + from the creation of the channel. It can then dispatch the + channel returned from this method to an + appropriate handler.</p> + + <p>So, there is no sensible use-case for setting this to false, + and setting it to false can result in unhandled channels (in + the case where clients assume that a channel dispatcher is + present, but it isn't).</p> + </tp:rationale> + </tp:docstring> + </arg> + + <arg direction="out" type="o" name="Object_Path"> + <tp:docstring> + The D-Bus object path for the channel created or retrieved + </tp:docstring> + </arg> + + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>Request a channel satisfying the specified type and communicating + with the contact, room, list etc. indicated by the given + handle_type and handle. The handle_type and handle may both be + zero to request the creation of a new, empty channel, which may + or may not be possible, depending on the protocol and channel + type.</p> + + <p>On success, the returned channel will always be of the requested + type (i.e. implement the requested channel-type interface).</p> + + <p>If a new, empty channel is requested, on success the returned + channel will always be an "anonymous" channel for which the type + and handle are both zero.</p> + + <p>If a channel to a contact, room etc. is requested, on success, the + returned channel may either be a new or existing channel to + the requested entity (i.e. its + <tp:dbus-ref + namespace="org.freedesktop.Telepathy.Channel">TargetHandleType</tp:dbus-ref> + and <tp:dbus-ref + namespace="org.freedesktop.Telepathy.Channel">TargetHandle</tp:dbus-ref> + properties are the + requested handle type and handle), or a newly created "anonymous" + channel associated with the requested handle in some + implementation-specific way.</p> + + <p>For example, for a contact handle, the returned channel + might be "anonymous", but implement the groups interface and have + the requested contact already present among the members.</p> + + <p>If the request cannot be satisfied, an error is raised and no + channel is created.</p> + </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> + Unknown channel type + </tp:docstring> + </tp:error> + <tp:error name="org.freedesktop.Telepathy.Error.InvalidHandle"> + <tp:docstring> + The given handle does not exist or cannot be created + </tp:docstring> + </tp:error> + <tp:error name="org.freedesktop.Telepathy.Error.NotAvailable"> + <tp:docstring> + The requested channel type cannot be created with the given handle + </tp:docstring> + </tp:error> + <tp:error name="org.freedesktop.Telepathy.Error.NotCapable"> + <tp:docstring> + The requested channel cannot be created because contact doesn't + have the required capabilities. + </tp:docstring> + </tp:error> + <tp:error name="org.freedesktop.Telepathy.Error.Channel.Banned"/> + <tp:error name="org.freedesktop.Telepathy.Error.Channel.Full"/> + <tp:error name="org.freedesktop.Telepathy.Error.Channel.InviteOnly"/> + </tp:possible-errors> + </method> + + <tp:enum name="Handle_Type" type="u"> + <tp:enumvalue suffix="None" value="0"> + <tp:docstring> + A "null" handle type used to indicate the absence of a handle. + When a handle type and a handle appear as a pair, if the handle + type is zero, the handle must also be zero. + </tp:docstring> + </tp:enumvalue> + <tp:enumvalue suffix="Contact" value="1"> + <tp:docstring> + A contact + </tp:docstring> + </tp:enumvalue> + <tp:enumvalue suffix="Room" value="2"> + <tp:docstring> + A chat room + </tp:docstring> + </tp:enumvalue> + <tp:enumvalue suffix="List" value="3"> + <tp:deprecated version="0.25.0">Replaced by <tp:dbus-ref + namespace="org.freedesktop.Telepathy">Connection.Interface.ContactList</tp:dbus-ref> + </tp:deprecated> + <tp:docstring> + A server-generated contact list (see Channel.Interface.Group) + </tp:docstring> + </tp:enumvalue> + <tp:enumvalue suffix="Group" value="4"> + <tp:deprecated version="0.25.0">Replaced by <tp:dbus-ref + namespace="org.freedesktop.Telepathy">Connection.Interface.ContactList</tp:dbus-ref> + </tp:deprecated> + <tp:docstring> + A user-defined contact list (see Channel.Interface.Group) + </tp:docstring> + </tp:enumvalue> + </tp:enum> + + <tp:simple-type name="Handle" type="u" array-name="Handle_List"> + <tp:docstring>An unsigned 32-bit integer representing a + handle</tp:docstring> + </tp:simple-type> + + <tp:simple-type name="Contact_Handle" type="u" + array-name="Contact_Handle_List"> + <tp:docstring>An unsigned 32-bit integer representing a handle of type + Handle_Type_Contact</tp:docstring> + </tp:simple-type> + + <tp:simple-type name="Room_Handle" type="u" + array-name="Room_Handle_List"> + <tp:docstring>An unsigned 32-bit integer representing a handle of type + Handle_Type_Room</tp:docstring> + </tp:simple-type> + + <tp:simple-type name="List_Handle" type="u" + array-name="List_Handle_List"> + <tp:deprecated version="0.25.0">Replaced by <tp:dbus-ref + namespace="org.freedesktop.Telepathy">Connection.Interface.ContactList</tp:dbus-ref> + </tp:deprecated> + <tp:docstring>An unsigned 32-bit integer representing a handle of type + Handle_Type_List</tp:docstring> + </tp:simple-type> + + <tp:simple-type name="Group_Handle" type="u" + array-name="Group_Handle_List"> + <tp:deprecated version="0.25.0">Replaced by <tp:dbus-ref + namespace="org.freedesktop.Telepathy">Connection.Interface.ContactList</tp:dbus-ref> + </tp:deprecated> + <tp:docstring>An unsigned 32-bit integer representing a handle of type + Handle_Type_Group</tp:docstring> + </tp:simple-type> + + <method name="RequestHandles" tp:name-for-bindings="Request_Handles"> + <tp:changed version="0.21.6">If + <tp:member-ref>HasImmortalHandles</tp:member-ref> is true, + this method no longer has its reference-counting effect.</tp:changed> + <arg direction="in" name="Handle_Type" type="u" tp:type="Handle_Type"> + <tp:docstring> + The type of handle required + </tp:docstring> + </arg> + + <arg direction="in" name="Identifiers" type="as"> + <tp:docstring> + An array of identifiers of entities to request handles for + </tp:docstring> + </arg> + + <arg direction="out" type="au" tp:type="Handle[]" + name="Handles"> + <tp:docstring> + An array of integer handle numbers in the same order as the given identifiers. + </tp:docstring> + </arg> + + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>Request several handles from the connection manager which represent a + number of contacts, rooms or server-stored lists on the service.</p> + + <p>If <tp:member-ref>HasImmortalHandles</tp:member-ref> is true, + which SHOULD always be the case in this version of telepathy-spec, + the handles remain valid until the connection disconnects.</p> + + <p>The implementation of this method in older connection managers + must record that these handles are in use by the + client who invokes this method, and must not deallocate the handles + until the client disconnects from the bus or calls the + <tp:member-ref>ReleaseHandles</tp:member-ref> + method. Where the identifier refers to an entity that already has a + handle in this connection manager, this handle should be returned + instead. The handle number 0 must not be returned by the connection + manager.</p> + </tp:docstring> + + <tp:possible-errors> + <tp:error name="org.freedesktop.Telepathy.Error.Disconnected"/> + <tp:error name="org.freedesktop.Telepathy.Error.InvalidHandle"> + <tp:docstring> + The given identifier does not identify a valid entity of the given + type. + + <tp:rationale> + For instance, an XMPP connection would raise this error for + identifiers with type Handle_Type_Room that do not contain + exactly one '@' character, that contain spaces, and so on. + </tp:rationale> + </tp:docstring> + </tp:error> + <tp:error name="org.freedesktop.Telepathy.Error.NotImplemented"> + <tp:docstring> + The given handle type is not valid, or is not implemented on this + connection. + + <tp:rationale> + For instance, a connection to a protocol that doesn't have + chat rooms would raise this error for room handles, and all CMs + would raise this error for Handle_Type_None. + </tp:rationale> + </tp:docstring> + </tp:error> + </tp:possible-errors> + </method> + + <tp:enum name="Connection_Status" plural="Connection_Statuses" type="u"> + <tp:enumvalue suffix="Connected" value="0"> + <tp:docstring> + The connection is fully connected and all methods are available. + </tp:docstring> + </tp:enumvalue> + <tp:enumvalue suffix="Connecting" value="1"> + <tp:docstring> + <tp:member-ref>Connect</tp:member-ref> has been called but the + connection has not yet been established. Some methods may fail + until the connection has been established. + </tp:docstring> + </tp:enumvalue> + <tp:enumvalue suffix="Disconnected" value="2"> + <tp:docstring> + If this is retrieved from <tp:member-ref>GetStatus</tp:member-ref> or + <tp:member-ref>Status</tp:member-ref>, it indicates that connection + has not yet been attempted. If seen in a + <tp:member-ref>StatusChanged</tp:member-ref> signal, it indicates + that the connection has failed; the Connection object SHOULD be + removed from D-Bus immediately, and all subsequent method calls + SHOULD fail. + </tp:docstring> + </tp:enumvalue> + </tp:enum> + + <tp:enum name="Connection_Status_Reason" type="u"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>A reason why the status of the connection changed. Apart from + Requested, the values of this enumeration only make sense as + reasons why the status changed to Disconnected.</p> + </tp:docstring> + + <tp:enumvalue suffix="None_Specified" value="0"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>There is no reason set for this state change. Unknown status + reasons SHOULD be treated like this reason.</p> + + <p>When disconnected for this reason, the equivalent D-Bus error is + <code>org.freedesktop.Telepathy.Error.<tp:error-ref>Disconnected</tp:error-ref></code>.</p> + </tp:docstring> + </tp:enumvalue> + + <tp:enumvalue suffix="Requested" value="1"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>The change is in response to a user request. Changes to the + Connecting or Connected status SHOULD always indicate this reason; + changes to the Disconnected status SHOULD indicate this reason + if and only if the disconnection was requested by the user.</p> + + <p>When disconnected for this reason, the equivalent D-Bus error is + <code>org.freedesktop.Telepathy.Error.Cancelled</code>.</p> + </tp:docstring> + </tp:enumvalue> + + <tp:enumvalue suffix="Network_Error" value="2"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>There was an error sending or receiving on the network socket.</p> + + <p>When the status changes from Connecting to Disconnected for this + reason, the equivalent D-Bus error is either + <code>org.freedesktop.Telepathy.Error.NetworkError</code>, + <code>org.freedesktop.Telepathy.Error.ConnectionRefused</code>, + <code>org.freedesktop.Telepathy.Error.ConnectionFailed</code> + or some more specific error.</p> + + <p>When the status changes from Connected to Disconnected for this + reason, the equivalent D-Bus error is either + <code>org.freedesktop.Telepathy.Error.NetworkError</code>, + <code>org.freedesktop.Telepathy.Error.ConnectionLost</code> + or some more specific error.</p> + </tp:docstring> + </tp:enumvalue> + + <tp:enumvalue suffix="Authentication_Failed" value="3"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>The username or password was invalid.</p> + + <p>When disconnected for this reason, the equivalent D-Bus error is + <code>org.freedesktop.Telepathy.Error.AuthenticationFailed</code>. + </p> + </tp:docstring> + </tp:enumvalue> + + <tp:enumvalue suffix="Encryption_Error" value="4"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>There was an error negotiating SSL on this connection, or + encryption was unavailable and require-encryption was set when the + connection was created.</p> + + <p>When disconnected for this reason, the equivalent D-Bus error is + <code>org.freedesktop.Telepathy.Error.EncryptionNotAvailable</code> + if encryption was not available at all, or + <code>org.freedesktop.Telepathy.Error.EncryptionError</code> + if encryption failed.</p> + </tp:docstring> + </tp:enumvalue> + + <tp:enumvalue suffix="Name_In_Use" value="5"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>In general, this reason indicates that the requested account + name or other identification could not be used due to conflict + with another connection. It can be divided into three cases:</p> + + <ul> + <li>If the status change is from Connecting to Disconnected + and the 'register' parameter to RequestConnection was present + and true, the requested account could not be created on the + server because it already exists. + The equivalent D-Bus error is + <code>org.freedesktop.Telepathy.Error.RegistrationExists</code>. + </li> + + <li>If the status change is from Connecting to Disconnected + but the 'register' parameter is absent or false, the connection + manager could not connect to the specified account because + a connection to that account already exists. + The equivalent D-Bus error is + <code>org.freedesktop.Telepathy.Error.AlreadyConnected</code>. + + <tp:rationale> + In some protocols, like XMPP (when connecting with the same + JID and resource as an existing connection), the existing + connection "wins" and the new one fails to connect. + </tp:rationale> + </li> + + <li>If the status change is from Connected to Disconnected, + the existing connection was automatically disconnected because + a new connection to the same account (perhaps from a different + client or location) was established. + The equivalent D-Bus error is + <code>org.freedesktop.Telepathy.Error.ConnectionReplaced</code>. + + <tp:rationale> + In some protocols, like MSNP (when connecting twice with the + same Passport), the new connection "wins" and the + existing one is automatically disconnected. + </tp:rationale> + </li> + </ul> + </tp:docstring> + </tp:enumvalue> + + <tp:enumvalue suffix="Cert_Not_Provided" value="6"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>The server did not provide a SSL certificate.</p> + + <p>When disconnected for this reason, the equivalent D-Bus error is + <code>org.freedesktop.Telepathy.Error.Cert.NotProvided</code>. + </p> + </tp:docstring> + </tp:enumvalue> + + <tp:enumvalue suffix="Cert_Untrusted" value="7"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>The server's SSL certificate is signed by an untrusted certifying + authority. This error SHOULD NOT be used to represent a self-signed + certificate: use the more specific Cert_Self_Signed reason for + that.</p> + + <p>When disconnected for this reason, the equivalent D-Bus error is + <code>org.freedesktop.Telepathy.Error.Cert.Untrusted</code>. + </p> + </tp:docstring> + </tp:enumvalue> + + <tp:enumvalue suffix="Cert_Expired" value="8"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>The server's SSL certificate has expired.</p> + + <p>When disconnected for this reason, the equivalent D-Bus error is + <code>org.freedesktop.Telepathy.Error.Cert.Expired</code>. + </p> + </tp:docstring> + </tp:enumvalue> + + <tp:enumvalue suffix="Cert_Not_Activated" value="9"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>The server's SSL certificate is not yet valid.</p> + + <p>When disconnected for this reason, the equivalent D-Bus error is + <code>org.freedesktop.Telepathy.Error.Cert.NotActivated</code>. + </p> + </tp:docstring> + </tp:enumvalue> + + <tp:enumvalue suffix="Cert_Hostname_Mismatch" value="10"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>The server's SSL certificate did not match its hostname.</p> + + <p>When disconnected for this reason, the equivalent D-Bus error is + <code>org.freedesktop.Telepathy.Error.Cert.HostnameMismatch</code>. + </p> + </tp:docstring> + </tp:enumvalue> + + <tp:enumvalue suffix="Cert_Fingerprint_Mismatch" value="11"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>The server's SSL certificate does not have the expected + fingerprint.</p> + + <p>When disconnected for this reason, the equivalent D-Bus error is + <code>org.freedesktop.Telepathy.Error.Cert.FingerprintMismatch</code>. + </p> + </tp:docstring> + </tp:enumvalue> + + <tp:enumvalue suffix="Cert_Self_Signed" value="12"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>The server's SSL certificate is self-signed.</p> + + <p>When disconnected for this reason, the equivalent D-Bus error is + <code>org.freedesktop.Telepathy.Error.Cert.SelfSigned</code>. + </p> + </tp:docstring> + </tp:enumvalue> + + <tp:enumvalue suffix="Cert_Other_Error" value="13"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>There was some other error validating the server's SSL + certificate.</p> + + <p>When disconnected for this reason, the equivalent D-Bus error is + <code>org.freedesktop.Telepathy.Error.Cert.Invalid</code>. + </p> + </tp:docstring> + </tp:enumvalue> + + <tp:enumvalue suffix="Cert_Revoked" value="14"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>The server's SSL certificate has been revoked.</p> + + <p>When disconnected for this reason, the equivalent D-Bus error is + <code>org.freedesktop.Telepathy.Error.Cert.Revoked</code>. + </p> + </tp:docstring> + </tp:enumvalue> + + <tp:enumvalue suffix="Cert_Insecure" value="15"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>The server's SSL certificate uses an insecure algorithm, + or is cryptographically weak.</p> + + <p>When disconnected for this reason, the equivalent D-Bus error is + <code>org.freedesktop.Telepathy.Error.Cert.Insecure</code>. + </p> + </tp:docstring> + </tp:enumvalue> + + <tp:enumvalue suffix="Cert_Limit_Exceeded" value="16"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>The length in bytes of the server certificate, or the depth of the + sever certificate chain exceed the limits imposed by the crypto + library.</p> + + <p>When disconnected for this reason, the equivalent D-Bus error is + <code>org.freedesktop.Telepathy.Error.Cert.LimitExceeded</code> + </p> + </tp:docstring> + </tp:enumvalue> + </tp:enum> + + <signal name="ConnectionError" tp:name-for-bindings="Connection_Error"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>Emitted when an error occurs that renders this connection unusable. + </p> + + <p>Whenever this signal is emitted, it MUST immediately be followed by + a <tp:member-ref>StatusChanged</tp:member-ref> signal with status + Connection_Status_Disconnected and an appropriate reason + code.</p> + + <p>Connection managers SHOULD emit this signal on disconnection, but + need not do so. Clients MUST support connection managers that emit + StatusChanged(Disconnected, ...) without first emitting + ConnectionError.</p> + + <tp:rationale> + <p>This signal provides additional information about the reason + for disconnection. The reason for connection is always + straightforward - it was requested - so it does not need further + explanation. However, on errors, it can be useful to provide + additional information.</p> + + <p>The <tp:type>Connection_Status_Reason</tp:type> is not given + here, since it will be signalled in + <tp:member-ref>StatusChanged</tp:member-ref>. A reasonable client + implementation would be to store the information given by this + signal until StatusChanged is received, at which point the + information given by this signal can be used to supplement the + StatusChanged signal.</p> + </tp:rationale> + </tp:docstring> + + <arg name="Error" type="s" tp:type="DBus_Error_Name"> + <tp:docstring> + The name of a D-Bus error describing the error that occurred, + which may correspond to a + <tp:type>Connection_Status_Reason</tp:type>, or may be a more + specific Telepathy error + (such as + <code>org.freedesktop.Telepathy.Error.ConnectionRefused</code> + for Connection_Status_Reason_Network_Error) + or a protocol-specific or connection-manager-specific error in a + suitable namespace. + + <tp:rationale> + For instance, a SIP connection manager could signal + "402 Payment Required" as an error in a + connection-manager-specific namespace, or a link-local + XMPP implementation that used Avahi could provide the error + given to it by the avahi-daemon. + </tp:rationale> + </tp:docstring> + </arg> + + <arg name="Details" type="a{sv}" tp:type="String_Variant_Map"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>Additional information about the error, which may include + the following well-known keys:</p> + + <dl> + <dt>debug-message (s)</dt> + <dd>Debugging information on the change, corresponding to the + message part of a D-Bus error message, which SHOULD NOT be + displayed to users under normal circumstances</dd> + + <dt>server-message (s)</dt> + <dd>A human-readable message from the server explaining what + happened. This may be in the user's native language, or in the + server operator's native language, or even in Lojban.</dd> + + <dt>user-requested (b), expected-hostname (s), certificate-hostname (s)</dt> + <dd>The same details defined in <tp:type>TLS_Certificate_Rejection</tp:type>.</dd> + </dl> + + </tp:docstring> + </arg> + + </signal> + + <signal name="StatusChanged" tp:name-for-bindings="Status_Changed"> + <arg name="Status" type="u" tp:type="Connection_Status"> + <tp:docstring> + An integer indicating the new status, as defined by ConnectionStatus + </tp:docstring> + </arg> + + <arg name="Reason" type="u" tp:type="Connection_Status_Reason"> + <tp:docstring> + An integer indicating the reason for the status change, as defined + by ConnectionStatusReason + </tp:docstring> + </arg> + + <tp:docstring> + Emitted when the status of the connection changes. All states and + reasons have numerical values, as defined in ConnectionStatus + and ConnectionStatusReason. + </tp:docstring> + </signal> + + <tp:contact-attribute name="contact-id" type="s"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>The same string that would be returned by + <tp:member-ref>InspectHandles</tp:member-ref>. As a special case, + this is always present in the result of <tp:dbus-ref + namespace="org.freedesktop.Telepathy.Connection.Interface.Contacts">GetContactAttributes</tp:dbus-ref>, + whether it was explicitly requested or not.</p> + </tp:docstring> + </tp:contact-attribute> + + <method name="AddClientInterest" tp:name-for-bindings="Add_Client_Interest"> + <tp:added version="0.21.3"/> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>Register a client's interest in notifications related to one or + more interfaces.</p> + + <p>Groups of notifications are identified by a token which is either + a D-Bus interface name, or a string that starts with a D-Bus + interface name. The meaning of each token is given by that D-Bus + interface, which MUST define it in its documentation.</p> + + <tp:rationale> + <p>Initially, all interests are in entire interface, but allowing + other strings allows subscription to part of an interface; for + instance, an interest in ...MailNotification/count could track + the number of messages without caring about their detailed + content.</p> + </tp:rationale> + + <p>For each token with which this method interacts, the + Connection tracks an "interest count" (like a reference count) for + each unique bus name that has called this method. When a client + calls this method, for each token, the interest count for its + unique bus name is incremented; when + <tp:member-ref>RemoveClientInterest</tp:member-ref> is called, + all interest counts for that unique bus name are decremented. + If the unique bus name leaves the bus (for instance, if the + client crashes or exits), all interest counts for that unique bus + name are set to zero.</p> + + <p>The Connection can then use these reference counts to + avoid subscribing to protocol-level notifications unless at least + one client has a non-zero interest count for the relevant + token.</p> + + <tp:rationale> + <p>This method exists to reduce memory and network overhead when + there is no active subscription.</p> + + <p>One situation where this is useful is <tp:dbus-ref + namespace="org.freedesktop.Telepathy.Connection.Interface" + >Location</tp:dbus-ref>: on XMPP, location updates are received + over PEP. If the Connection advertises the + <code>geoloc+notify</code> capability, it will be sent location + updates for all contacts. To avoid consuming resources for this, + the connection should avoid advertising that capability until + a client has expressed an interest in contacts' locations.</p> + + <p>Another example of a protocol that benefits from this method is + the Google XMPP Mail Notification extension, which can be used + to implement <tp:dbus-ref + namespace="org.freedesktop.Telepathy.Connection.Interface" + >MailNotification</tp:dbus-ref>. In this protocol, the CM + receives a notification that something has changed, but to get + more information, the CM must request this information. Knowing + that nobody is currently interested in this information, the CM + can avoid generating useless network traffic. Similarly, the CM + may free the list of unread messages to reduce memory overhead.</p> + </tp:rationale> + + <p>If this method is called for an interface that might require + protocol-level subscription, but the connection cannot set up + that subscription yet (for instance because the + <tp:member-ref>Status</tp:member-ref> is not Connected yet), the + Connection MUST remember the client's interest, and attempt to + subscribe to the appropriate protocol feature when this becomes + possible.</p> + + <p>Clients MAY ignore any errors raised by this method; it is intended + to be called with the reply ignored.</p> + + <tp:rationale> + <p>The only reason it could fail is if it's unimplemented, in which + case the only thing the client can usefully do is to proceed as if + it had succeeded.</p> + </tp:rationale> + </tp:docstring> + + <arg name="Tokens" type="as" direction="in"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>Interfaces or parts of interfaces in which to register an + interest, represented by either a + <tp:type>DBus_Interface</tp:type>, or a string prefixed with a + <tp:type>DBus_Interface</tp:type>.</p> + + <p>If the Connection does not support one of these tokens, this + is not considered to be an error; the unsupported token is + simply ignored.</p> + </tp:docstring> + </arg> + </method> + + <method name="RemoveClientInterest" + tp:name-for-bindings="Remove_Client_Interest"> + <tp:added version="0.21.3"/> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>Release an interest registered using + <tp:member-ref>AddClientInterest</tp:member-ref>. See that + method's documentation for details.</p> + + <p>Clients MAY ignore any errors raised by this method; it is intended + to be called with the reply ignored.</p> + + <tp:rationale> + <p>The only reasons it could fail are if it's unimplemented, or if + the client's reference-counting is wrong and it has tried to + remove a client interest that it did not add. In both cases, + there's nothing the client could do about it.</p> + </tp:rationale> + </tp:docstring> + + <arg name="Tokens" type="as" direction="in"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>Interfaces or parts of interfaces that were previously passed to + <tp:member-ref>AddClientInterest</tp:member-ref>.</p> + </tp:docstring> + </arg> + </method> + + <property name="HasImmortalHandles" + tp:name-for-bindings="Has_Immortal_Handles" + access="read" type="b"> + <tp:added version="0.21.6"/> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>True if handles last for the whole lifetime of the Connection. + This SHOULD be the case in all connection managers, but clients + MUST interoperate with older connection managers + (which reference-count handles).</p> + </tp:docstring> + </property> + + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>This models a connection to a single user account on a communication + service. Its basic capability is to provide the facility to request and + receive channels of differing types (such as text channels or streaming + media channels) which are used to carry out further communication.</p> + + <p>In order to allow Connection objects to be discovered by new clients, + the object path and well-known bus name MUST be of the form + <code>/org/freedesktop/Telepathy/Connection/cmname/proto/account</code> + and + <code>org.freedesktop.Telepathy.Connection.cmname.proto.account</code> + where:</p> + + <ul> + <li><em>cmname</em> is the same + <tp:type>Connection_Manager_Name</tp:type> that appears + in the connection manager's object path and well-known bus name</li> + <li><em>proto</em> is the <tp:type>Protocol</tp:type> name as seen in + <tp:dbus-ref namespace="org.freedesktop.Telepathy.ConnectionManager">ListProtocols</tp:dbus-ref>, + but with "-" replaced with "_" to get a valid + object path/bus name</li> + <li><em>account</em> is some non-empty sequence of ASCII letters, + digits and underscores not starting with a digit</li> + </ul> + + <p><em>account</em> SHOULD be formed such that any valid distinct + connection instance on this protocol has a distinct name. This + might be formed by including the server name followed by the user + name (escaped via some suitable mechanism like telepathy-glib's + tp_escape_as_identifier() function to preserve uniqueness); on + protocols where connecting multiple times is permissable, a + per-connection identifier might be necessary to ensure + uniqueness.</p> + + <p>Clients MAY parse the object path to determine the connection + manager name and the protocol, but MUST NOT attempt to parse the + <em>account</em> part. Connection managers MAY use any unique string + for this part.</p> + + <p>As well as the methods and signatures below, arbitrary interfaces may be + provided by the Connection object to represent extra connection-wide + functionality, such as the Connection.Interface.SimplePresence for + receiving and + reporting presence information, and Connection.Interface.Aliasing for + connections where contacts may set and change an alias for themselves. + These interfaces can be discovered using the + <tp:member-ref>GetInterfaces</tp:member-ref> method.</p> + + <p>Contacts, rooms, and server-stored lists (such as subscribed contacts, + block lists, or allow lists) on a service are all represented by + immutable <em>handles</em>, which are unsigned non-zero integers which are + valid only for the lifetime of the connection object, and are used + throughout the protocol where these entities are represented, allowing + simple testing of equality within clients.</p> + + <p>Zero as a handle value is sometimes used as a "null" value to mean + the absence of a contact, room, etc.</p> + + <p>Handles have per-type uniqueness, meaning that + every (handle type, handle number) tuple is guaranteed to be unique within + a connection and that a handle alone (without its type) is meaningless or + ambiguous. Connection manager implementations should reference count these + handles to determine if they are in use either by any active clients or any + open channels, and may deallocate them when this ceases to be true. Clients + may request handles of a given type and identifier with the + <tp:member-ref>RequestHandles</tp:member-ref> method, inspect the entity + identifier with the <tp:member-ref>InspectHandles</tp:member-ref> + method, keep handles from being released with + <tp:member-ref>HoldHandles</tp:member-ref>, and notify that they are no + longer storing handles with + <tp:member-ref>ReleaseHandles</tp:member-ref>.</p> + </tp:docstring> + + <tp:changed version="0.17.10">Previously, the account part of + Connection bus names/object paths was allowed to have more than one + component (i.e. contain dots or slashes), resulting in Connection + bus names and object paths with more than 7 components. We now restrict + Connection bus names/object paths to have exactly 7 + components.</tp:changed> + + <tp:changed version="0.17.23">The Requests and Contacts interfaces + are now mandatory. Their functionality will be merged into the main + Connection interface at some point in future.</tp:changed> + + </interface> +</node> +<!-- vim:set sw=2 sts=2 et ft=xml: --> |