/* * connection.h - proxy for a Telepathy connection * * Copyright (C) 2007 Collabora Ltd. * Copyright (C) 2007 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 St, Fifth Floor, Boston, MA 02110-1301 USA */ #if defined (TP_DISABLE_SINGLE_INCLUDE) && !defined (_TP_IN_META_HEADER) && !defined (_TP_COMPILATION) #error "Only and can be included directly." #endif #ifndef __TP_CONNECTION_H__ #define __TP_CONNECTION_H__ #include #include #include #include #include G_BEGIN_DECLS typedef struct _TpContactInfoFieldSpec TpContactInfoFieldSpec; struct _TpContactInfoFieldSpec { /**/ gchar *name; GStrv parameters; TpContactInfoFieldFlags flags; guint max; /**/ gpointer priv; }; #define TP_TYPE_CONTACT_INFO_FIELD_SPEC (tp_contact_info_field_spec_get_type ()) GType tp_contact_info_field_spec_get_type (void); TpContactInfoFieldSpec *tp_contact_info_field_spec_copy ( const TpContactInfoFieldSpec *self); void tp_contact_info_field_spec_free (TpContactInfoFieldSpec *self); #ifndef __GI_SCANNER__ /* the typedef only exists for G_DEFINE_BOXED_TYPE's benefit, and * g-ir-scanner 1.32.1 doesn't parse a skip annotation */ typedef GList TpContactInfoSpecList; #endif #define TP_TYPE_CONTACT_INFO_SPEC_LIST (tp_contact_info_spec_list_get_type ()) GType tp_contact_info_spec_list_get_type (void); GList *tp_contact_info_spec_list_copy (GList *list); void tp_contact_info_spec_list_free (GList *list); typedef struct _TpContactInfoField TpContactInfoField; struct _TpContactInfoField { /**/ gchar *field_name; GStrv parameters; GStrv field_value; /**/ gpointer priv; }; #define TP_TYPE_CONTACT_INFO_FIELD (tp_contact_info_field_get_type ()) GType tp_contact_info_field_get_type (void); TpContactInfoField *tp_contact_info_field_new (const gchar *field_name, GStrv parameters, GStrv field_value); TpContactInfoField *tp_contact_info_field_copy (const TpContactInfoField *self); void tp_contact_info_field_free (TpContactInfoField *self); #ifndef __GI_SCANNER__ /* the typedef only exists for G_DEFINE_BOXED_TYPE's benefit, and * g-ir-scanner 1.32.1 doesn't parse a skip annotation */ typedef GList TpContactInfoList; #endif #define TP_TYPE_CONTACT_INFO_LIST (tp_contact_info_list_get_type ()) GType tp_contact_info_list_get_type (void); GList *tp_contact_info_list_copy (GList *list); void tp_contact_info_list_free (GList *list); /* forward declaration, see contact.h for the rest */ typedef struct _TpContact TpContact; /* forward declaration, see account.h for the rest */ typedef struct _TpAccount TpAccount; typedef struct _TpConnection TpConnection; typedef struct _TpConnectionPrivate TpConnectionPrivate; typedef struct _TpConnectionClass TpConnectionClass; struct _TpConnectionClass { TpProxyClass parent_class; /**/ GCallback _1; GCallback _2; GCallback _3; GCallback _4; }; struct _TpConnection { /**/ TpProxy parent; TpConnectionPrivate *priv; }; GType tp_connection_get_type (void); #define TP_ERRORS_DISCONNECTED (tp_errors_disconnected_quark ()) GQuark tp_errors_disconnected_quark (void); #define TP_UNKNOWN_CONNECTION_STATUS ((TpConnectionStatus) -1) /* TYPE MACROS */ #define TP_TYPE_CONNECTION \ (tp_connection_get_type ()) #define TP_CONNECTION(obj) \ (G_TYPE_CHECK_INSTANCE_CAST((obj), TP_TYPE_CONNECTION, \ TpConnection)) #define TP_CONNECTION_CLASS(klass) \ (G_TYPE_CHECK_CLASS_CAST((klass), TP_TYPE_CONNECTION, \ TpConnectionClass)) #define TP_IS_CONNECTION(obj) \ (G_TYPE_CHECK_INSTANCE_TYPE((obj), TP_TYPE_CONNECTION)) #define TP_IS_CONNECTION_CLASS(klass) \ (G_TYPE_CHECK_CLASS_TYPE((klass), TP_TYPE_CONNECTION)) #define TP_CONNECTION_GET_CLASS(obj) \ (G_TYPE_INSTANCE_GET_CLASS ((obj), TP_TYPE_CONNECTION, \ TpConnectionClass)) _TP_DEPRECATED_IN_0_20_FOR(tp_simple_client_factory_ensure_connection) TpConnection *tp_connection_new (TpDBusDaemon *dbus, const gchar *bus_name, const gchar *object_path, GError **error) G_GNUC_WARN_UNUSED_RESULT; _TP_AVAILABLE_IN_0_16 TpAccount *tp_connection_get_account (TpConnection *self); TpConnectionStatus tp_connection_get_status (TpConnection *self, TpConnectionStatusReason *reason); #ifndef TP_DISABLE_DEPRECATED _TP_DEPRECATED_IN_0_20_FOR (tp_connection_get_cm_name) const gchar *tp_connection_get_connection_manager_name (TpConnection *self); #endif _TP_AVAILABLE_IN_0_20 const gchar *tp_connection_get_cm_name (TpConnection *self); const gchar *tp_connection_get_protocol_name (TpConnection *self); #ifndef TP_DISABLE_DEPRECATED _TP_DEPRECATED_IN_0_20_FOR (tp_connection_get_self_contact) TpHandle tp_connection_get_self_handle (TpConnection *self); #endif TpContact *tp_connection_get_self_contact (TpConnection *self); TpCapabilities * tp_connection_get_capabilities (TpConnection *self); TpContactInfoFlags tp_connection_get_contact_info_flags (TpConnection *self); #ifndef TP_DISABLE_DEPRECATED _TP_DEPRECATED_IN_0_20_FOR (tp_connection_dup_contact_info_supported_fields) GList *tp_connection_get_contact_info_supported_fields (TpConnection *self); #endif _TP_AVAILABLE_IN_0_20 GList *tp_connection_dup_contact_info_supported_fields (TpConnection *self); void tp_connection_set_contact_info_async (TpConnection *self, GList *info, GAsyncReadyCallback callback, gpointer user_data); gboolean tp_connection_set_contact_info_finish (TpConnection *self, GAsyncResult *result, GError **error); #ifndef TP_DISABLE_DEPRECATED _TP_DEPRECATED_IN_0_18_FOR (tp_proxy_is_prepared) gboolean tp_connection_is_ready (TpConnection *self); _TP_DEPRECATED_IN_0_18 gboolean tp_connection_run_until_ready (TpConnection *self, gboolean connect, GError **error, GMainLoop **loop); typedef void (*TpConnectionWhenReadyCb) (TpConnection *connection, const GError *error, gpointer user_data); _TP_DEPRECATED_IN_0_18_FOR (tp_proxy_prepare_async) void tp_connection_call_when_ready (TpConnection *self, TpConnectionWhenReadyCb callback, gpointer user_data); #endif typedef void (*TpConnectionNameListCb) (const gchar * const *names, gsize n, const gchar * const *cms, const gchar * const *protocols, const GError *error, gpointer user_data, GObject *weak_object); void tp_list_connection_names (TpDBusDaemon *bus_daemon, TpConnectionNameListCb callback, gpointer user_data, GDestroyNotify destroy, GObject *weak_object); void tp_connection_init_known_interfaces (void); gint tp_connection_presence_type_cmp_availability (TpConnectionPresenceType p1, TpConnectionPresenceType p2); #ifndef TP_DISABLE_DEPRECATED _TP_DEPRECATED_IN_0_20_FOR(tp_connection_get_protocol_name) gboolean tp_connection_parse_object_path (TpConnection *self, gchar **protocol, gchar **cm_name); #endif _TP_AVAILABLE_IN_0_20 const gchar *tp_connection_get_detailed_error (TpConnection *self, const GHashTable **details); _TP_AVAILABLE_IN_0_20 gchar *tp_connection_dup_detailed_error_vardict (TpConnection *self, GVariant **details) G_GNUC_WARN_UNUSED_RESULT; void tp_connection_add_client_interest (TpConnection *self, const gchar *interested_in); void tp_connection_add_client_interest_by_id (TpConnection *self, GQuark interested_in); gboolean tp_connection_has_immortal_handles (TpConnection *self); #define TP_CONNECTION_FEATURE_CORE \ (tp_connection_get_feature_quark_core ()) GQuark tp_connection_get_feature_quark_core (void) G_GNUC_CONST; #define TP_CONNECTION_FEATURE_CONNECTED \ (tp_connection_get_feature_quark_connected ()) GQuark tp_connection_get_feature_quark_connected (void) G_GNUC_CONST; #define TP_CONNECTION_FEATURE_CAPABILITIES \ (tp_connection_get_feature_quark_capabilities ()) GQuark tp_connection_get_feature_quark_capabilities (void) G_GNUC_CONST; #define TP_CONNECTION_FEATURE_CONTACT_INFO \ (tp_connection_get_feature_quark_contact_info ()) GQuark tp_connection_get_feature_quark_contact_info (void) G_GNUC_CONST; /* connection-handles.c */ #ifndef TP_DISABLE_DEPRECATED typedef void (*TpConnectionHoldHandlesCb) (TpConnection *connection, TpHandleType handle_type, guint n_handles, const TpHandle *handles, const GError *error, gpointer user_data, GObject *weak_object); _TP_DEPRECATED_IN_0_20 void tp_connection_hold_handles (TpConnection *self, gint timeout_ms, TpHandleType handle_type, guint n_handles, const TpHandle *handles, TpConnectionHoldHandlesCb callback, gpointer user_data, GDestroyNotify destroy, GObject *weak_object); typedef void (*TpConnectionRequestHandlesCb) (TpConnection *connection, TpHandleType handle_type, guint n_handles, const TpHandle *handles, const gchar * const *ids, const GError *error, gpointer user_data, GObject *weak_object); _TP_DEPRECATED_IN_0_20 void tp_connection_request_handles (TpConnection *self, gint timeout_ms, TpHandleType handle_type, const gchar * const *ids, TpConnectionRequestHandlesCb callback, gpointer user_data, GDestroyNotify destroy, GObject *weak_object); _TP_DEPRECATED_IN_0_20 void tp_connection_unref_handles (TpConnection *self, TpHandleType handle_type, guint n_handles, const TpHandle *handles); #endif /* connection-avatars.c */ typedef struct _TpAvatarRequirements TpAvatarRequirements; struct _TpAvatarRequirements { /**/ GStrv supported_mime_types; guint minimum_width; guint minimum_height; guint recommended_width; guint recommended_height; guint maximum_width; guint maximum_height; guint maximum_bytes; /**/ gpointer _1; gpointer _2; gpointer _3; gpointer _4; }; #define TP_TYPE_AVATAR_REQUIREMENTS (tp_avatar_requirements_get_type ()) GType tp_avatar_requirements_get_type (void); TpAvatarRequirements * tp_avatar_requirements_new (GStrv supported_mime_types, guint minimum_width, guint minimum_height, guint recommended_width, guint recommended_height, guint maximum_width, guint maximum_height, guint maximum_bytes); TpAvatarRequirements * tp_avatar_requirements_copy ( const TpAvatarRequirements *self); void tp_avatar_requirements_destroy (TpAvatarRequirements *self); #define TP_CONNECTION_FEATURE_AVATAR_REQUIREMENTS \ (tp_connection_get_feature_quark_avatar_requirements ()) GQuark tp_connection_get_feature_quark_avatar_requirements (void) G_GNUC_CONST; TpAvatarRequirements * tp_connection_get_avatar_requirements ( TpConnection *self); #define TP_CONNECTION_FEATURE_ALIASING \ (tp_connection_get_feature_quark_aliasing ()) _TP_AVAILABLE_IN_0_18 GQuark tp_connection_get_feature_quark_aliasing (void) G_GNUC_CONST; _TP_AVAILABLE_IN_0_18 gboolean tp_connection_can_set_contact_alias (TpConnection *self); #define TP_CONNECTION_FEATURE_BALANCE \ (tp_connection_get_feature_quark_balance ()) _TP_AVAILABLE_IN_0_16 GQuark tp_connection_get_feature_quark_balance (void) G_GNUC_CONST; _TP_AVAILABLE_IN_0_16 gboolean tp_connection_get_balance (TpConnection *self, gint *balance, guint *scale, const gchar **currency); _TP_AVAILABLE_IN_0_16 const gchar * tp_connection_get_balance_uri (TpConnection *self); _TP_AVAILABLE_IN_0_18 void tp_connection_disconnect_async (TpConnection *self, GAsyncReadyCallback callback, gpointer user_data); _TP_AVAILABLE_IN_0_18 gboolean tp_connection_disconnect_finish (TpConnection *self, GAsyncResult *result, GError **error); G_END_DECLS #include G_BEGIN_DECLS /* connection-handles.c again - this has to come after the auto-generated * stuff because it uses an auto-generated typedef */ #ifndef TP_DISABLE_DEPRECATED _TP_DEPRECATED_IN_0_20_FOR(tp_simple_client_factory_ensure_contact) void tp_connection_get_contact_attributes (TpConnection *self, gint timeout_ms, guint n_handles, const TpHandle *handles, const gchar * const *interfaces, gboolean hold, tp_cli_connection_interface_contacts_callback_for_get_contact_attributes callback, gpointer user_data, GDestroyNotify destroy, GObject *weak_object); _TP_DEPRECATED_IN_0_20_FOR(tp_connection_dup_contact_list) void tp_connection_get_contact_list_attributes (TpConnection *self, gint timeout_ms, const gchar * const *interfaces, gboolean hold, tp_cli_connection_interface_contacts_callback_for_get_contact_attributes callback, gpointer user_data, GDestroyNotify destroy, GObject *weak_object); #endif GBinding *tp_connection_bind_connection_status_to_property (TpConnection *self, gpointer target, const char *target_property, gboolean invert); G_END_DECLS #endif