Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions src/ds3.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

10 changes: 10 additions & 0 deletions src/ds3.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down