1/**
2 * \file
3 * \brief multimap implementation
4 */
5
6/*
7 * Copyright (c) 2009, 2011 ETH Zurich.
8 * All rights reserved.
9 *
10 * This file is distributed under the terms in the attached LICENSE file.
11 * If you do not find this file, copies can be found by writing to:
12 * ETH Zurich D-INFK, Universitaetstrasse 6, CH-8092 Zurich. Attn: Systems Group.
13 */
14
15#ifndef MULTIMAP_H_
16#define MULTIMAP_H_
17
18#include <hashtable/hashtable.h>
19#include <sys/cdefs.h>
20
21__BEGIN_DECLS
22
23struct multimap {
24    struct hashtable h;
25    int (*put)(struct multimap*, char*, void*);
26    int (*remove)(struct multimap*, char*, void*);
27    int (*get_first)(struct multimap*, char*, void**);
28    int (*get_all)(struct multimap*, char*, void**, int);
29};
30
31struct multimap* create_multimap(void);
32
33__END_DECLS
34
35#endif /* MULTIMAP_H_ */
36