2020-09-21 19:19:18 +08:00
|
|
|
/*************************************************************************
|
|
|
|
|
> File Name: uthash.cpp
|
|
|
|
|
> Author: pxz
|
|
|
|
|
> Created Time: Fri 18 Sep 2020 04:26:09 PM CST
|
|
|
|
|
************************************************************************/
|
|
|
|
|
#include "hos_hash.h"
|
|
|
|
|
|
|
|
|
|
void add_hos_info(hos_info_t **handle, hos_info_t *input)
|
|
|
|
|
{
|
|
|
|
|
hos_info_t *value = NULL;
|
|
|
|
|
HASH_FIND_INT(*handle, &input->fd, value);
|
|
|
|
|
if (value == NULL)
|
|
|
|
|
{
|
|
|
|
|
value = (hos_info_t *)malloc(sizeof(hos_info_t));
|
|
|
|
|
memcpy(value, input, sizeof(hos_info_t));
|
|
|
|
|
HASH_ADD_INT(*handle, fd, value);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2020-09-23 19:06:09 +08:00
|
|
|
value->mode = input->mode;
|
|
|
|
|
value->handle = input->handle;
|
2020-09-21 19:19:18 +08:00
|
|
|
value->bucket = input->bucket;
|
|
|
|
|
value->object = input->object;
|
|
|
|
|
value->callback = input->callback;
|
|
|
|
|
value->userdata = input->userdata;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
hos_info_t *find_info_by_fd(hos_info_t *handle, size_t fd)
|
|
|
|
|
{
|
|
|
|
|
hos_info_t *value = NULL;
|
|
|
|
|
HASH_FIND_INT(handle, &fd, value);
|
|
|
|
|
return value;
|
|
|
|
|
}
|
|
|
|
|
|
2020-09-23 19:06:09 +08:00
|
|
|
void delete_info_by_fd(hos_info_t **handle, size_t fd)
|
2020-09-21 19:19:18 +08:00
|
|
|
{
|
|
|
|
|
hos_info_t *value = NULL;
|
2020-09-23 19:06:09 +08:00
|
|
|
HASH_FIND_INT(*handle, &fd, value);
|
2020-09-21 19:19:18 +08:00
|
|
|
if (value)
|
|
|
|
|
{
|
2020-09-23 19:06:09 +08:00
|
|
|
HASH_DEL(*handle, value);
|
2020-09-21 19:19:18 +08:00
|
|
|
free(value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-09-23 19:06:09 +08:00
|
|
|
void delete_all(hos_info_t **handle)
|
2020-09-21 19:19:18 +08:00
|
|
|
{
|
|
|
|
|
hos_info_t *current, *tmp;
|
2020-09-23 19:06:09 +08:00
|
|
|
HASH_ITER(hh, *handle, current, tmp)
|
2020-09-21 19:19:18 +08:00
|
|
|
{
|
2020-09-23 19:06:09 +08:00
|
|
|
HASH_DEL(*handle, current);
|
2020-09-21 19:19:18 +08:00
|
|
|
}
|
|
|
|
|
}
|