summaryrefslogtreecommitdiff
path: root/salut/plugin.h
diff options
context:
space:
mode:
Diffstat (limited to 'salut/plugin.h')
-rw-r--r--salut/plugin.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/salut/plugin.h b/salut/plugin.h
index 975446c6..c0f2a062 100644
--- a/salut/plugin.h
+++ b/salut/plugin.h
@@ -26,6 +26,11 @@
#include <telepathy-glib/base-connection-manager.h>
#include <telepathy-glib/base-connection.h>
+#include <wocky/wocky-session.h>
+
+#include <salut/connection.h>
+#include <salut/sidecar.h>
+
G_BEGIN_DECLS
#define SALUT_TYPE_PLUGIN (salut_plugin_get_type ())
@@ -40,6 +45,14 @@ G_BEGIN_DECLS
typedef struct _SalutPlugin SalutPlugin;
typedef struct _SalutPluginInterface SalutPluginInterface;
+typedef void (*SalutPluginCreateSidecarImpl) (
+ SalutPlugin *plugin,
+ const gchar *sidecar_interface,
+ SalutConnection *connection,
+ WockySession *session,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+
/* The caller of this function takes ownership of the returned
* GPtrArray and the channel managers inside the array. This has the
* same semantics as TpBaseConnectionCreateChannelManagersImpl. */
@@ -75,6 +88,17 @@ struct _SalutPluginInterface
const gchar *version;
/**
+ * A %NULL-terminated array of strings listing the sidecar D-Bus interfaces
+ * implemented by this plugin.
+ */
+ const gchar * const *sidecar_interfaces;
+
+ /**
+ * An implementation of salut_plugin_create_sidecar().
+ */
+ SalutPluginCreateSidecarImpl create_sidecar;
+
+ /**
* An implementation of salut_plugin_initialize().
*/
SalutPluginInitializeImpl initialize;
@@ -93,6 +117,25 @@ const gchar * salut_plugin_get_name (
SalutPlugin *plugin);
const gchar * salut_plugin_get_version (
SalutPlugin *plugin);
+const gchar * const *salut_plugin_get_sidecar_interfaces (
+ SalutPlugin *plugin);
+
+gboolean salut_plugin_implements_sidecar (
+ SalutPlugin *plugin,
+ const gchar *sidecar_interface);
+
+void salut_plugin_create_sidecar_async (
+ SalutPlugin *plugin,
+ const gchar *sidecar_interface,
+ SalutConnection *connection,
+ WockySession *session,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+
+SalutSidecar * salut_plugin_create_sidecar_finish (
+ SalutPlugin *plugin,
+ GAsyncResult *result,
+ GError **error);
void salut_plugin_initialize (
SalutPlugin *plugin,