1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2 /*
3  * Copyright (C) 2015 Red Hat Inc. (www.redhat.com)
4  *
5  * This library is free software: you can redistribute it and/or modify it
6  * under the terms of version 2.1. of the GNU Lesser General Public License
7  * as published by the Free Software Foundation.
8  *
9  * This library is distributed in the hope that it will be useful, but
10  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
11  * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
12  * for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public License
15  * along with this library. If not, see <http://www.gnu.org/licenses/>.
16  */
17 
18 #ifndef E_MAIL_REMOTE_CONTENT_H
19 #define E_MAIL_REMOTE_CONTENT_H
20 
21 #include <glib-object.h>
22 
23 /* Standard GObject macros */
24 #define E_TYPE_MAIL_REMOTE_CONTENT \
25 	(e_mail_remote_content_get_type ())
26 #define E_MAIL_REMOTE_CONTENT(obj) \
27 	(G_TYPE_CHECK_INSTANCE_CAST \
28 	((obj), E_TYPE_MAIL_REMOTE_CONTENT, EMailRemoteContent))
29 #define E_MAIL_REMOTE_CONTENT_CLASS(cls) \
30 	(G_TYPE_CHECK_CLASS_CAST \
31 	((cls), E_TYPE_MAIL_REMOTE_CONTENT, EMailRemoteContentClass))
32 #define E_IS_MAIL_REMOTE_CONTENT(obj) \
33 	(G_TYPE_CHECK_INSTANCE_TYPE \
34 	((obj), E_TYPE_MAIL_REMOTE_CONTENT))
35 #define E_IS_MAIL_REMOTE_CONTENT_CLASS(cls) \
36 	(G_TYPE_CHECK_CLASS_TYPE \
37 	((cls), E_TYPE_MAIL_REMOTE_CONTENT))
38 #define E_MAIL_REMOTE_CONTENT_GET_CLASS(obj) \
39 	(G_TYPE_INSTANCE_GET_CLASS \
40 	((obj), E_TYPE_MAIL_REMOTE_CONTENT, EMailRemoteContentClass))
41 
42 G_BEGIN_DECLS
43 
44 typedef struct _EMailRemoteContent EMailRemoteContent;
45 typedef struct _EMailRemoteContentClass EMailRemoteContentClass;
46 typedef struct _EMailRemoteContentPrivate EMailRemoteContentPrivate;
47 
48 struct _EMailRemoteContent {
49 	GObject parent;
50 	EMailRemoteContentPrivate *priv;
51 };
52 
53 struct _EMailRemoteContentClass {
54 	GObjectClass parent_class;
55 };
56 
57 GType		e_mail_remote_content_get_type	(void) G_GNUC_CONST;
58 EMailRemoteContent *
59 		e_mail_remote_content_new	(const gchar *config_filename);
60 void		e_mail_remote_content_add_site	(EMailRemoteContent *content,
61 						 const gchar *site);
62 void		e_mail_remote_content_remove_site
63 						(EMailRemoteContent *content,
64 						 const gchar *site);
65 gboolean	e_mail_remote_content_has_site	(EMailRemoteContent *content,
66 						 const gchar *site);
67 GSList *	e_mail_remote_content_get_sites	(EMailRemoteContent *content);
68 void		e_mail_remote_content_add_mail	(EMailRemoteContent *content,
69 						 const gchar *mail);
70 void		e_mail_remote_content_remove_mail
71 						(EMailRemoteContent *content,
72 						 const gchar *mail);
73 gboolean	e_mail_remote_content_has_mail	(EMailRemoteContent *content,
74 						 const gchar *mail);
75 GSList *	e_mail_remote_content_get_mails	(EMailRemoteContent *content);
76 
77 G_END_DECLS
78 
79 #endif /* E_MAIL_REMOTE_CONTENT_H */
80