Zephyr Project API  3.4.0
A Scalable Open Source RTOS
hash_map_cxx.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2022 Meta
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
17#ifndef ZEPHYR_INCLUDE_SYS_HASH_MAP_CXX_H_
18#define ZEPHYR_INCLUDE_SYS_HASH_MAP_CXX_H_
19
20#include <stddef.h>
21
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
42#define SYS_HASHMAP_CXX_DEFINE_ADVANCED(_name, _hash_func, _alloc_func, ...) \
43 SYS_HASHMAP_DEFINE_ADVANCED(_name, &sys_hashmap_cxx_api, sys_hashmap_config, \
44 sys_hashmap_data, _hash_func, _alloc_func, __VA_ARGS__)
45
59#define SYS_HASHMAP_CXX_DEFINE_STATIC_ADVANCED(_name, _hash_func, _alloc_func, ...) \
60 SYS_HASHMAP_DEFINE_STATIC_ADVANCED(_name, &sys_hashmap_cxx_api, sys_hashmap_config, \
61 sys_hashmap_data, _hash_func, _alloc_func, __VA_ARGS__)
62
70#define SYS_HASHMAP_CXX_DEFINE_STATIC(_name) \
71 SYS_HASHMAP_CXX_DEFINE_STATIC_ADVANCED( \
72 _name, sys_hash32, SYS_HASHMAP_DEFAULT_ALLOCATOR, \
73 SYS_HASHMAP_CONFIG(SIZE_MAX, SYS_HASHMAP_DEFAULT_LOAD_FACTOR))
74
82#define SYS_HASHMAP_CXX_DEFINE(_name) \
83 SYS_HASHMAP_CXX_DEFINE_ADVANCED( \
84 _name, sys_hash32, SYS_HASHMAP_DEFAULT_ALLOCATOR, \
85 SYS_HASHMAP_CONFIG(SIZE_MAX, SYS_HASHMAP_DEFAULT_LOAD_FACTOR))
86
87#ifdef CONFIG_SYS_HASH_MAP_CHOICE_CXX
88#define SYS_HASHMAP_DEFAULT_DEFINE(_name) SYS_HASHMAP_CXX_DEFINE(_name)
89#define SYS_HASHMAP_DEFAULT_DEFINE_STATIC(_name) SYS_HASHMAP_CXX_DEFINE_STATIC(_name)
90#define SYS_HASHMAP_DEFAULT_DEFINE_ADVANCED(_name, _hash_func, _alloc_func, ...) \
91 SYS_HASHMAP_CXX_DEFINE_ADVANCED(_name, _hash_func, _alloc_func, __VA_ARGS__)
92#define SYS_HASHMAP_DEFAULT_DEFINE_STATIC_ADVANCED(_name, _hash_func, _alloc_func, ...) \
93 SYS_HASHMAP_CXX_DEFINE_STATIC_ADVANCED(_name, _hash_func, _alloc_func, __VA_ARGS__)
94#endif
95
96extern const struct sys_hashmap_api sys_hashmap_cxx_api;
97
98#ifdef __cplusplus
99}
100#endif
101
102#endif /* ZEPHYR_INCLUDE_SYS_HASH_MAP_CXX_H_ */
Hashmap (Hash Table) API.
const struct sys_hashmap_api sys_hashmap_cxx_api
Generic Hashmap API.
Definition: hash_map_api.h:173