Beispiel #1
0
cc_int32 ccs_list_remove (ccs_list_t       io_list,
                          cci_identifier_t in_identifier)
{
    cc_int32 err = ccNoError;
    cc_uint64 remove_index;
    
    if (!io_list      ) { err = cci_check_error (ccErrBadParam); }
    if (!in_identifier) { err = cci_check_error (ccErrBadParam); }
    
    if (!err) {
        err = ccs_list_find_index (io_list, in_identifier, &remove_index);
    }
    
    if (!err) {
        err = cci_array_remove (io_list->objects, remove_index);
    }
    
    if (!err) {
        /* Fixup iterator indexes */
        cc_uint64 i;
        
        for (i = 0; !err && i < cci_array_count (io_list->iterators); i++) {
            ccs_list_iterator_t iterator = cci_array_object_at_index (io_list->iterators, i);
            
            err = ccs_list_iterator_update (iterator, ccs_list_action_remove, remove_index);
        }        
    }    
    
    return cci_check_error (err);    
}
cc_int32 ccs_list_iterator_release (ccs_list_iterator_t io_list_iterator)
{
    cc_int32 err = ccNoError;
    
    if (!err && io_list_iterator) {
        cc_uint64 i = 0;
        
        if (ccs_list_find_iterator_index (io_list_iterator->list, 
                                          io_list_iterator->identifier, 
                                          &i) == ccNoError) {
            /* cci_array_remove will call ccs_list_iterator_object_release */
            err = cci_array_remove (io_list_iterator->list->iterators, i);
        } else {
            cci_debug_printf ("Warning: iterator not in iterator list!");
        }
    }
    
    return err;        
}
Beispiel #3
0
inline cc_int32 ccs_client_array_remove (ccs_client_array_t io_array,
                                         cc_uint64          in_position)
{
    return cci_array_remove (io_array, in_position);
}
Beispiel #4
0
cc_int32 ccs_iteratorref_array_remove (ccs_iteratorref_array_t io_array,
				       cc_uint64               in_position)
{
    return cci_array_remove (io_array, in_position);
}
Beispiel #5
0
cc_int32 ccs_callbackref_array_remove (ccs_callbackref_array_t io_array,
				       cc_uint64               in_position)
{
    return cci_array_remove (io_array, in_position);
}
Beispiel #6
0
cc_int32 ccs_lock_array_remove (ccs_lock_array_t io_array,
                                cc_uint64        in_position)
{
    return cci_array_remove (io_array, in_position);
}