update.
[chise/concord.git] / cos-hash.h
1 /* Copyright (C) 2013 MORIOKA Tomohiko
2    This file is part of the CONCORD Library.
3
4    The CONCORD Library is free software; you can redistribute it and/or
5    modify it under the terms of the GNU Lesser General Public
6    License as published by the Free Software Foundation; either
7    version 2.1 of the License, or (at your option) any later version.
8
9    The CONCORD Library is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12    Lesser General Public License for more details.
13
14    You should have received a copy of the GNU Lesser General Public
15    License along with the CONCORD Library; if not, write to the Free
16    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
17    02111-1307 USA.  */
18
19 #ifndef _COS_HASH_H
20 #define _COS_HASH_H
21
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 #if 0
26 }
27 #endif
28
29 #include <concord-name.h>
30
31 typedef CONCORD_HASH_TABLE* COS_Hash_Table;
32 typedef CONCORD_HASH_TABLE_ENTRY COS_Hash_Table_Entry;
33
34 COS_Hash_Table cos_make_hash_table (void);
35
36 void cos_destroy_hash_table (CONCORD_NAME_TABLE* table);
37
38 COS_object cos_hash_table_get (COS_Hash_Table table, COS_object key);
39
40 int cos_hash_table_put (COS_Hash_Table table,
41                         COS_object key, COS_object value);
42
43 int cos_hash_table_grow (COS_Hash_Table table);
44
45 size_t cos_hash_object (COS_object obj);
46
47 #if 0
48 {
49 #endif
50 #ifdef __cplusplus
51 }
52 #endif
53
54 #endif /* !_COS_HASH_H */