Exemple #1
0
/**
 * Initialize data within range [it_begin, it_end) according to deque element data type.
 */
void _deque_init_elem_range_auxiliary(deque_t* pdeq_deque, deque_iterator_t it_begin, deque_iterator_t it_end)
{
    deque_iterator_t it_iter;

    assert(pdeq_deque != NULL);
    assert(_deque_is_inited(pdeq_deque) || _deque_is_created(pdeq_deque));
    assert(_deque_iterator_belong_to_deque(_GET_DEQUE_CONTAINER(it_begin), it_begin));
    assert(_deque_iterator_belong_to_deque(_GET_DEQUE_CONTAINER(it_end), it_end));
    assert(iterator_equal(it_begin, it_end) || _deque_iterator_before(it_begin, it_end));

    /* initialize new elements */
    if(_GET_DEQUE_TYPE_STYLE(pdeq_deque) == _TYPE_CSTL_BUILTIN)
    {
        /* get element type name */
        char s_elemtypename[_TYPE_NAME_SIZE + 1];
        _type_get_elem_typename(_GET_DEQUE_TYPE_NAME(pdeq_deque), s_elemtypename);

        for(it_iter = it_begin; !iterator_equal(it_iter, it_end); it_iter = iterator_next(it_iter))
        {
            _GET_DEQUE_TYPE_INIT_FUNCTION(pdeq_deque)(_deque_iterator_get_pointer_auxiliary(it_iter), s_elemtypename);
        }
    }
    else
    {
        for(it_iter = it_begin; !iterator_equal(it_iter, it_end); it_iter = iterator_next(it_iter))
        {
            bool_t t_result = _GET_DEQUE_TYPE_SIZE(pdeq_deque);
            _GET_DEQUE_TYPE_INIT_FUNCTION(pdeq_deque)(_deque_iterator_get_pointer_auxiliary(it_iter), &t_result);
            assert(t_result);
        }
    }
}
Exemple #2
0
/**
 * Initialize data within range [pby_start, pby_finish) according to vector element data type.
 */
void _vector_init_elem_range_auxiliary(vector_t* pvec_vector, _byte_t* pby_start, _byte_t* pby_finish)
{
    _byte_t* pby_pos = NULL;

    assert(pvec_vector != NULL);
    assert(pby_start != NULL);
    assert(pby_finish != NULL);
    assert(pby_start <= pby_finish);
    assert(_vector_is_inited(pvec_vector) || _vector_is_created(pvec_vector));

    /* initialize new elements */
    if (_GET_VECTOR_TYPE_STYLE(pvec_vector) == _TYPE_CSTL_BUILTIN) {
        /* get element type name */
        char s_elemtypename[_TYPE_NAME_SIZE + 1];
        _type_get_elem_typename(_GET_VECTOR_TYPE_NAME(pvec_vector), s_elemtypename);

        for (pby_pos = pby_start; pby_pos < pby_finish; pby_pos += _GET_VECTOR_TYPE_SIZE(pvec_vector)) {
            _GET_VECTOR_TYPE_INIT_FUNCTION(pvec_vector)(pby_pos, s_elemtypename);
        }
    } else {
        for (pby_pos = pby_start; pby_pos < pby_finish; pby_pos += _GET_VECTOR_TYPE_SIZE(pvec_vector)) {
            bool_t b_result = _GET_VECTOR_TYPE_SIZE(pvec_vector);
            _GET_VECTOR_TYPE_INIT_FUNCTION(pvec_vector)(pby_pos, &b_result);
            assert(b_result);
        }
    }
}
/**
 * Initialize pair container.
 */
