[evolution-data-server/wip/camel-more-gobject] Add CamelVeeMessageInfo, descendant of CamelMessageInfo



commit 7f8986a60b1bc3ec32ce594b90d105527bdcf256
Author: Milan Crha <mcrha redhat com>
Date:   Fri Sep 2 20:31:53 2016 +0200

    Add CamelVeeMessageInfo, descendant of CamelMessageInfo

 camel/Makefile.am              |    2 +
 camel/camel-message-info.h     |    4 +-
 camel/camel-vee-message-info.c |  433 ++++++++++++++++++++++++++++++++++++++++
 camel/camel-vee-message-info.h |   71 +++++++
 camel/camel-vee-summary.h      |    4 +-
 camel/camel.h                  |    1 +
 6 files changed, 511 insertions(+), 4 deletions(-)
---
diff --git a/camel/Makefile.am b/camel/Makefile.am
index 646fde3..f7a0cdd 100644
--- a/camel/Makefile.am
+++ b/camel/Makefile.am
@@ -170,6 +170,7 @@ libcamel_1_2_la_SOURCES = \
        camel-utf8.c \
        camel-vee-data-cache.c \
        camel-vee-folder.c \
+       camel-vee-message-info.c \
        camel-vee-store.c \
        camel-vee-summary.c \
        camel-vtrash-folder.c \
@@ -291,6 +292,7 @@ libcamelinclude_HEADERS = \
        camel-utf8.h \
        camel-vee-data-cache.h \
        camel-vee-folder.h \
+       camel-vee-message-info.h \
        camel-vee-store.h \
        camel-vee-summary.h \
        camel-vtrash-folder.h \
diff --git a/camel/camel-message-info.h b/camel/camel-message-info.h
index 5863d1d..6c4b163 100644
--- a/camel/camel-message-info.h
+++ b/camel/camel-message-info.h
@@ -105,7 +105,7 @@ struct _xCamelMessageInfoClass {
        GObjectClass parent_class;
 
        xCamelMessageInfo *     (* clone)       (const xCamelMessageInfo *mi,
-                                                struct _CamelFolderSummary *summary);
+                                                struct _CamelFolderSummary *assign_summary);
        guint32                 (* get_flags)   (const xCamelMessageInfo *mi);
        gboolean                (* set_flags)   (xCamelMessageInfo *mi,
                                                 CamelMessageFlags flags,
@@ -187,7 +187,7 @@ xCamelMessageInfo *
                xcamel_message_info_new         (struct _CamelFolderSummary *summary);
 xCamelMessageInfo *
                xcamel_message_info_clone       (const xCamelMessageInfo *mi,
-                                                struct _CamelFolderSummary *summary);
+                                                struct _CamelFolderSummary *assign_summary);
 struct _CamelFolderSummary *
                xcamel_message_info_ref_summary (const xCamelMessageInfo *mi);
 void           xcamel_message_info_property_lock
