2 * $Id: icache.h 874 2007-12-15 02:51:06Z hubert@u.washington.edu $
4 * ========================================================================
5 * Copyright 2013-2021 Eduardo Chappa
6 * Copyright 2006-2007 University of Washington
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * ========================================================================
17 #ifndef PITH_ICACHE_INCLUDED
18 #define PITH_ICACHE_INCLUDED
21 #include "../pith/msgno.h"
22 #include "../pith/thread.h"
23 #include "../pith/indxtype.h"
26 /* flags for clear_index_cache() */
27 #define IC_USE_RAW_MSGNO 0x01
28 #define IC_CLEAR_WIDTHS_DONE 0x02
31 /* exported prototypes */
32 void clear_index_cache_ent(MAILSTREAM
*, long, unsigned);
33 void clear_index_cache(MAILSTREAM
*, unsigned);
34 void clear_index_cache_for_thread(MAILSTREAM
*, PINETHRD_S
*, MSGNO_S
*);
35 void clear_icache_flags(MAILSTREAM
*);
36 void set_need_format_setup(MAILSTREAM
*);
37 int need_format_setup(MAILSTREAM
*);
38 void set_format_includes_msgno(MAILSTREAM
*);
39 int format_includes_msgno(MAILSTREAM
*);
40 void set_format_includes_smartdate(MAILSTREAM
*);
41 int format_includes_smartdate(MAILSTREAM
*);
42 void free_ice(ICE_S
**);
43 void clear_ice(ICE_S
**);
44 void free_ifield(IFIELD_S
**);
45 void free_ielem(IELEM_S
**);
46 ICE_S
*fetch_ice(MAILSTREAM
*, unsigned long);
47 ICE_S
**fetch_ice_ptr(MAILSTREAM
*, unsigned long);
48 ICE_S
*copy_ice(ICE_S
*);
49 IFIELD_S
*copy_ifield(IFIELD_S
*);
50 IELEM_S
*copy_ielem(IELEM_S
*);
52 IFIELD_S
*new_ifield(IFIELD_S
**);
53 IELEM_S
*new_ielem(IELEM_S
**);
56 #endif /* PITH_ICACHE_INCLUDED */