ze-filter  (ze-filter-0.8.0-develop-180218)
zeMap.h
Go to the documentation of this file.
1 /*
2  *
3  * ze-filter - Mail Server Filter for sendmail
4  *
5  * Copyright (c) 2001-2018 - Jose-Marcio Martins da Cruz
6  *
7  * Auteur : Jose Marcio Martins da Cruz
8  * jose.marcio.mc@gmail.org
9  *
10  * Historique :
11  * Creation : Mon Dec 19 13:53:17 CET 2005
12  *
13  * This program is free software, but with restricted license :
14  *
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
19  *
20  * More details about ze-filter license can be found at ze-filter
21  * web site : http://foss.jose-marcio.org
22  */
23 
24 
25 #ifndef __ZE_ZEMAP_H
26 
27 typedef struct ZEMAP_T
28 {
29  int signature;
30  pthread_mutex_t mutex;
31  char *name;
32  int rdonly;
33  size_t cache_size;
36 } ZEMAP_T;
37 
38 #define ZEMAP_INITIALIZER {SIGNATURE, PTHREAD_MUTEX_INITIALIZER, NULL, 0, 0, \
39  ZEDB_INITIALIZER, NULL}
40 
41 
42 bool zeMap_Init(ZEMAP_T * map);
43 bool zeMap_OK(ZEMAP_T * map);
44 
45 bool zeMap_Open(ZEMAP_T * map, ZEDB_ENV_T *env, char *name, int rdonly, size_t cache_size);
46 bool zeMap_Close(ZEMAP_T * map);
47 bool zeMap_Reopen(ZEMAP_T * map);
48 
49 bool zeMap_Lookup(ZEMAP_T * map, char *key, char *value, size_t size);
50 bool zeMap_Add(ZEMAP_T * map, char *key, char *value, size_t size);
51 bool zeMap_Delete(ZEMAP_T * map, char *key);
52 
53 #define ZEMAP_BROWSE_CONTINUE 0
54 #define ZEMAP_BROWSE_STOP 1
55 #define ZEMAP_BROWSE_DELETE 2
56 
57 typedef int (*ZEMAP_BROWSE_F) (char *, char *, void *);
58 
59 bool zeMap_Browse(ZEMAP_T * map, ZEMAP_BROWSE_F func, void *arg, char *key, size_t ksz, time_t tmax);
60 
61 bool zeMap_Lock(ZEMAP_T * map);
62 bool zeMap_Unlock(ZEMAP_T * map);
63 
64 bool zeMap_Flush(ZEMAP_T * map);
65 
66 # define __ZE_ZEMAP_H 1
67 #endif /* __ZE_ZEMAP_H */
bool zeMap_Flush(ZEMAP_T *map)
Definition: zeMap.c:378
ZEDB_T db
Definition: zeMap.h:34
bool zeMap_OK(ZEMAP_T *map)
Definition: zeMap.c:62
Definition: zeDb.h:47
bool zeMap_Lookup(ZEMAP_T *map, char *key, char *value, size_t size)
Definition: zeMap.c:183
pthread_mutex_t mutex
Definition: zeMap.h:30
int signature
Definition: zeMap.h:29
struct ZEMAP_T ZEMAP_T
Definition: zeMap.h:27
bool zeMap_Browse(ZEMAP_T *map, ZEMAP_BROWSE_F func, void *arg, char *key, size_t ksz, time_t tmax)
Definition: zeMap.c:269
bool zeMap_Open(ZEMAP_T *map, ZEDB_ENV_T *env, char *name, int rdonly, size_t cache_size)
Definition: zeMap.c:80
size_t cache_size
Definition: zeMap.h:33
int rdonly
Definition: zeMap.h:32
bool zeMap_Reopen(ZEMAP_T *map)
Definition: zeMap.c:161
bool zeMap_Add(ZEMAP_T *map, char *key, char *value, size_t size)
Definition: zeMap.c:221
int(* ZEMAP_BROWSE_F)(char *, char *, void *)
Definition: zeMap.h:57
void ZEDB_ENV_T
Definition: zeDb.h:85
bool zeMap_Init(ZEMAP_T *map)
Definition: zeMap.c:48
bool zeMap_Unlock(ZEMAP_T *map)
Definition: zeMap.c:360
ZEDB_ENV_T * env
Definition: zeMap.h:35
bool zeMap_Lock(ZEMAP_T *map)
Definition: zeMap.c:342
char * name
Definition: zeMap.h:31
bool zeMap_Close(ZEMAP_T *map)
Definition: zeMap.c:137
bool zeMap_Delete(ZEMAP_T *map, char *key)
Definition: zeMap.c:247