Skip to content

Commit 7a02b5d

Browse files
authored
Merge pull request #200 from DenverM80/util_inits
Add helper functions to init ds3_bulk_object_list_response
2 parents 6d1ee9f + 1969fa0 commit 7a02b5d

File tree

2 files changed

+48
-0
lines changed

2 files changed

+48
-0
lines changed

src/ds3.c

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26204,6 +26204,44 @@ ds3_bulk_object_list_response* ds3_convert_object_list(const ds3_contents_respon
2620426204
return obj_list;
2620526205
}
2620626206

26207+
ds3_bulk_object_list_response* ds3_convert_object_list_from_strings(const char** objects, uint64_t num_objects) {
26208+
size_t object_index;
26209+
ds3_bulk_object_list_response* obj_list = ds3_init_bulk_object_list();
26210+
26211+
GPtrArray* ds3_bulk_object_response_array = g_ptr_array_new();
26212+
26213+
for (object_index = 0; object_index < num_objects; object_index++) {
26214+
ds3_bulk_object_response* response = g_new0(ds3_bulk_object_response, 1);
26215+
response->name = ds3_str_init(objects[object_index]);
26216+
g_ptr_array_add(ds3_bulk_object_response_array, response);
26217+
}
26218+
26219+
obj_list->objects = (ds3_bulk_object_response**)ds3_bulk_object_response_array->pdata;
26220+
obj_list->num_objects = ds3_bulk_object_response_array->len;
26221+
g_ptr_array_free(ds3_bulk_object_response_array, FALSE);
26222+
26223+
return obj_list;
26224+
}
26225+
2620726226
ds3_bulk_object_list_response* ds3_init_bulk_object_list() {
2620826227
return g_new0(ds3_bulk_object_list_response, 1);
2620926228
}
26229+
26230+
ds3_bulk_object_list_response* ds3_init_bulk_object_list_with_size(size_t num_objects) {
26231+
size_t object_index;
26232+
ds3_bulk_object_list_response* obj_list = ds3_init_bulk_object_list();
26233+
26234+
GPtrArray* ds3_bulk_object_response_array = g_ptr_array_new();
26235+
26236+
for (object_index = 0; object_index < num_objects; object_index++) {
26237+
ds3_bulk_object_response* response = g_new0(ds3_bulk_object_response, 1);
26238+
g_ptr_array_add(ds3_bulk_object_response_array, response);
26239+
}
26240+
26241+
obj_list->objects = (ds3_bulk_object_response**)ds3_bulk_object_response_array->pdata;
26242+
obj_list->num_objects = ds3_bulk_object_response_array->len;
26243+
g_ptr_array_free(ds3_bulk_object_response_array, FALSE);
26244+
26245+
return obj_list;
26246+
}
26247+

src/ds3.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4978,7 +4978,17 @@ LIBRARY_API size_t ds3_read_from_fd(void* buffer, size_t size, size_t nmemb, voi
49784978
LIBRARY_API ds3_bulk_object_list_response* ds3_convert_file_list(const char** file_list, uint64_t num_files);
49794979
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);
49804980
LIBRARY_API ds3_bulk_object_list_response* ds3_convert_object_list(const ds3_contents_response** objects, uint64_t num_objects);
4981+
LIBRARY_API ds3_bulk_object_list_response* ds3_convert_object_list_from_strings(const char** objects, uint64_t num_objects);
4982+
/*
4983+
* Init a single ds3_bulk_object_list_response object containing no ds3_bulk_object_response objects
4984+
*/
49814985
LIBRARY_API ds3_bulk_object_list_response* ds3_init_bulk_object_list();
4986+
/*
4987+
* Init a single ds3_bulk_object_list_response object containing num_objects ds3_bulk_object_response objects.
4988+
* each ds3_bulk_object_response object will need its properties (name, bucket, etc) to be set with ds3_str_init("name"),
4989+
* and physical_placement will be null.
4990+
*/
4991+
LIBRARY_API ds3_bulk_object_list_response* ds3_init_bulk_object_list_with_size(size_t num_objects);
49824992

49834993

49844994
#ifdef __cplusplus

0 commit comments

Comments
 (0)