From 459624a34cb65c30ede5887166d038d900b2216e Mon Sep 17 00:00:00 2001 From: Jonny Lamb Date: Tue, 15 Mar 2011 14:39:22 +0000 Subject: test plugin: add simple sidecar support Signed-off-by: Jonny Lamb --- extensions/Connection_Future.xml | 110 +++++++++++++++++++++++++++++++++++++++ extensions/Makefile.am | 2 + extensions/Salut_Plugin_Test.xml | 27 ++++++++++ extensions/all.xml | 2 + 4 files changed, 141 insertions(+) create mode 100644 extensions/Connection_Future.xml create mode 100644 extensions/Salut_Plugin_Test.xml (limited to 'extensions') diff --git a/extensions/Connection_Future.xml b/extensions/Connection_Future.xml new file mode 100644 index 00000000..11047983 --- /dev/null +++ b/extensions/Connection_Future.xml @@ -0,0 +1,110 @@ + + + Copyright © 2009 Collabora Limited + Copyright © 2009 Nokia Corporation + +

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.

+ +

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.

+ +

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.

+
+ + + + + + + + + The "primary" interface implemented by an object attached + to a connection. For example, a Gabble plugin implementing + fine-grained control of XEP-0016 privacy lists might expose an object + implementing com.example.PrivacyLists. + + + + + The object path of the sidecar, exported by the same bus + name as the Connection to which it is attached. + + + Immutable properties of the sidecar. + + + +

Request an object with a particular interface providing additional + connection-specific functionality, together with its immutable + properties. These will often be implemented by plug-ins to the + connection managers; for example, support for an XMPP XEP for which + no generic Telepathy interface exists might be implemented by a + Gabble plugin exposing a sidecar with a particular interface.

+ +

This method may be called at any point during the lifetime of a + connection, even before its Connection_Status + changes to Connected. It MAY take a long time to + return—perhaps it needs to wait for a connection to be established + and for all the services supported by the server to be discovered + before determining whether necessary server-side support is + available—so callers SHOULD override the default method timeout (25 + seconds) with a much higher value (perhaps even MAX_INT32, meaning + “no timeout” in recent versions of libdbus).

+ + +

There is an implicit assumption that any connection + manager plugin will only want to export one “primary” object per + feature it implements, since there is a one-to-one mapping between + interface and object. This is reasonable since Sidecars are + (intended to be) analogous to extra interfaces on the connection, + providing once-per-connection shared functionality; it also makes + client code straightforward (look up the interface you care about + in a dictionary, build a proxy object from the value). More + “plural” plugins are likely to want to implement new types of + Channel + instead.

+
+
+ + + + The requested sidecar is not implemented by this connection manager, + or a necessary server-side component does not exist. (FIXME: split + these two errors out? Then again, once we list the guaranteed and + possible sidecars on a Protocol object, clients can tell the + difference themselves, because they shouldn't be calling this in the + first case.) + + + + + + A server-side component needed by the requested sidecar reported it + is currently too busy, or did not respond for some + implementation-defined time. The caller may wish to try again later. + + + + + + The connection was disconnected while the sidecar was being set up. + + +
+ +
+
diff --git a/extensions/Makefile.am b/extensions/Makefile.am index a8b5be22..b5800c13 100644 --- a/extensions/Makefile.am +++ b/extensions/Makefile.am @@ -5,6 +5,8 @@ EXTRA_DIST = \ OLPC_Buddy_Info.xml \ OLPC_Activity_Properties.xml \ connection.xml \ + Salut_Plugin_Test.xml \ + Connection_Future.xml \ all.xml noinst_LTLIBRARIES = libsalut-extensions.la diff --git a/extensions/Salut_Plugin_Test.xml b/extensions/Salut_Plugin_Test.xml new file mode 100644 index 00000000..265c2a84 --- /dev/null +++ b/extensions/Salut_Plugin_Test.xml @@ -0,0 +1,27 @@ + + + Copyright © 2009 Collabora Ltd. + +

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.

+ +

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.

+ +

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.

+
+ + +

A sidecar interface implemented by a plugin used by the test + suite.

+
+
+
+ diff --git a/extensions/all.xml b/extensions/all.xml index 1a5a7eca..cc33a1c8 100644 --- a/extensions/all.xml +++ b/extensions/all.xml @@ -24,6 +24,8 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

+ +