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