McpDispatchOperationPolicy

McpDispatchOperationPolicy — Dispatch Operation policy object, implemented by plugins

Synopsis

#include <mission-control-plugins/mission-control-plugins.h>

void                (*McpDispatchOperationPolicyCb)     (McpDispatchOperationPolicy *policy,
                                                         McpDispatchOperation *dispatch_operation);
void                mcp_dispatch_operation_policy_check (McpDispatchOperationPolicy *policy,
                                                         McpDispatchOperation *dispatch_operation);
void                (*McpDispatchOperationPolicyHandlerIsSuitableAsync)
                                                        (McpDispatchOperationPolicy *policy,
                                                         TpClient *handler,
                                                         const gchar *unique_name,
                                                         McpDispatchOperation *dispatch_operation,
                                                         GAsyncReadyCallback callback,
                                                         gpointer user_data);
gboolean            (*McpDispatchOperationPolicyFinisher)
                                                        (McpDispatchOperationPolicy *policy,
                                                         GAsyncResult *result,
                                                         GError **error);
void                mcp_dispatch_operation_policy_handler_is_suitable_async
                                                        (McpDispatchOperationPolicy *policy,
                                                         TpClient *handler,
                                                         const gchar *unique_name,
                                                         McpDispatchOperation *dispatch_operation,
                                                         GAsyncReadyCallback callback,
                                                         gpointer user_data);
gboolean            mcp_dispatch_operation_policy_handler_is_suitable_finish
                                                        (McpDispatchOperationPolicy *policy,
                                                         GAsyncResult *result,
                                                         GError **error);
void                mcp_dispatch_operation_policy_iface_implement_check
                                                        (McpDispatchOperationPolicyIface *iface,
                                                         McpDispatchOperationPolicyCb impl);
struct              McpDispatchOperationPolicyIface;

Description

Plugins may implement McpDispatchOperationPolicy in order to apply policy to Telepathy channel dispatch operations passing through the Channel Dispatcher part of Mission Control. This interface behaves rather like the Observer clients in the Telepathy specification, and has access to the same information, but runs within the Mission Control process rather than being invoked over D-Bus.

To do so, the plugin must implement a GObject subclass that implements McpDispatchOperationPolicy, then return an instance of that subclass from mcp_plugin_ref_nth_object().

A typical plugin might look like this:

Example 3. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18