/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
* Copyright (C) 2012 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 .
*
* Authors: Milan Crha
*/
#if !defined (__CAMEL_H_INSIDE__) && !defined (CAMEL_COMPILATION)
#error "Only can be included directly."
#endif
#ifndef CAMEL_VEE_DATA_CACHE_H
#define CAMEL_VEE_DATA_CACHE_H
#include
/* Standard GObject macros */
#define CAMEL_TYPE_VEE_SUBFOLDER_DATA \
(camel_vee_subfolder_data_get_type ())
#define CAMEL_VEE_SUBFOLDER_DATA(obj) \
(G_TYPE_CHECK_INSTANCE_CAST \
((obj), CAMEL_TYPE_VEE_SUBFOLDER_DATA, CamelVeeSubfolderData))
#define CAMEL_VEE_SUBFOLDER_DATA_CLASS(cls) \
(G_TYPE_CHECK_CLASS_CAST \
((cls), CAMEL_TYPE_VEE_SUBFOLDER_DATA, CamelVeeSubfolderDataClass))
#define CAMEL_IS_VEE_SUBFOLDER_DATA(obj) \
(G_TYPE_CHECK_INSTANCE_TYPE \
((obj), CAMEL_TYPE_VEE_SUBFOLDER_DATA))
#define CAMEL_IS_VEE_SUBFOLDER_DATA_CLASS(cls) \
(G_TYPE_CHECK_CLASS_TYPE \
((cls), CAMEL_TYPE_VEE_SUBFOLDER_DATA))
#define CAMEL_VEE_SUBFOLDER_DATA_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS \
((obj), CAMEL_TYPE_VEE_SUBFOLDER_DATA, CamelVeeSubfolderDataClass))
#define CAMEL_TYPE_VEE_MESSAGE_INFO_DATA \
(camel_vee_message_info_data_get_type ())
#define CAMEL_VEE_MESSAGE_INFO_DATA(obj) \
(G_TYPE_CHECK_INSTANCE_CAST \
((obj), CAMEL_TYPE_VEE_MESSAGE_INFO_DATA, CamelVeeMessageInfoData))
#define CAMEL_VEE_MESSAGE_INFO_DATA_CLASS(cls) \
(G_TYPE_CHECK_CLASS_CAST \
((cls), CAMEL_TYPE_VEE_MESSAGE_INFO_DATA, CamelVeeMessageInfoDataClass))
#define CAMEL_IS_VEE_MESSAGE_INFO_DATA(obj) \
(G_TYPE_CHECK_INSTANCE_TYPE \
((obj), CAMEL_TYPE_VEE_MESSAGE_INFO_DATA))
#define CAMEL_IS_VEE_MESSAGE_INFO_DATA_CLASS(cls) \
(G_TYPE_CHECK_CLASS_TYPE \
((cls), CAMEL_TYPE_VEE_MESSAGE_INFO_DATA))
#define CAMEL_VEE_MESSAGE_INFO_DATA_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS \
((obj), CAMEL_TYPE_VEE_MESSAGE_INFO_DATA, CamelVeeMessageInfoDataClass))
#define CAMEL_TYPE_VEE_DATA_CACHE \
(camel_vee_data_cache_get_type ())
#define CAMEL_VEE_DATA_CACHE(obj) \
(G_TYPE_CHECK_INSTANCE_CAST \
((obj), CAMEL_TYPE_VEE_DATA_CACHE, CamelVeeDataCache))
#define CAMEL_VEE_DATA_CACHE_CLASS(cls) \
(G_TYPE_CHECK_CLASS_CAST \
((cls), CAMEL_TYPE_VEE_DATA_CACHE, CamelVeeDataCacheClass))
#define CAMEL_IS_VEE_DATA_CACHE(obj) \
(G_TYPE_CHECK_INSTANCE_TYPE \
((obj), CAMEL_TYPE_VEE_DATA_CACHE))
#define CAMEL_IS_VEE_DATA_CACHE_CLASS(cls) \
(G_TYPE_CHECK_CLASS_TYPE \
((cls), CAMEL_TYPE_VEE_DATA_CACHE))
#define CAMEL_VEE_DATA_CACHE_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS \
((obj), CAMEL_TYPE_VEE_DATA_CACHE, CamelVeeDataCacheClass))
G_BEGIN_DECLS
typedef struct _CamelVeeSubfolderData CamelVeeSubfolderData;
typedef struct _CamelVeeSubfolderDataClass CamelVeeSubfolderDataClass;
typedef struct _CamelVeeSubfolderDataPrivate CamelVeeSubfolderDataPrivate;
typedef struct _CamelVeeMessageInfoData CamelVeeMessageInfoData;
typedef struct _CamelVeeMessageInfoDataClass CamelVeeMessageInfoDataClass;
typedef struct _CamelVeeMessageInfoDataPrivate CamelVeeMessageInfoDataPrivate;
typedef struct _CamelVeeDataCache CamelVeeDataCache;
typedef struct _CamelVeeDataCacheClass CamelVeeDataCacheClass;
typedef struct _CamelVeeDataCachePrivate CamelVeeDataCachePrivate;
/**
* CamelVeeSubfolderData:
*
* Since: 3.6
**/
struct _CamelVeeSubfolderData {
GObject parent;
CamelVeeSubfolderDataPrivate *priv;
};
struct _CamelVeeSubfolderDataClass {
GObjectClass parent_class;
};
GType camel_vee_subfolder_data_get_type
(void) G_GNUC_CONST;
CamelVeeSubfolderData *
camel_vee_subfolder_data_new (CamelFolder *folder);
CamelFolder * camel_vee_subfolder_data_get_folder
(CamelVeeSubfolderData *data);
const gchar * camel_vee_subfolder_data_get_folder_id
(CamelVeeSubfolderData *data);
/* ----------------------------------------------------------------------- */
/**
* CamelVeeMessageInfoData:
*
* Since: 3.6
**/
struct _CamelVeeMessageInfoData {
GObject parent;
CamelVeeMessageInfoDataPrivate *priv;
};
struct _CamelVeeMessageInfoDataClass {
GObjectClass parent_class;
};
GType camel_vee_message_info_data_get_type
(void) G_GNUC_CONST;
CamelVeeMessageInfoData *
camel_vee_message_info_data_new
(CamelVeeSubfolderData *subfolder_data,
const gchar *orig_message_uid);
CamelVeeSubfolderData *
camel_vee_message_info_data_get_subfolder_data
(CamelVeeMessageInfoData *data);
const gchar * camel_vee_message_info_data_get_orig_message_uid
(CamelVeeMessageInfoData *data);
const gchar * camel_vee_message_info_data_get_vee_message_uid
(CamelVeeMessageInfoData *data);
/* ----------------------------------------------------------------------- */
/**
* CamelVeeDataCache:
*
* Since: 3.6
**/
struct _CamelVeeDataCache {
GObject parent;
CamelVeeDataCachePrivate *priv;
};
struct _CamelVeeDataCacheClass {
GObjectClass parent_class;
};
GType camel_vee_data_cache_get_type (void) G_GNUC_CONST;
CamelVeeDataCache *
camel_vee_data_cache_new (void);
void camel_vee_data_cache_add_subfolder
(CamelVeeDataCache *data_cache,
CamelFolder *subfolder);
void camel_vee_data_cache_remove_subfolder
(CamelVeeDataCache *data_cache,
CamelFolder *subfolder);
CamelVeeSubfolderData *
camel_vee_data_cache_get_subfolder_data
(CamelVeeDataCache *data_cache,
CamelFolder *folder);
gboolean camel_vee_data_cache_contains_message_info_data
(CamelVeeDataCache *data_cache,
CamelFolder *folder,
const gchar *orig_message_uid);
CamelVeeMessageInfoData *
camel_vee_data_cache_get_message_info_data
(CamelVeeDataCache *data_cache,
CamelFolder *folder,
const gchar *orig_message_uid);
CamelVeeMessageInfoData *
camel_vee_data_cache_get_message_info_data_by_vuid
(CamelVeeDataCache *data_cache,
const gchar *vee_message_uid);
void camel_vee_data_cache_foreach_message_info_data
(CamelVeeDataCache *data_cache,
CamelFolder *fromfolder,
void (* func) (CamelVeeMessageInfoData *mi_data,
CamelFolder *subfolder,
gpointer user_data),
gpointer user_data);
void camel_vee_data_cache_remove_message_info_data
(CamelVeeDataCache *data_cache,
CamelVeeMessageInfoData *mi_data);
G_END_DECLS
#endif /* CAMEL_VEE_DATA_CACHE_H */