From 1969fa0def63673c73851a95bbe17f832aa702e0 Mon Sep 17 00:00:00 2001 From: DenverM80 Date: Fri, 23 Jun 2017 15:45:34 -0600 Subject: [PATCH] Add helper functions to init ds3_bulk_object_list_response --- src/ds3.c | 38 ++++++++++++++++++++++++++++++++++++++ src/ds3.h | 10 ++++++++++ 2 files changed, 48 insertions(+) diff --git a/src/ds3.c b/src/ds3.c index 2bca9492..8f93b1fd 100644 --- a/src/ds3.c +++ b/src/ds3.c @@ -26204,6 +26204,44 @@ ds3_bulk_object_list_response* ds3_convert_object_list(const ds3_contents_respon return obj_list; } +ds3_bulk_object_list_response* ds3_convert_object_list_from_strings(const char** objects, uint64_t num_objects) { + size_t object_index; + ds3_bulk_object_list_response* obj_list = ds3_init_bulk_object_list(); + + GPtrArray* ds3_bulk_object_response_array = g_ptr_array_new(); + + for (object_index = 0; object_index < num_objects; object_index++) { + ds3_bulk_object_response* response = g_new0(ds3_bulk_object_response, 1); + response->name = ds3_str_init(objects[object_index]); + g_ptr_array_add(ds3_bulk_object_response_array, response); + } + + obj_list->objects = (ds3_bulk_object_response**)ds3_bulk_object_response_array->pdata; + obj_list->num_objects = ds3_bulk_object_response_array->len; + g_ptr_array_free(ds3_bulk_object_response_array, FALSE); + + return obj_list; +} + ds3_bulk_object_list_response* ds3_init_bulk_object_list() { return g_new0(ds3_bulk_object_list_response, 1); } + +ds3_bulk_object_list_response* ds3_init_bulk_object_list_with_size(size_t num_objects) { + size_t object_index; + ds3_bulk_object_list_response* obj_list = ds3_init_bulk_object_list(); + + GPtrArray* ds3_bulk_object_response_array = g_ptr_array_new(); + + for (object_index = 0; object_index < num_objects; object_index++) { + ds3_bulk_object_response* response = g_new0(ds3_bulk_object_response, 1); + g_ptr_array_add(ds3_bulk_object_response_array, response); + } + + obj_list->objects = (ds3_bulk_object_response**)ds3_bulk_object_response_array->pdata; + obj_list->num_objects = ds3_bulk_object_response_array->len; + g_ptr_array_free(ds3_bulk_object_response_array, FALSE); + + return obj_list; +} + diff --git a/src/ds3.h b/src/ds3.h index 85134628..8f928b43 100644 --- a/src/ds3.h +++ b/src/ds3.h @@ -4978,7 +4978,17 @@ LIBRARY_API size_t ds3_read_from_fd(void* buffer, size_t size, size_t nmemb, voi LIBRARY_API ds3_bulk_object_list_response* ds3_convert_file_list(const char** file_list, uint64_t num_files); LIBRARY_API ds3_bulk_object_list_response* ds3_convert_file_list_with_basepath(const char** file_list, uint64_t num_files, const char* base_path); LIBRARY_API ds3_bulk_object_list_response* ds3_convert_object_list(const ds3_contents_response** objects, uint64_t num_objects); +LIBRARY_API ds3_bulk_object_list_response* ds3_convert_object_list_from_strings(const char** objects, uint64_t num_objects); +/* + * Init a single ds3_bulk_object_list_response object containing no ds3_bulk_object_response objects + */ LIBRARY_API ds3_bulk_object_list_response* ds3_init_bulk_object_list(); +/* + * Init a single ds3_bulk_object_list_response object containing num_objects ds3_bulk_object_response objects. + * each ds3_bulk_object_response object will need its properties (name, bucket, etc) to be set with ds3_str_init("name"), + * and physical_placement will be null. + */ +LIBRARY_API ds3_bulk_object_list_response* ds3_init_bulk_object_list_with_size(size_t num_objects); #ifdef __cplusplus