diff --git a/camel/camel-vee-message-info.c b/camel/camel-vee-message-info.c
new file mode 100644
index 0000000..8c52b94
--- /dev/null
+++ b/camel/camel-vee-message-info.c
@@ -0,0 +1,433 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/*
+ * Copyright (C) 2016 Red Hat, Inc. (www.redhat.com)
+ *
+ * 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.
+ *
+ * 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, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <stdio.h>
+
+#include "camel-folder-summary.h"
+#include "camel-message-info.h"
+#include "camel-string-utils.h"
+#include "camel-vee-summary.h"
+
+#include "camel-vee-message-info.h"
+
+struct _xCamelVeeMessageInfoPrivate {
+       CamelFolderSummary *orig_summary;
+};
+
+G_DEFINE_TYPE (xCamelVeeMessageInfo, xcamel_vee_message_info, XCAMEL_TYPE_MESSAGE_INFO)
+
+static xCamelMessageInfo *
+vee_message_info_clone (const xCamelMessageInfo *mi,
+                       CamelFolderSummary *assign_summary)
+{
+       xCamelMessageInfo *result;
+
+       g_return_val_if_fail (XCAMEL_IS_VEE_MESSAGE_INFO (mi), NULL);
+
+       result = XCAMEL_MESSAGE_INFO_CLASS (xcamel_vee_message_info_parent_class)->clone (mi, assign_summary);
+       if (!result)
+               return NULL;
+
+       if (XCAMEL_IS_VEE_MESSAGE_INFO (result)) {
+               xCamelVeeMessageInfo *vmi, *vmi_result;
+
+               vmi = XCAMEL_VEE_MESSAGE_INFO (mi);
+               vmi_result = XCAMEL_VEE_MESSAGE_INFO (result);
+
+               if (vmi->priv->orig_summary)
+                       vmi_result->priv->orig_summary = g_object_ref (vmi->priv->orig_summary);
+       }
+
+       return result;
+}
+
+#define vee_call_from_parent_mi(_err_ret, _ret_type, _call_what, _call_args) G_STMT_START {    \
+               xCamelVeeMessageInfo *vmi;                                                      \
+               xCamelMessageInfo *orig_mi;                                                     \
+               const gchar *uid;                                                               \
+               _ret_type result;                                                               \
+                                                                                               \
+               g_return_val_if_fail (XCAMEL_IS_VEE_MESSAGE_INFO (mi), _err_ret);               \
+                                                                                               \
+               vmi = XCAMEL_VEE_MESSAGE_INFO (mi);                                             \
+               g_return_val_if_fail (vmi->priv->orig_summary != NULL, _err_ret);               \
+                                                                                               \
+               uid = xcamel_message_info_pooldup_uid (mi);                                     \
+               g_return_val_if_fail (uid != NULL, _err_ret);                                   \
+                                                                                               \
+               if (!uid[0] || !uid[1] || !uid[2] || !uid[3] || !uid[4] ||                      \
+                   !uid[5] || !uid[6] || !uid[7] || !uid[8]) {                                 \
+                       camel_pstring_free (uid);                                               \
+                       g_warn_if_reached ();                                                   \
+                       return _err_ret;                                                        \
+               }                                                                               \
+                                                                                               \
+               orig_mi = (xCamelMessageInfo *)camel_folder_summary_get (vmi->priv->orig_summary, uid + 8);   
          \
+               if (!orig_mi) {                                                                 \
+                       g_warning ("%s: Failed to get orig uid '%s'\n", G_STRFUNC, uid);        \
+                       camel_pstring_free (uid);                                               \
+                       return _err_ret;                                                        \
+               }                                                                               \
+                                                                                               \
+               camel_pstring_free (uid);                                                       \
+                                                                                               \
+               result = _call_what _call_args;                                                 \
+                                                                                               \
+               g_clear_object (&orig_mi);                                                      \
+                                                                                               \
+               return result;                                                                  \
+       } G_STMT_END
+
+static guint32
+vee_message_info_get_flags (const xCamelMessageInfo *mi)
+{
+       vee_call_from_parent_mi (0, guint32, xcamel_message_info_get_flags, (orig_mi));
+}
+
+static gboolean
+vee_message_info_set_flags (xCamelMessageInfo *mi,
+                           CamelMessageFlags mask,
+                           guint32 set)
+{
+       vee_call_from_parent_mi (FALSE, gboolean, xcamel_message_info_set_flags, (orig_mi, mask, set));
+}
+
+static gboolean
+vee_message_info_get_user_flag (const xCamelMessageInfo *mi,
+                               const gchar *name)
+{
+       vee_call_from_parent_mi (FALSE, gboolean, xcamel_message_info_get_user_flag, (orig_mi, name));
+}
+
+static gboolean
+vee_message_info_set_user_flag (xCamelMessageInfo *mi,
+                               const gchar *name,
+                               gboolean state)
+{
+       vee_call_from_parent_mi (FALSE, gboolean, xcamel_message_info_set_user_flag, (orig_mi, name, state));
+}
+
+static CamelNamedFlags *
+vee_message_info_dup_user_flags (const xCamelMessageInfo *mi)
+{
+       vee_call_from_parent_mi (NULL, CamelNamedFlags *, xcamel_message_info_dup_user_flags, (orig_mi));
+}
+
+static gboolean
+vee_message_info_take_user_flags (xCamelMessageInfo *mi,
+                                 CamelNamedFlags *user_flags)
+{
+       vee_call_from_parent_mi (FALSE, gboolean, xcamel_message_info_take_user_flags, (orig_mi, user_flags));
+}
+
+static const gchar *
+vee_message_info_get_user_tag (const xCamelMessageInfo *mi,
+                              const gchar *name)
+{
+       vee_call_from_parent_mi (NULL, const gchar *, xcamel_message_info_get_user_tag, (orig_mi, name));
+}
+
+static gboolean
+vee_message_info_set_user_tag (xCamelMessageInfo *mi,
+                              const gchar *name,
+                              const gchar *value)
+{
+       vee_call_from_parent_mi (FALSE, gboolean, xcamel_message_info_set_user_tag, (orig_mi, name, value));
+}
+
+static CamelNameValueArray *
+vee_message_info_dup_user_tags (const xCamelMessageInfo *mi)
+{
+       vee_call_from_parent_mi (NULL, CamelNameValueArray *, xcamel_message_info_dup_user_tags, (orig_mi));
+}
+
+static gboolean
+vee_message_info_take_user_tags (xCamelMessageInfo *mi,
+                                CamelNameValueArray *user_tags)
+{
+       vee_call_from_parent_mi (FALSE, gboolean, xcamel_message_info_take_user_tags, (orig_mi, user_tags));
+}
+
+static const gchar *
+vee_message_info_get_subject (const xCamelMessageInfo *mi)
+{
+       vee_call_from_parent_mi (NULL, const gchar *, xcamel_message_info_get_subject, (orig_mi));
+}
+
+static gboolean
+vee_message_info_set_subject (xCamelMessageInfo *mi,
+                             const gchar *subject)
+{
+       vee_call_from_parent_mi (FALSE, gboolean, xcamel_message_info_set_subject, (orig_mi, subject));
+}
+
+static const gchar *
+vee_message_info_get_preview (const xCamelMessageInfo *mi)
+{
+       vee_call_from_parent_mi (NULL, const gchar *, xcamel_message_info_get_preview, (orig_mi));
+}
+
+static gboolean
+vee_message_info_set_preview (xCamelMessageInfo *mi,
+                             const gchar *preview)
+{
+       vee_call_from_parent_mi (FALSE, gboolean, xcamel_message_info_set_preview, (orig_mi, preview));
+}
+
+static const gchar *
+vee_message_info_get_from (const xCamelMessageInfo *mi)
+{
+       vee_call_from_parent_mi (NULL, const gchar *, xcamel_message_info_get_from, (orig_mi));
+}
+
+static gboolean
+vee_message_info_set_from (xCamelMessageInfo *mi,
+                          const gchar *from)
+{
+       vee_call_from_parent_mi (FALSE, gboolean, xcamel_message_info_set_from, (orig_mi, from));
+}
+
+static const gchar *
+vee_message_info_get_to (const xCamelMessageInfo *mi)
+{
+       vee_call_from_parent_mi (NULL, const gchar *, xcamel_message_info_get_to, (orig_mi));
+}
+
+static gboolean
+vee_message_info_set_to (xCamelMessageInfo *mi,
+                        const gchar *to)
+{
+       vee_call_from_parent_mi (FALSE, gboolean, xcamel_message_info_set_to, (orig_mi, to));
+}
+
+static const gchar *
+vee_message_info_get_cc (const xCamelMessageInfo *mi)
+{
+       vee_call_from_parent_mi (NULL, const gchar *, xcamel_message_info_get_cc, (orig_mi));
+}
+
+static gboolean
+vee_message_info_set_cc (xCamelMessageInfo *mi,
+                        const gchar *cc)
+{
+       vee_call_from_parent_mi (FALSE, gboolean, xcamel_message_info_set_cc, (orig_mi, cc));
+}
+
+static const gchar *
+vee_message_info_get_mlist (const xCamelMessageInfo *mi)
+{
+       vee_call_from_parent_mi (NULL, const gchar *, xcamel_message_info_get_mlist, (orig_mi));
+}
+
+static gboolean
+vee_message_info_set_mlist (xCamelMessageInfo *mi,
+                           const gchar *mlist)
+{
+       vee_call_from_parent_mi (FALSE, gboolean, xcamel_message_info_set_mlist, (orig_mi, mlist));
+}
+
+static guint32
+vee_message_info_get_size (const xCamelMessageInfo *mi)
+{
+       vee_call_from_parent_mi (0, guint32, xcamel_message_info_get_size, (orig_mi));
+}
+
+static gboolean
+vee_message_info_set_size (xCamelMessageInfo *mi,
+                          guint32 size)
+{
+       vee_call_from_parent_mi (FALSE, gboolean, xcamel_message_info_set_size, (orig_mi, size));
+}
+
+static gint64
+vee_message_info_get_date_sent (const xCamelMessageInfo *mi)
+{
+       vee_call_from_parent_mi (0, gint64, xcamel_message_info_get_date_sent, (orig_mi));
+}
+
+static gboolean
+vee_message_info_set_date_sent (xCamelMessageInfo *mi,
+                               gint64 date_sent)
+{
+       vee_call_from_parent_mi (FALSE, gboolean, xcamel_message_info_set_date_sent, (orig_mi, date_sent));
+}
+
+static gint64
+vee_message_info_get_date_received (const xCamelMessageInfo *mi)
+{
+       vee_call_from_parent_mi (0, gint64, xcamel_message_info_get_date_received, (orig_mi));
+}
+
+static gboolean
+vee_message_info_set_date_received (xCamelMessageInfo *mi,
+                                   gint64 date_received)
+{
+       vee_call_from_parent_mi (FALSE, gboolean, xcamel_message_info_set_date_received, (orig_mi, 
date_received));
+}
+
+static guint64
+vee_message_info_get_message_id (const xCamelMessageInfo *mi)
+{
+       vee_call_from_parent_mi (0, guint64, xcamel_message_info_get_message_id, (orig_mi));
+}
+
+static gboolean
+vee_message_info_set_message_id (xCamelMessageInfo *mi,
+                                guint64 message_id)
+{
+       vee_call_from_parent_mi (FALSE, gboolean, xcamel_message_info_set_message_id, (orig_mi, message_id));
+}
+
+static const GArray *
+vee_message_info_get_references (const xCamelMessageInfo *mi)
+{
+       vee_call_from_parent_mi (NULL, const GArray *, xcamel_message_info_get_references, (orig_mi));
+}
+
+static gboolean
+vee_message_info_take_references (xCamelMessageInfo *mi,
+                                 GArray *references)
+{
+       vee_call_from_parent_mi (FALSE, gboolean, xcamel_message_info_take_references, (orig_mi, references));
+}
+
+static const CamelNameValueArray *
+vee_message_info_get_headers (const xCamelMessageInfo *mi)
+{
+       vee_call_from_parent_mi (NULL, const CamelNameValueArray *, xcamel_message_info_get_headers, 
(orig_mi));
+}
+
+static gboolean
+vee_message_info_take_headers (xCamelMessageInfo *mi,
+                              CamelNameValueArray *headers)
+{
+       vee_call_from_parent_mi (FALSE, gboolean, xcamel_message_info_take_headers, (orig_mi, headers));
+}
+
+#undef vee_call_from_parent_mi
+
+static void
+vee_message_info_dispose (GObject *object)
+{
+       xCamelVeeMessageInfo *vmi = XCAMEL_VEE_MESSAGE_INFO (object);
+
+       g_clear_object (&vmi->priv->orig_summary);
+
+       /* Chain up to parent's method. */
+       G_OBJECT_CLASS (xcamel_vee_message_info_parent_class)->dispose (object);
+}
+
+static void
+xcamel_vee_message_info_class_init (xCamelVeeMessageInfoClass *class)
+{
+       xCamelMessageInfoClass *mi_class;
+       GObjectClass *object_class;
+
+       g_type_class_add_private (class, sizeof (xCamelVeeMessageInfoPrivate));
+
+       mi_class = XCAMEL_MESSAGE_INFO_CLASS (class);
+       mi_class->clone = vee_message_info_clone;
+       mi_class->get_flags = vee_message_info_get_flags;
+       mi_class->set_flags = vee_message_info_set_flags;
+       mi_class->get_user_flag = vee_message_info_get_user_flag;
+       mi_class->set_user_flag = vee_message_info_set_user_flag;
+       mi_class->dup_user_flags = vee_message_info_dup_user_flags;
+       mi_class->take_user_flags = vee_message_info_take_user_flags;
+       mi_class->get_user_tag = vee_message_info_get_user_tag;
+       mi_class->set_user_tag = vee_message_info_set_user_tag;
+       mi_class->dup_user_tags = vee_message_info_dup_user_tags;
+       mi_class->take_user_tags = vee_message_info_take_user_tags;
+       mi_class->get_subject = vee_message_info_get_subject;
+       mi_class->set_subject = vee_message_info_set_subject;
+       mi_class->get_preview = vee_message_info_get_preview;
+       mi_class->set_preview = vee_message_info_set_preview;
+       mi_class->get_from = vee_message_info_get_from;
+       mi_class->set_from = vee_message_info_set_from;
+       mi_class->get_to = vee_message_info_get_to;
+       mi_class->set_to = vee_message_info_set_to;
+       mi_class->get_cc = vee_message_info_get_cc;
+       mi_class->set_cc = vee_message_info_set_cc;
+       mi_class->get_mlist = vee_message_info_get_mlist;
+       mi_class->set_mlist = vee_message_info_set_mlist;
+       mi_class->get_size = vee_message_info_get_size;
+       mi_class->set_size = vee_message_info_set_size;
+       mi_class->get_date_sent = vee_message_info_get_date_sent;
+       mi_class->set_date_sent = vee_message_info_set_date_sent;
+       mi_class->get_date_received = vee_message_info_get_date_received;
+       mi_class->set_date_received = vee_message_info_set_date_received;
+       mi_class->get_message_id = vee_message_info_get_message_id;
+       mi_class->set_message_id = vee_message_info_set_message_id;
+       mi_class->get_references = vee_message_info_get_references;
+       mi_class->take_references = vee_message_info_take_references;
+       mi_class->get_headers = vee_message_info_get_headers;
+       mi_class->take_headers = vee_message_info_take_headers;
+
+       object_class = G_OBJECT_CLASS (class);
+       object_class->dispose = vee_message_info_dispose;
+}
+
+static void
+xcamel_vee_message_info_init (xCamelVeeMessageInfo *vmi)
+{
+       vmi->priv = G_TYPE_INSTANCE_GET_PRIVATE (vmi, XCAMEL_TYPE_VEE_MESSAGE_INFO, 
xCamelVeeMessageInfoPrivate);
+}
+
+/**
+ * xcamel_vee_message_info_new:
+ * @summary: a #CamelVeeSummary, the "owner" of the created message info
+ * @orig_mi: an original #CamelMessageInfo to reference to
+ * @vuid: what UID to set on the resulting message info
+ *
+ * Creates a new instance of #CamelVeeMessageInfo which references
+ * the @orig_mi internally.
+ *
+ * The @vuid should be encoded in a way which the vFolder understands,
+ * which is like the one returned by camel_vee_message_info_data_get_vee_message_uid().
+ *
+ * Returns: (transfer full): a newly created #CamelVeeMessageInfo
+ *   which references @orig_mi. Free with g_object_unref() when done
+ *   with it.
+ *
+ * Since: 3.24
+ **/
+xCamelMessageInfo *
+xcamel_vee_message_info_new (CamelFolderSummary *summary,
+                            const xCamelMessageInfo *orig_mi,
+                            const gchar *vuid)
+{
+       xCamelMessageInfo *mi;
+       xCamelVeeMessageInfo *vmi;
+
+       g_return_val_if_fail (CAMEL_IS_VEE_SUMMARY (summary), NULL);
+       g_return_val_if_fail (XCAMEL_IS_MESSAGE_INFO (orig_mi), NULL);
+       g_return_val_if_fail (vuid != NULL, NULL);
+       g_return_val_if_fail (vuid[0] && vuid[1] && vuid[2] && vuid[3] && vuid[4] && vuid[5] && vuid[6] && 
vuid[7] && vuid[8], NULL);
+
+       mi = xcamel_message_info_new (summary);
+       g_return_val_if_fail (XCAMEL_IS_VEE_MESSAGE_INFO (mi), NULL);
+
+       vmi = XCAMEL_VEE_MESSAGE_INFO (mi);
+       vmi->priv->orig_summary = xcamel_message_info_ref_summary (orig_mi);
+
+       xcamel_message_info_set_uid (mi, vuid);
+
+       return mi;
+}
diff --git a/camel/camel-vee-message-info.h b/camel/camel-vee-message-info.h
new file mode 100644
index 0000000..b831ad2
--- /dev/null
+++ b/camel/camel-vee-message-info.h
@@ -0,0 +1,71 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/*
+ * Copyright (C) 2016 Red Hat, Inc. (www.redhat.com)
+ *
+ * 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.
+ *
+ * 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, see <http://www.gnu.org/licenses/>.
+ */
+
+#if !defined (__CAMEL_H_INSIDE__) && !defined (CAMEL_COMPILATION)
+#error "Only <camel/camel.h> can be included directly."
+#endif
+
+#ifndef XCAMEL_VEE_MESSAGE_INFO_H
+#define XCAMEL_VEE_MESSAGE_INFO_H
+
+#include <glib-object.h>
+
+#include <camel/camel-message-info.h>
+
+/* Standard GObject macros */
+#define XCAMEL_TYPE_VEE_MESSAGE_INFO \
+       (xcamel_vee_message_info_get_type ())
+#define XCAMEL_VEE_MESSAGE_INFO(obj) \
+       (G_TYPE_CHECK_INSTANCE_CAST \
+       ((obj), XCAMEL_TYPE_VEE_MESSAGE_INFO, xCamelVeeMessageInfo))
+#define XCAMEL_VEE_MESSAGE_INFO_CLASS(cls) \
+       (G_TYPE_CHECK_CLASS_CAST \
+       ((cls), XCAMEL_TYPE_VEE_MESSAGE_INFO, xCamelVeeMessageInfoClass))
+#define XCAMEL_IS_VEE_MESSAGE_INFO(obj) \
+       (G_TYPE_CHECK_INSTANCE_TYPE \
+       ((obj), XCAMEL_TYPE_VEE_MESSAGE_INFO))
+#define XCAMEL_IS_VEE_MESSAGE_INFO_CLASS(cls) \
+       (G_TYPE_CHECK_CLASS_TYPE \
+       ((cls), XCAMEL_TYPE_VEE_MESSAGE_INFO))
+#define XCAMEL_VEE_MESSAGE_INFO_GET_CLASS(obj) \
+       (G_TYPE_INSTANCE_GET_CLASS \
+       ((obj), XCAMEL_TYPE_VEE_MESSAGE_INFO, xCamelVeeMessageInfoClass))
+
+G_BEGIN_DECLS
+
+typedef struct _xCamelVeeMessageInfo xCamelVeeMessageInfo;
+typedef struct _xCamelVeeMessageInfoClass xCamelVeeMessageInfoClass;
+typedef struct _xCamelVeeMessageInfoPrivate xCamelVeeMessageInfoPrivate;
+
+struct _xCamelVeeMessageInfo {
+       xCamelMessageInfo parent;
+       xCamelVeeMessageInfoPrivate *priv;
+};
+
+struct _xCamelVeeMessageInfoClass {
+       xCamelMessageInfoClass parent_class;
+};
+
+GType          xcamel_vee_message_info_get_type        (void);
+xCamelMessageInfo *
+               xcamel_vee_message_info_new             (struct _CamelFolderSummary *summary,
+                                                        const xCamelMessageInfo *orig_mi,
+                                                        const gchar *vuid);
+
+G_END_DECLS
+
+#endif /* XCAMEL_VEE_MESSAGE_INFO_H */
diff --git a/camel/camel-vee-summary.h b/camel/camel-vee-summary.h
index 94a95dc..9003561 100644
--- a/camel/camel-vee-summary.h
+++ b/camel/camel-vee-summary.h
@@ -80,12 +80,12 @@ CamelVeeMessageInfo *
                                                 struct _CamelVeeMessageInfoData *mi_data);
 void           camel_vee_summary_remove        (CamelVeeSummary *summary,
                                                 const gchar *vuid,
-                                                CamelFolder *subfolder);
+                                                struct _CamelFolder *subfolder);
 void           camel_vee_summary_replace_flags (CamelVeeSummary *summary,
                                                 const gchar *uid);
 GHashTable *   camel_vee_summary_get_uids_for_subfolder
                                                (CamelVeeSummary *summary,
-                                                CamelFolder *subfolder);
+                                                struct _CamelFolder *subfolder);
 
 G_END_DECLS
 
diff --git a/camel/camel.h b/camel/camel.h
index 4e6f621..d99c95a 100644
--- a/camel/camel.h
+++ b/camel/camel.h
@@ -132,6 +132,7 @@
 #include <camel/camel-utf8.h>
 #include <camel/camel-vee-data-cache.h>
 #include <camel/camel-vee-folder.h>
+#include <camel/camel-vee-message-info.h>
 #include <camel/camel-vee-store.h>
 #include <camel/camel-vee-summary.h>
 #include <camel/camel-vtrash-folder.h>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]