--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/telepathygabble/inc/gabble-connection.h Tue Feb 02 01:10:06 2010 +0200
@@ -0,0 +1,334 @@
+/*
+ * gabble-connection.h - Header for GabbleConnection
+ * Copyright (C) 2005 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 St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef __GABBLE_CONNECTION_H__
+#define __GABBLE_CONNECTION_H__
+
+#include <dbus/dbus-glib.h>
+#include <glib-object.h>
+#include "loudmouth/loudmouth.h"
+
+#include "gabble-types.h"
+#include "gabble-error.h"
+#include "properties-mixin.h"
+#include "telepathy-constants.h"
+
+G_BEGIN_DECLS
+
+/* Default parameters for optional parameters */
+#define GABBLE_PARAMS_DEFAULT_RESOURCE "Telepathy"
+#define GABBLE_PARAMS_DEFAULT_PORT 5222
+#define GABBLE_PARAMS_DEFAULT_HTTPS_PROXY_PORT 443
+#define GABBLE_PARAMS_DEFAULT_STUN_PORT 3478
+
+/* order must match array of statuses in gabble-connection.c */
+/* in increasing order of presence */
+typedef enum
+{
+ GABBLE_PRESENCE_OFFLINE = 0,
+ GABBLE_PRESENCE_HIDDEN,
+ GABBLE_PRESENCE_XA,
+ GABBLE_PRESENCE_AWAY,
+ GABBLE_PRESENCE_DND,
+ GABBLE_PRESENCE_AVAILABLE,
+ GABBLE_PRESENCE_CHAT,
+ LAST_GABBLE_PRESENCE
+} GabblePresenceId;
+
+typedef enum
+{
+ GABBLE_CONNECTION_FEATURES_NONE = 0,
+ GABBLE_CONNECTION_FEATURES_GOOGLE_JINGLE_INFO = 1 << 0,
+ GABBLE_CONNECTION_FEATURES_GOOGLE_ROSTER = 1 << 1,
+ GABBLE_CONNECTION_FEATURES_PRESENCE_INVISIBLE = 1 << 2,
+ GABBLE_CONNECTION_FEATURES_PRIVACY = 1 << 3,
+ GABBLE_CONNECTION_FEATURES_SEARCH = 1 << 4,
+} GabbleConnectionFeatures;
+
+typedef struct _GabbleConnectionClass GabbleConnectionClass;
+
+typedef LmHandlerResult (*GabbleConnectionMsgReplyFunc) (GabbleConnection *conn,
+ LmMessage *sent_msg,
+ LmMessage *reply_msg,
+ GObject *object,
+ gpointer user_data);
+
+struct _GabbleConnectionClass {
+ GObjectClass parent_class;
+
+ GabblePropertiesMixinClass properties_class;
+};
+
+struct _GabbleConnection {
+ GObject parent;
+
+ GabblePropertiesMixin properties;
+
+ /* dbus object location */
+ gchar *bus_name;
+ gchar *object_path;
+
+ /* loudmouth connection */
+ LmConnection *lmconn;
+
+ /* connection status */
+ TpConnectionStatus status;
+
+ /* handles */
+ GabbleHandleRepo *handles;
+ GabbleHandle self_handle;
+
+ /* roster */
+ GabbleRoster *roster;
+
+ /* DISCO! */
+ GabbleDisco *disco;
+
+ /* connection feature flags */
+ GabbleConnectionFeatures features;
+
+ /* presence */
+ GabblePresenceCache *presence_cache;
+
+ /* vCard lookup helper */
+ GabbleVCardManager *vcard_manager;
+ /* search related info */
+ /* jid which supports search feature */
+ gchar *search_service_jid;
+ /* key names on which search request can be made */
+ gchar **search_key_names;
+ /* maps search key "label" to "var" */
+ GHashTable *search_key_ht;
+ /* instruction by service to do search */
+ gchar *search_instr;
+ /* gives the detailed info of search results*/
+ gchar **search_reported_fields;
+ /* needed to support search with and without data forms*/
+ gboolean search_form;
+ /*avatar sha1*/
+ gchar* self_avatar_sha1;
+ gpointer priv;
+};
+
+typedef enum {
+ GABBLE_CONNECTION_ALIAS_NONE = 0,
+ GABBLE_CONNECTION_ALIAS_FROM_JID,
+ GABBLE_CONNECTION_ALIAS_FROM_VCARD,
+ GABBLE_CONNECTION_ALIAS_FROM_CONNMGR,
+ GABBLE_CONNECTION_ALIAS_FROM_PRESENCE,
+ GABBLE_CONNECTION_ALIAS_FROM_ROSTER
+} GabbleConnectionAliasSource;
+
+IMPORT_C GType gabble_connection_get_type(void);
+
+/* TYPE MACROS */
+#define GABBLE_TYPE_CONNECTION \
+ (gabble_connection_get_type())
+#define GABBLE_CONNECTION(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST((obj), GABBLE_TYPE_CONNECTION, GabbleConnection))
+#define GABBLE_CONNECTION_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST((klass), GABBLE_TYPE_CONNECTION, GabbleConnectionClass))
+#define GABBLE_IS_CONNECTION(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE((obj), GABBLE_TYPE_CONNECTION))
+#define GABBLE_IS_CONNECTION_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE((klass), GABBLE_TYPE_CONNECTION))
+#define GABBLE_CONNECTION_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), GABBLE_TYPE_CONNECTION, GabbleConnectionClass))
+
+gboolean _gabble_connection_set_properties_from_account (GabbleConnection *conn, const gchar *account, GError **error);
+gboolean _gabble_connection_register (GabbleConnection *conn, char **bus_name, char **object_path, GError **error);
+gboolean _gabble_connection_send (GabbleConnection *conn, LmMessage *msg, GError **error);
+gboolean _gabble_connection_send_with_reply (GabbleConnection *conn, LmMessage *msg, GabbleConnectionMsgReplyFunc reply_func, GObject *object, gpointer user_data, GError **error);
+void _gabble_connection_acknowledge_set_iq (GabbleConnection *conn, LmMessage *iq);
+void _gabble_connection_send_iq_error (GabbleConnection *conn, LmMessage *message, GabbleXmppError error, const gchar *errmsg);
+
+GabbleConnectionAliasSource _gabble_connection_get_cached_alias (GabbleConnection *, GabbleHandle, gchar **);
+
+const char *_gabble_connection_find_conference_server (GabbleConnection *);
+
+gboolean
+gabble_connection_add_status (GabbleConnection *self,
+ const gchar *status,
+ GHashTable *parms,
+ GError **error);
+
+gboolean
+gabble_connection_advertise_capabilities (GabbleConnection *self,
+ const GPtrArray *add,
+ const gchar **remove,
+ GPtrArray **ret,
+ GError **error);
+
+gboolean
+gabble_connection_clear_status (GabbleConnection *self,
+ GError **error);
+
+gboolean
+gabble_connection_connect (GabbleConnection *self,
+ GError **error);
+
+//Mukesh - start
+gboolean
+gabble_connection_connect_blocking (GabbleConnection *self,
+ GError **error);
+//Mukesh - end
+
+gboolean
+gabble_connection_disconnect (GabbleConnection *self,
+ GError **error);
+
+gboolean
+gabble_connection_get_alias_flags (GabbleConnection *self,
+ guint *ret,
+ GError **error);
+
+gboolean
+gabble_connection_get_capabilities (GabbleConnection *self,
+ const GArray *handles,
+ GPtrArray **ret,
+ GError **error);
+
+gboolean
+gabble_connection_get_interfaces (GabbleConnection *self,
+ gchar ***ret,
+ GError **error);
+
+void
+gabble_connection_get_presence (GabbleConnection *self,
+ const GArray *contacts,
+ DBusGMethodInvocation *context);
+
+gboolean
+gabble_connection_get_properties (GabbleConnection *self,
+ const GArray *properties,
+ GPtrArray **ret,
+ GError **error);
+
+gboolean
+gabble_connection_get_protocol (GabbleConnection *self,
+ gchar **ret,
+ GError **error);
+
+gboolean
+gabble_connection_get_self_handle (GabbleConnection *self,
+ guint *ret,
+ GError **error);
+
+gboolean
+gabble_connection_get_status (GabbleConnection *self,
+ guint *ret,
+ GError **error);
+
+gboolean
+gabble_connection_get_statuses (GabbleConnection *self,
+ GHashTable **ret,
+ GError **error);
+
+void
+gabble_connection_hold_handles (GabbleConnection *self,
+ guint handle_type,
+ const GArray *handles,
+ DBusGMethodInvocation *context);
+
+void
+gabble_connection_inspect_handles (GabbleConnection *self,
+ guint handle_type,
+ const GArray *handles,
+ DBusGMethodInvocation *context);
+
+gboolean
+gabble_connection_list_channels (GabbleConnection *self,
+ GPtrArray **ret,
+ GError **error);
+
+gboolean
+gabble_connection_list_properties (GabbleConnection *self,
+ GPtrArray **ret,
+ GError **error);
+
+void
+gabble_connection_release_handles (GabbleConnection *self,
+ guint handle_type,
+ const GArray *handles,
+ DBusGMethodInvocation *context);
+
+gboolean
+gabble_connection_remove_status (GabbleConnection *self,
+ const gchar *status,
+ GError **error);
+
+void
+gabble_connection_request_aliases (GabbleConnection *self,
+ const GArray *contacts,
+ DBusGMethodInvocation *context);
+
+void
+gabble_connection_request_channel (GabbleConnection *self,
+ const gchar *type,
+ guint handle_type,
+ guint handle,
+ gboolean suppress_handler,
+ DBusGMethodInvocation *context);
+
+void
+gabble_connection_request_handles (GabbleConnection *self,
+ guint handle_type,
+ const gchar **names,
+ DBusGMethodInvocation *context);
+
+gboolean
+gabble_connection_request_presence (GabbleConnection *self,
+ const GArray *contacts,
+ GError **error);
+
+gboolean
+gabble_connection_set_aliases (GabbleConnection *self,
+ GHashTable *aliases,
+ GError **error);
+
+gboolean
+gabble_connection_set_last_activity_time (GabbleConnection *self,
+ guint time,
+ GError **error);
+
+void
+gabble_connection_set_properties (GabbleConnection *self,
+ const GPtrArray *properties,
+ DBusGMethodInvocation *context);
+
+gboolean
+gabble_connection_set_status (GabbleConnection *self,
+ GHashTable *statuses,
+ GError **error);
+
+gboolean
+gabble_connection_set_avatar( GabbleConnection *self, const GArray* bin_image, gchar* mime, gchar**avatar_sha1, GError** err );
+
+gboolean
+gabble_connection_clear_avatar( GabbleConnection *self,
+ GError **error);
+
+
+LmMessage* gabble_connection_build_avatar(GabbleConnection *self,
+ const GArray* bin_image, gchar* mime );
+
+G_END_DECLS
+
+#endif /* #ifndef __GABBLE_CONNECTION_H__*/