summaryrefslogtreecommitdiff
path: root/src/addrcache.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/addrcache.h')
-rw-r--r--src/addrcache.h124
1 files changed, 124 insertions, 0 deletions
diff --git a/src/addrcache.h b/src/addrcache.h
new file mode 100644
index 0000000..2c57486
--- /dev/null
+++ b/src/addrcache.h
@@ -0,0 +1,124 @@
1/*
2 * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
3 * Copyright (C) 2001 Match Grun
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 */
19
20/*
21 * Definitions for address cache.
22 */
23
24#ifndef __ADDRCACHE_H__
25#define __ADDRCACHE_H__
26
27#include <time.h>
28#include <stdio.h>
29#include <glib.h>
30#include "addritem.h"
31#include "utils.h"
32
33/* Address cache */
34typedef struct _AddressCache AddressCache;
35
36struct _AddressCache {
37 gint nextID;
38 gboolean dataRead;
39 gboolean modified;
40 stime_t modifyTime;
41 GHashTable *itemHash;
42 GList *tempList;
43 ItemFolder *rootFolder;
44};
45
46/* Function prototypes */
47AddressCache *addrcache_create();
48ItemFolder *addrcache_get_root_folder ( AddressCache *cache );
49GList *addrcache_get_list_folder ( AddressCache *cache );
50GList *addrcache_get_list_person ( AddressCache *cache );
51
52void addrcache_refresh ( AddressCache *cache );
53/* void addrcache_empty ( AddressCache *cache ); */
54void addrcache_clear ( AddressCache *cache );
55void addrcache_free ( AddressCache *cache );
56gboolean addrcache_check_file ( AddressCache *cache, gchar *path );
57gboolean addrcache_mark_file ( AddressCache *cache, gchar *path );
58
59void addrcache_print_item_list ( GList *list, FILE *stream );
60void addrcache_print ( AddressCache *cache, FILE *stream );
61void addrcache_dump_hash ( AddressCache *cache, FILE *stream );
62
63void addrcache_id_person ( AddressCache *cache, ItemPerson *person );
64void addrcache_id_group ( AddressCache *cache, ItemGroup *group );
65void addrcache_id_folder ( AddressCache *cache, ItemFolder *folder );
66void addrcache_id_email ( AddressCache *cache, ItemEMail *email );
67void addrcache_id_attribute ( AddressCache *cache, UserAttribute *attrib );
68
69gboolean addrcache_hash_add_person ( AddressCache *cache, ItemPerson *person );
70gboolean addrcache_hash_add_group ( AddressCache *cache, ItemGroup *group );
71gboolean addrcache_hash_add_folder ( AddressCache *cache, ItemFolder *folder );
72
73gboolean addrcache_folder_add_person ( AddressCache *cache, ItemFolder *folder, ItemPerson *item );
74gboolean addrcache_folder_add_folder ( AddressCache *cache, ItemFolder *folder, ItemFolder *item );
75gboolean addrcache_folder_add_group ( AddressCache *cache, ItemFolder *folder, ItemGroup *item );
76
77gboolean addrcache_add_person ( AddressCache *cache, ItemPerson *person );
78gboolean addrcache_add_group ( AddressCache *cache, ItemGroup *group );
79gboolean addrcache_person_add_email ( AddressCache *cache, ItemPerson *person, ItemEMail *email );
80gboolean addrcache_group_add_email ( AddressCache *cache, ItemGroup *group, ItemEMail *email );
81gboolean addrcache_add_folder ( AddressCache *cache, ItemFolder *folder );
82
83AddrItemObject *addrcache_get_object ( AddressCache *cache, const gchar *uid );
84ItemPerson *addrcache_get_person ( AddressCache *cache, const gchar *uid );
85ItemGroup *addrcache_get_group ( AddressCache *cache, const gchar *uid );
86ItemEMail *addrcache_get_email ( AddressCache *cache, const gchar *uid, const gchar *eid );
87
88UserAttribute *addrcache_person_remove_attrib_id ( AddressCache *cache, const gchar *uid,
89 const gchar *aid );
90UserAttribute *addrcache_person_remove_attribute ( AddressCache *cache, ItemPerson *person,
91 UserAttribute *attrib );
92
93ItemGroup *addrcache_remove_group_id ( AddressCache *cache, const gchar *uid );
94ItemGroup *addrcache_remove_group ( AddressCache *cache, ItemGroup *group );
95
96ItemPerson *addrcache_remove_person_id ( AddressCache *cache, const gchar *uid );
97ItemPerson *addrcache_remove_person ( AddressCache *cache, ItemPerson *person );
98ItemEMail *addrcache_person_remove_email_id ( AddressCache *cache, const gchar *uid, const gchar *eid );
99ItemEMail *addrcache_person_remove_email ( AddressCache *cache, ItemPerson *person, ItemEMail *email );
100
101GList *addrcache_folder_get_address_list ( AddressCache *cache, ItemFolder *folder );
102GList *addrcache_folder_get_person_list ( AddressCache *cache, ItemFolder *folder );
103GList *addrcache_folder_get_group_list ( AddressCache *cache, ItemFolder *folder );
104GList *addrcache_folder_get_folder_list ( AddressCache *cache, ItemFolder *folder );
105
106GList *addrcache_get_address_list ( AddressCache *cache );
107GList *addrcache_get_person_list ( AddressCache *cache );
108GList *addrcache_get_group_list ( AddressCache *cache );
109GList *addrcache_get_folder_list ( AddressCache *cache );
110
111GList *addrcache_get_group_for_person ( AddressCache *cache, ItemPerson *person );
112
113ItemFolder *addrcache_find_root_folder ( ItemFolder *folder );
114GList *addrcache_get_all_persons ( AddressCache *cache );
115GList *addrcache_get_all_groups ( AddressCache *cache );
116
117ItemFolder *addrcache_remove_folder ( AddressCache *cache, ItemFolder *folder );
118ItemFolder *addrcache_remove_folder_delete ( AddressCache *cache, ItemFolder *folder );
119
120ItemPerson *addrcache_add_contact ( AddressCache *cache, ItemFolder *folder,
121 const gchar *name, const gchar *address,
122 const gchar *remarks );
123
124#endif /* __ADDRCACHE_H__ */