cc_int32 ccs_list_new (ccs_list_t *out_list, cc_int32 in_object_not_found_err, cc_int32 in_iterator_not_found_err, ccs_object_compare_identifier_t in_object_compare_identifier, ccs_object_release_t in_object_release) { cc_int32 err = ccNoError; ccs_list_t list = NULL; if (!out_list) { err = cci_check_error (ccErrBadParam); } if (!err) { list = malloc (sizeof (*list)); if (list) { *list = ccs_list_initializer; list->object_not_found_err = in_object_not_found_err; list->iterator_not_found_err = in_iterator_not_found_err; list->object_compare_identifier = in_object_compare_identifier; } else { err = cci_check_error (ccErrNoMem); } } if (!err) { err = cci_array_new (&list->objects, in_object_release); } if (!err) { err = cci_array_new (&list->iterators, ccs_list_iterator_object_release); } if (!err) { *out_list = list; list = NULL; } ccs_list_release (list); return cci_check_error (err); }
cc_int32 ccs_lock_array_new (ccs_lock_array_t *out_array) { return cci_array_new (out_array, ccs_lock_object_release); }
inline cc_int32 ccs_client_array_new (ccs_client_array_t *out_array) { return cci_array_new (out_array, ccs_client_object_release); }
cc_int32 ccs_iteratorref_array_new (ccs_iteratorref_array_t *out_array) { /* Ref arrays do not own their contents; pass NULL for release function */ return cci_array_new (out_array, NULL); }