TSG-22348 feature: adapt maat support UUID
This commit is contained in:
@@ -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];
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
|
||||
Reference in New Issue
Block a user