void pair_init(pair_t* ppair_pair)
{
    assert(ppair_pair != NULL);
    assert(_pair_is_created(ppair_pair));

    if ((ppair_pair->_pv_first = malloc(_GET_PAIR_FIRST_TYPE_SIZE(ppair_pair))) == NULL) {
        fprintf(stderr, "CSTL FATAL ERROR: memory allocation error!\n");
        exit(EXIT_FAILURE);
    } else {
        memset(ppair_pair->_pv_first, 0x00, _GET_PAIR_FIRST_TYPE_SIZE(ppair_pair));
    }

    if ((ppair_pair->_pv_second = malloc(_GET_PAIR_SECOND_TYPE_SIZE(ppair_pair))) == NULL) {
        fprintf(stderr, "CSTL FATAL ERROR: memory allocation error!\n");
        exit(EXIT_FAILURE);
    } else {
        memset(ppair_pair->_pv_second, 0x00, _GET_PAIR_SECOND_TYPE_SIZE(ppair_pair));
    }

    /* initialize new elements */
    if (_GET_PAIR_FIRST_TYPE_STYLE(ppair_pair) == _TYPE_CSTL_BUILTIN) {
        /* get element type name */
        char s_elemtypename[_TYPE_NAME_SIZE + 1];
        _type_get_elem_typename(_GET_PAIR_FIRST_TYPE_NAME(ppair_pair), s_elemtypename);
        _GET_PAIR_FIRST_TYPE_INIT_FUNCTION(ppair_pair)(ppair_pair->_pv_first, s_elemtypename);
    } else {
        bool_t b_result = _GET_PAIR_FIRST_TYPE_SIZE(ppair_pair);
        _GET_PAIR_FIRST_TYPE_INIT_FUNCTION(ppair_pair)(ppair_pair->_pv_first, &b_result);
        assert(b_result);
    }

    if (_GET_PAIR_SECOND_TYPE_STYLE(ppair_pair) == _TYPE_CSTL_BUILTIN) {
        /* get element type name */
        char s_elemtypename[_TYPE_NAME_SIZE + 1];
        _type_get_elem_typename(_GET_PAIR_SECOND_TYPE_NAME(ppair_pair), s_elemtypename);
        _GET_PAIR_SECOND_TYPE_INIT_FUNCTION(ppair_pair)(ppair_pair->_pv_second, s_elemtypename);
    } else {
        bool_t b_result = _GET_PAIR_SECOND_TYPE_SIZE(ppair_pair);
        _GET_PAIR_SECOND_TYPE_INIT_FUNCTION(ppair_pair)(ppair_pair->_pv_second, &b_result);
        assert(b_result);
    }
}
Exemple #4
0
/**
 * Initialize element auxiliary function
 */
void _set_init_elem_auxiliary(set_t* pset_set, void* pv_value)
{
    assert(pset_set != NULL);
    assert(pv_value != NULL);

    /* initialize new elements */
    if (_GET_SET_TYPE_STYLE(pset_set) == _TYPE_CSTL_BUILTIN) {
        /* get element type name */
        char s_elemtypename[_TYPE_NAME_SIZE + 1];
        _type_get_elem_typename(_GET_SET_TYPE_NAME(pset_set), s_elemtypename);
        _GET_SET_TYPE_INIT_FUNCTION(pset_set)(pv_value, s_elemtypename);
    } else {
        bool_t b_result = _GET_SET_TYPE_SIZE(pset_set);
        _GET_SET_TYPE_INIT_FUNCTION(pset_set)(pv_value, &b_result);
        assert(b_result);
    }
}
/**
 * Initialize element with vector element type auxiliary function.
 */
void _vector_init_elem_auxiliary(vector_t* pvec_vector, void* pv_elem)
{
    assert(pvec_vector != NULL);
    assert(pv_elem != NULL);
    assert(_vector_is_inited(pvec_vector) || _vector_is_created(pvec_vector));

    /* initialize new elements */
    if (_GET_VECTOR_TYPE_STYLE(pvec_vector) == _TYPE_CSTL_BUILTIN) {
        /* get element type name */
        char s_elemtypename[_TYPE_NAME_SIZE + 1];
        _type_get_elem_typename(_GET_VECTOR_TYPE_NAME(pvec_vector), s_elemtypename);

        _GET_VECTOR_TYPE_INIT_FUNCTION(pvec_vector)(pv_elem, s_elemtypename);
    } else {
        bool_t b_result = _GET_VECTOR_TYPE_SIZE(pvec_vector);
        _GET_VECTOR_TYPE_INIT_FUNCTION(pvec_vector)(pv_elem, &b_result);
        assert(b_result);
    }
}
Exemple #6
0
/**
 * Initialize element auxiliary function
 */
void _avl_tree_init_elem_auxiliary(_avl_tree_t* pt_avl_tree, _avlnode_t* pt_node)
{
    assert(pt_avl_tree != NULL);
    assert(pt_node != NULL);
    assert(_avl_tree_is_inited(pt_avl_tree) || _avl_tree_is_created(pt_avl_tree));

    /* initialize new elements */
    if (_GET_AVL_TREE_TYPE_STYLE(pt_avl_tree) == _TYPE_CSTL_BUILTIN) {
        /* get element type name */
        char s_elemtypename[_TYPE_NAME_SIZE + 1];
        _type_get_elem_typename(_GET_AVL_TREE_TYPE_NAME(pt_avl_tree), s_elemtypename);

        _GET_AVL_TREE_TYPE_INIT_FUNCTION(pt_avl_tree)(pt_node->_pby_data, s_elemtypename);
    } else {
        bool_t b_result = _GET_AVL_TREE_TYPE_SIZE(pt_avl_tree);
        _GET_AVL_TREE_TYPE_INIT_FUNCTION(pt_avl_tree)(pt_node->_pby_data, &b_result);
        assert(b_result);
    }
}
/**
 * Initialize element auxiliary function
 */
