diff options
author | Will Thompson <will.thompson@collabora.co.uk> | 2011-10-10 15:10:59 +0100 |
---|---|---|
committer | Will Thompson <will.thompson@collabora.co.uk> | 2011-10-10 15:11:13 +0100 |
commit | 43a87ab723d8c21880c18bfd084a5c03e90ad89f (patch) | |
tree | 720ba6c5b90f136b68a438a691ce3cc2bfe98ea6 /spec/Channel_Interface_Room_Config.xml | |
parent | 468c19fb3ee29da725d9ed9acd07325ad2b329f4 (diff) | |
download | telepathy-glib-43a87ab723d8c21880c18bfd084a5c03e90ad89f.tar.gz |
Update to telepathy-spec 0.24.0
This also includes the updates to the Call-based example code omitted
from fa81060.
Diffstat (limited to 'spec/Channel_Interface_Room_Config.xml')
-rw-r--r-- | spec/Channel_Interface_Room_Config.xml | 248 |
1 files changed, 248 insertions, 0 deletions
diff --git a/spec/Channel_Interface_Room_Config.xml b/spec/Channel_Interface_Room_Config.xml new file mode 100644 index 000000000..2ae7f1fd8 --- /dev/null +++ b/spec/Channel_Interface_Room_Config.xml @@ -0,0 +1,248 @@ +<?xml version="1.0" ?> +<node name="/Channel_Interface_Room_Config" + xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0"> + + <tp:copyright>Copyright © 2011 Collabora Ltd.</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.Interface.RoomConfig1"> + <tp:added version="0.24.0">version 1. This replaces the old-school + Telepathy properties on <tp:dbus-ref + namespace='ofdT.Channel.Type'>Text</tp:dbus-ref>.</tp:added> + <tp:requires interface='org.freedesktop.Telepathy.Channel.Interface.Room2'/> + <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" + value="true"/> + + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>Represents the configuration of a chatroom, some aspects of which may + be modifiable by the user, depending on their priviledges. This + corresponds to the room configuration on XMPP, and various channel mode + flags on IRC.</p> + + <p>The “topic” (on IRC) or “subject” (on XMPP) is not part of this + interface; it can be found on the <tp:dbus-ref + namespace='ofdT.Channel.Interface'>Subject2</tp:dbus-ref> + interface.</p> + </tp:docstring> + + <property name="Anonymous" tp:name-for-bindings="Anonymous" type="b" access="read"> + <tp:docstring> + <code>True</code> if people may join the channel without other members being made + aware of their identity. + </tp:docstring> + </property> + <property name="InviteOnly" tp:name-for-bindings="InviteOnly" type="b" access="read"> + <tp:docstring> + <code>True</code> if people may not join the channel until they have been invited. + </tp:docstring> + </property> + <property name="Limit" tp:name-for-bindings="Limit" type="u" access="read"> + <tp:docstring> + The limit to the number of members; or <tt>0</tt> if there is no limit. + </tp:docstring> + </property> + <property name="Moderated" tp:name-for-bindings="Moderated" type="b" access="read"> + <tp:docstring> + <code>True</code> if channel membership is not sufficient to allow participation. + </tp:docstring> + </property> + <property name="Title" tp:name-for-bindings="Title" type="s" access="read"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + A human-visible name for the channel, if it differs from <tp:dbus-ref + namespace='ofdT.Channel.Interface'>Room2.RoomName</tp:dbus-ref>; the + empty string, otherwise. + + <tp:rationale> + <p>On XMPP, this represents the <code>muc#roomconfig_roomname</code> + field of the <a + href='http://xmpp.org/extensions/xep-0045.html#registrar-formtype-owner'><code>muc#roomconfig</code></a> + form. So for <code>jdev@conference.jabber.org</code>, for example:</p> + + <ul> + <li><tp:dbus-ref + namespace='ofdT.Channel.Interface'>Room2.RoomName</tp:dbus-ref> + = <code>"jdev"</code>;</li> + <li><tp:dbus-ref + namespace='ofdT.Channel.Interface'>Room2.Server</tp:dbus-ref> + = <code>"conference.jabber.org"</code>;</li> + <li><tp:member-ref>Title</tp:member-ref> = <code>"General Jabber + development discussion"</code>.</li> + </ul> + + <p>XEP-0045 is awful.</p> + </tp:rationale> + </tp:docstring> + </property> + <property name="Description" tp:name-for-bindings="Description" type="s" access="read"> + <tp:docstring> + A human-readable description of the channel's overall purpose; if any. + </tp:docstring> + </property> + <property name="Persistent" tp:name-for-bindings="Persistent" type="b" access="read"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <code>True</code> if the channel will remain in existence on the server after all + members have left it. + </tp:docstring> + </property> + <property name="Private" tp:name-for-bindings="Private" type="b" access="read"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <code>True</code> if the channel is not visible to non-members. + </tp:docstring> + </property> + + <property name="PasswordProtected" type="b" access="read" + tp:name-for-bindings="Password_Protected"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <code>True</code> if contacts joining this channel must provide a + password to be granted entry. Note that this property does not + indicate that a password is required <em>right now</em>; see the + <tp:dbus-ref namespace='ofdT.Channel.Interface'>Password</tp:dbus-ref> + interface for the API used to provide a password while joining a room. + </tp:docstring> + </property> + + <property name="Password" tp:name-for-bindings="Password" type="s" access="read"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + If <tp:member-ref>PasswordProtected</tp:member-ref> is + <code>True</code>, the password required to enter the channel, if + known. If the password is unknown, or + <tp:member-ref>PasswordProtected</tp:member-ref> is + <code>False</code>, the empty string. + + <tp:rationale> + On XMPP—bless its cotton socks!—non-owners of a MUC cannot see its + current password, even if they just provided the password in order to + join the room… + </tp:rationale> + </tp:docstring> + </property> + + <property name="CanUpdateConfiguration" type="b" access="read" + tp:name-for-bindings="Can_Update_Configuration"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + If <code>True</code>, the user may call + <tp:member-ref>UpdateConfiguration</tp:member-ref> to change the values + of the properties listed in + <tp:member-ref>MutableProperties</tp:member-ref>. + </tp:docstring> + </property> + + <property name="MutableProperties" type="as" access="read" + tp:name-for-bindings="Mutable_Properties"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>A list of (unqualified) property names on this interface which may + be modified using <tp:member-ref>UpdateConfiguration</tp:member-ref> + (if <tp:member-ref>CanUpdateConfiguration</tp:member-ref> is + <code>True</code>). Properties not listed here cannot be + modified.</p> + + <p>For example, IRC does not have the concept of joining a room without + other participants knowing your true identity; so on IRC the + <tp:member-ref>Anonymous</tp:member-ref> property will always be + <code>False</code>, and + <tp:member-ref>MutableProperties</tp:member-ref> will not include + <code>"Anonymous"</code>.</p> + </tp:docstring> + </property> + + <property name="ConfigurationRetrieved" type="b" access="read" + tp:name-for-bindings="Configuration_Retrieved"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p><code>True</code> once the initial room configuration has been + retrieved, or <code>False</code> otherwise. On some services, this + may take some time after you've joined a room to fetch the + configuration. Once this property changes to <code>True</code>, the + other properties on this interface can be assumed to be accurate; + this property MUST not change to <code>False</code> after it becomes + <code>True</code>.</p> + + <tp:rationale> + <p>An application's “configure this room” dialog might choose to + display a spinner while this property is <code>False</code>, rather + than allowing the user to edit probably-inaccurate + configuration.</p> + </tp:rationale> + </tp:docstring> + </property> + + <method name="UpdateConfiguration" tp:name-for-bindings="Update_Configuration"> + <arg direction="in" name="Properties" type="a{sv}"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p> + The new values of one or more properties on this interface, which + must be listed in + <tp:member-ref>MutableProperties</tp:member-ref>. For + instance, to set up a channel for discussing top-secret corporate + merge plans, this parameter might be: + </p> + + <blockquote> + <pre>{ + 'Private': True, + 'InviteOnly': True, + 'Description': "The first rule of #inteltakeover is: do not talk about #inteltakeover", +}</pre></blockquote> + </tp:docstring> + </arg> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>If <tp:member-ref>CanUpdateConfiguration</tp:member-ref> is + <code>True</code>, modifies the current values of one or more + room properties. This method SHOULD NOT return until the change has + been accepted or declined by the server.</p> + + <p>Note that the server may ostensibly accept the changes (thus + allowing this method to return success) but signal different values; + for example, the server might truncate + <tp:member-ref>Title</tp:member-ref> to some maximum length. Callers + SHOULD continue to listen for the <code>PropertiesChanged</code> + signal, and trust the values it signals over those provided to this + method.</p> + </tp:docstring> + + <tp:error name="org.freedesktop.Telepathy.Error.PermissionDenied"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + The user is not allowed to reconfigure this room. + </tp:docstring> + </tp:error> + + <tp:error name="org.freedesktop.Telepathy.Error.InvalidArgument"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + One or more of the specified properties is unknown, or ill-typed. + </tp:docstring> + </tp:error> + + <tp:error name="org.freedesktop.Telepathy.Error.NotImplemented"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + One or more of the specified properties cannot be modified on this + protocol. + </tp:docstring> + </tp:error> + + <tp:error name="org.freedesktop.Telepathy.Error.NotAvailable"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + The room's current configuration has not yet been retrieved, so we + cannot update it just yet. The application might like to try again + once the <tp:member-ref>ConfigurationRetrieved</tp:member-ref> + property becomes <code>True</code>. + </tp:docstring> + </tp:error> + </method> + + </interface> +</node> +<!-- vim:set sw=2 sts=2 et ft=xml: --> |