17#include <unordered_map>
20#include "comin_hash.hpp"
21#include "comin_keyval.hpp"
22#include "comin_state.hpp"
23#include "comin_variable.hpp"
26using MapType = comin::keyval::Map;
30 strncpy(
descr.name, name, len);
31 descr.name[len] =
'\0';
44 *val = std::get<int>(map->at(ckey));
52 *val = std::get<double>(map->at(ckey));
56 (*map)[ckey] = std::string(val);
61 *val = std::get<std::string>(map->at(ckey)).data();
69 *val = std::get<bool>(map->at(ckey));
77 auto it = map->find(ckey);
81 *idx = it->second.index();
85 *it =
new MapType::iterator(map->begin());
89 *it =
new MapType::iterator(map->end());
93 return ((*it)->first).c_str();
97 MapType::iterator* it2) {
98 return (*it1 == *it2);
106 *map =
new t_comin_var_map();
111 const char* name,
size_t len,
113 auto it = map->find(to_var_descriptor(name, len,
id));
114 if (it == map->end())
117 return it->second.get();
121 int id,
const t_comin_var_item* ptr) {
123 map->emplace(to_var_descriptor(name, len,
id),
124 std::make_unique<t_comin_var_item>(*ptr));
128 t_comin_var_map::iterator** it) {
129 *it =
new t_comin_var_map::iterator(map->begin());
139 t_comin_var_item
const** ptr) {
140 *ptr = (*it)->second.get();
144 const t_comin_var_map::iterator* it) {
145 return *it == map->end();
void comin_keyval_set_bool_c(const char *ckey, bool val, MapType *map)
void comin_keyval_iterator_next_c(MapType::iterator *it)
void comin_keyval_iterator_end_c(MapType *map, MapType::iterator **it)
void comin_keyval_get_bool_c(const char *ckey, bool *val, MapType *map)
void comin_keyval_create_c(MapType **map)
void comin_keyval_get_double_c(const char *ckey, double *val, MapType *map)
void comin_varmap_iterator_value_c(const t_comin_var_map::iterator *it, t_comin_var_item const **ptr)
bool comin_varmap_iterator_is_end_c(const t_comin_var_map *map, const t_comin_var_map::iterator *it)
void comin_varmap_delete_c(t_comin_var_map *map)
void comin_keyval_get_char_c(const char *ckey, const char **val, MapType *map)
void comin_keyval_query_c(const char *ckey, int *idx, MapType *map)
const t_comin_var_item * comin_varmap_get_c(const t_comin_var_map *map, const char *name, size_t len, int id)
void comin_keyval_get_int_c(const char *ckey, int *val, MapType *map)
void comin_keyval_iterator_delete_c(MapType::iterator *it)
void comin_varmap_iterator_next_c(t_comin_var_map::iterator *it)
void comin_keyval_iterator_begin_c(MapType *map, MapType::iterator **it)
void comin_varmap_iterator_begin_c(t_comin_var_map *map, t_comin_var_map::iterator **it)
const char * comin_keyval_iterator_get_key_c(MapType::iterator *it)
void comin_keyval_set_int_c(const char *ckey, int val, MapType *map)
void comin_keyval_set_double_c(const char *ckey, double val, MapType *map)
void comin_varmap_new_c(t_comin_var_map **map)
void comin_varmap_iterator_delete_c(t_comin_var_map::iterator *it)
void comin_keyval_set_char_c(const char *ckey, char *val, MapType *map)
void comin_keyval_delete_c(MapType *map)
void comin_varmap_clear_c(t_comin_var_map *map)
void comin_varmap_put_c(t_comin_var_map *map, const char *name, size_t len, int id, const t_comin_var_item *ptr)
bool comin_keyval_iterator_compare_c(MapType::iterator *it1, MapType::iterator *it2)