void _hash_multimap_init_elem_auxiliary(hash_multimap_t* phmmap_map, void* pv_elem)
{
    assert(phmmap_map != NULL);
    assert(pv_elem != NULL);
    assert(_pair_is_inited(&phmmap_map->_pair_temp) || _pair_is_created(&phmmap_map->_pair_temp));

    /* initialize new elements */
    if(phmmap_map->_t_hashtable._t_typeinfo._t_style == _TYPE_CSTL_BUILTIN)
    {
        /* get element type name */
        char s_elemtypename[_TYPE_NAME_SIZE + 1];
        _type_get_elem_typename(phmmap_map->_t_hashtable._t_typeinfo._sz_typename, s_elemtypename);

        phmmap_map->_t_hashtable._t_typeinfo._pt_type->_t_typeinit(pv_elem, s_elemtypename);
    }
    else
    {
        bool_t b_result = phmmap_map->_t_hashtable._t_typeinfo._pt_type->_t_typesize;
        phmmap_map->_t_hashtable._t_typeinfo._pt_type->_t_typeinit(pv_elem, &b_result);
        assert(b_result);
    }
}
Exemple #8
0
/**
 * Initialize slist node auxiliary function.
 */
void _slist_init_node_auxiliary(slist_t* pslist_slist, _slistnode_t* pt_node)
{
    assert(pslist_slist != NULL);
    assert(pt_node != NULL);
    assert(_slist_is_inited(pslist_slist) || _slist_is_created(pslist_slist));

    /* initialize new elements */
    if(_GET_SLIST_TYPE_STYLE(pslist_slist) == _TYPE_CSTL_BUILTIN)
    {
        /* get element type name */
        char s_elemtypename[_TYPE_NAME_SIZE + 1];
        _type_get_elem_typename(_GET_SLIST_TYPE_NAME(pslist_slist), s_elemtypename);

        _GET_SLIST_TYPE_INIT_FUNCTION(pslist_slist)(pt_node->_pby_data, s_elemtypename);
    }
    else
    {
        bool_t b_result = _GET_SLIST_TYPE_SIZE(pslist_slist);
        _GET_SLIST_TYPE_INIT_FUNCTION(pslist_slist)(pt_node->_pby_data, &b_result);
        assert(b_result);
    }
}
Exemple #9
0
void test__type_get_elem_typename__container(void** state)
{
    char s_elemtypename[_TYPE_NAME_SIZE + 1] = {'\0'};
    _type_get_elem_typename("hash_set_t<vector_t<abc_t>>", s_elemtypename);
    assert_true(strncmp(s_elemtypename, "vector_t<abc_t>", _TYPE_NAME_SIZE) == 0);
}
Exemple #10
0
void test__type_get_elem_typename__invliad_typename(void** state)
{
    char s_elemtypename[_TYPE_NAME_SIZE + 1] = {'\0'};
    expect_assert_failure(_type_get_elem_typename("abc_t", s_elemtypename));
}
Exemple #11
0
void test__type_get_elem_typename__string(void** state)
{
    char s_elemtypename[_TYPE_NAME_SIZE + 1] = {'\0'};
    _type_get_elem_typename("string_t", s_elemtypename);
    assert_true(strncmp(s_elemtypename, "string_t", _TYPE_NAME_SIZE) == 0);
}
Exemple #12
0
void test__type_get_elem_typename__iterator(void** state)
{
    char s_elemtypename[_TYPE_NAME_SIZE + 1] = {'\0'};
    _type_get_elem_typename("vector_iterator_t", s_elemtypename);
    assert_true(strncmp(s_elemtypename, "vector_iterator_t", _TYPE_NAME_SIZE) == 0);
}
Exemple #13
0
void test__type_get_elem_typename__null_elemtypename(void** state)
{
    expect_assert_failure(_type_get_elem_typename("iterator_t", NULL));
}
Exemple #14
0
void test__type_get_elem_typename__null_typename(void** state)
{
    char s_elemtypename[_TYPE_NAME_SIZE + 1] = {'\0'};
    expect_assert_failure(_type_get_elem_typename(NULL, s_elemtypename));
}