TSG-22348 feature: adapt maat support UUID

This commit is contained in:
luwenpeng
2024-09-23 16:50:09 +08:00
parent 7ef8e44bca
commit 5799de5299
60 changed files with 2504 additions and 1043 deletions

View File

@@ -12,38 +12,38 @@
#include "log.h"
/******************************************************************************
* mutable_array
* uuid_array
******************************************************************************/
void mutable_array_init(struct mutable_array *array)
void uuid_array_init(struct uuid_array *array)
{
memset(array, 0, sizeof(mutable_array));
memset(array, 0, sizeof(uuid_array));
array->num = 0;
array->size = sizeof(array->elems) / sizeof(array->elems[0]);
array->size = sizeof(array->uuids) / sizeof(array->uuids[0]);
}
void mutable_array_add_elem(struct mutable_array *array, uint64_t elem)
void uuid_array_append(struct uuid_array *array, uuid_t uuid)
{
if (array->num < array->size)
{
array->elems[array->num] = elem;
uuid_copy(array->uuids[array->num], uuid);
array->num++;
}
else
{
LOG_ERROR("%s: fixed num array add elem too much !!!", LOG_TAG_UTILS);
LOG_ERROR("%s: uuid array add elem too much !!!", LOG_TAG_UTILS);
}
}
void mutable_array_del_elem(struct mutable_array *array, uint64_t elem)
void uuid_array_remove(struct uuid_array *array, uuid_t uuid)
{
for (int i = 0; i < array->num; i++)
{
if (array->elems[i] == elem)
if (uuid_compare(array->uuids[i], uuid) == 0)
{
if (i + 1 != array->size)
{
memmove(&(array->elems[i]), &(array->elems[i + 1]), sizeof(array->elems[0]) * (array->num - i - 1));
memmove(&(array->uuids[i]), &(array->uuids[i + 1]), sizeof(array->uuids[0]) * (array->num - i - 1));
}
i--;
array->num--;
@@ -51,7 +51,20 @@ void mutable_array_del_elem(struct mutable_array *array, uint64_t elem)
}
}
int mutable_array_is_full(struct mutable_array *array)
int uuid_array_contains(struct uuid_array *array, uuid_t uuid)
{
for (int i = 0; i < array->num; i++)
{
if (uuid_compare(array->uuids[i], uuid) == 0)
{
return 1;
}
}
return 0;
}
int uuid_array_is_full(struct uuid_array *array)
{
if (array->num == array->size)
{
@@ -63,7 +76,7 @@ int mutable_array_is_full(struct mutable_array *array)
}
}
int mutable_array_count_elem(struct mutable_array *array)
int uuid_array_get_count(struct uuid_array *array)
{
if (array)
{
@@ -75,27 +88,17 @@ int mutable_array_count_elem(struct mutable_array *array)
}
}
int mutable_array_exist_elem(struct mutable_array *array, uint64_t elem)
{
for (int i = 0; i < array->num; i++)
{
if (array->elems[i] == elem)
{
return 1;
}
}
return 0;
}
int mutable_array_index_elem(struct mutable_array *array, int index)
uuid_t *uuid_array_get_at(struct uuid_array *array, int index)
{
if (index >= array->num)
{
assert(0);
return NULL;
}
else
{
return &(array->uuids[index]);
}
return array->elems[index];
}
/******************************************************************************