From c03ac675117f81caa051df681a3f763c66714317 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Mon, 25 Feb 2013 14:41:07 -0500 Subject: Add EPhotoCache. Caches contact photos by email address. Replaces the disastrous implementation in e-mail-utils.c. --- e-util/e-photo-cache.h | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 e-util/e-photo-cache.h (limited to 'e-util/e-photo-cache.h') diff --git a/e-util/e-photo-cache.h b/e-util/e-photo-cache.h new file mode 100644 index 0000000000..8114e93385 --- /dev/null +++ b/e-util/e-photo-cache.h @@ -0,0 +1,95 @@ +/* + * e-photo-cache.h + * + * This program 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 of the License, or (at your option) version 3. + * + * This program 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 the program; if not, see + * + */ + +#if !defined (__E_UTIL_H_INSIDE__) && !defined (LIBEUTIL_COMPILATION) +#error "Only should be included directly." +#endif + +#ifndef E_PHOTO_CACHE_H +#define E_PHOTO_CACHE_H + +#include +#include + +/* Standard GObject macros */ +#define E_TYPE_PHOTO_CACHE \ + (e_photo_cache_get_type ()) +#define E_PHOTO_CACHE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST \ + ((obj), E_TYPE_PHOTO_CACHE, EPhotoCache)) +#define E_PHOTO_CACHE_CLASS(cls) \ + (G_TYPE_CHECK_CLASS_CAST \ + ((cls), E_TYPE_PHOTO_CACHE, EPhotoCacheClass)) +#define E_IS_PHOTO_CACHE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE \ + ((obj), E_TYPE_PHOTO_CACHE)) +#define E_IS_PHOTO_CACHE_CLASS(cls) \ + (G_TYPE_CHECK_CLASS_TYPE \ + ((cls), E_TYPE_PHOTO_CACHE)) +#define E_PHOTO_CACHE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS \ + ((obj), E_TYPE_PHOTO_CACHE, EPhotoCacheClass)) + +G_BEGIN_DECLS + +typedef struct _EPhotoCache EPhotoCache; +typedef struct _EPhotoCacheClass EPhotoCacheClass; +typedef struct _EPhotoCachePrivate EPhotoCachePrivate; + +/** + * EPhotoCache: + * + * Contains only private data that should be read and manipulated using the + * functions below. + **/ +struct _EPhotoCache { + GObject parent; + EPhotoCachePrivate *priv; +}; + +struct _EPhotoCacheClass { + GObjectClass parent_class; +}; + +GType e_photo_cache_get_type (void) G_GNUC_CONST; +EPhotoCache * e_photo_cache_new (EClientCache *client_cache); +EClientCache * e_photo_cache_ref_client_cache (EPhotoCache *photo_cache); +gboolean e_photo_cache_get_local_only (EPhotoCache *photo_cache); +void e_photo_cache_set_local_only (EPhotoCache *photo_cache, + gboolean local_only); +gboolean e_photo_cache_get_photo_sync (EPhotoCache *photo_cache, + const gchar *email_address, + GCancellable *cancellable, + GInputStream **out_stream, + GError **error); +void e_photo_cache_get_photo (EPhotoCache *photo_cache, + const gchar *email_address, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +gboolean e_photo_cache_get_photo_finish (EPhotoCache *photo_cache, + GAsyncResult *result, + GInputStream **out_stream, + GError **error); +gboolean e_photo_cache_remove (EPhotoCache *photo_cache, + const gchar *email_address); + +G_END_DECLS + +#endif /* E_PHOTO_CACHE_H */ + -- cgit v1.2.3