1 //   Copyright Naoki Shibata and contributors 2010 - 2020.
2 // Distributed under the Boost Software License, Version 1.0.
3 //    (See accompanying file LICENSE.txt or copy at
4 //          http://www.boost.org/LICENSE_1_0.txt)
5 
6 #ifndef __ARRAYMAP_H__
7 #define __ARRAYMAP_H__
8 typedef struct ArrayMap ArrayMap;
9 
10 ArrayMap *initArrayMap();
11 void ArrayMap_dispose(ArrayMap *thiz);
12 int ArrayMap_size(ArrayMap *thiz);
13 void *ArrayMap_remove(ArrayMap *thiz, uint64_t key);
14 void *ArrayMap_put(ArrayMap *thiz, uint64_t key, void *value);
15 void *ArrayMap_get(ArrayMap *thiz, uint64_t key);
16 
17 uint64_t *ArrayMap_keyArray(ArrayMap *thiz);
18 void **ArrayMap_valueArray(ArrayMap *thiz);
19 int ArrayMap_save(ArrayMap *thiz, const char *fn, const char *prefix, const char *idstr);
20 ArrayMap *ArrayMap_load(const char *fn, const char *prefix, const char *idstr, int doLock);
21 #endif
22