From c7a6e770481e9c2bdaedf7dffbc7d1365159c9a9 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Khan Date: Wed, 6 Dec 2023 10:49:05 -0800 Subject: [PATCH] util functions rename --- include/aws/s3/private/s3_auto_ranged_get.h | 2 ++ include/aws/s3/private/s3_util.h | 10 +++++++--- source/s3_auto_ranged_get.c | 7 ++++--- source/s3_util.c | 9 ++++++--- tests/s3_data_plane_tests.c | 6 +++--- tests/s3_util_tests.c | 18 +++++++++++++----- 6 files changed, 35 insertions(+), 17 deletions(-) diff --git a/include/aws/s3/private/s3_auto_ranged_get.h b/include/aws/s3/private/s3_auto_ranged_get.h index 1499b36d9..a8cab23a1 100644 --- a/include/aws/s3/private/s3_auto_ranged_get.h +++ b/include/aws/s3/private/s3_auto_ranged_get.h @@ -31,6 +31,8 @@ struct aws_s3_auto_ranged_get { * So if begin=0 and end=0 then 1 byte is being downloaded. */ uint64_t object_range_end; + uint64_t first_part_size; + /* The total number of parts that are being used in downloading the object range. Note that "part" here * currently refers to a range-get, and does not require a "part" on the service side. */ uint32_t total_num_parts; diff --git a/include/aws/s3/private/s3_util.h b/include/aws/s3/private/s3_util.h index 495c56062..1e8b74996 100644 --- a/include/aws/s3/private/s3_util.h +++ b/include/aws/s3/private/s3_util.h @@ -255,7 +255,10 @@ int aws_s3_parse_content_length_response_header( * part-ranges on part_size. (ie: if object_range_start is not evenly divisible by part_size, it is considered in the * middle of a contiguous part, and that first part will be smaller than part_size.) */ AWS_S3_API -uint32_t aws_s3_get_num_parts(size_t part_size, uint64_t object_range_start, uint64_t object_range_end); +uint32_t aws_s3_calculate_auto_range_get_num_parts( + size_t part_size, + uint64_t object_range_start, + uint64_t object_range_end); /** * Calculates the optimal part size and num parts given the 'content_length' and 'client_part_size'. @@ -273,9 +276,10 @@ int aws_s3_calculate_optimal_mpu_part_size_and_num_parts( /* Calculates the part range for a part given overall object range, size of each part, and the part's number. Note: part * numbers begin at one. This takes into account aligning part-ranges on part_size. Intended to be used in conjunction - * with aws_s3_get_num_parts. part_number should be less than or equal to the result of aws_s3_get_num_parts. */ + * with aws_s3_calculate_auto_range_get_num_parts. part_number should be less than or equal to the result of + * aws_s3_calculate_auto_range_get_num_parts. */ AWS_S3_API -void aws_s3_get_part_range( +void aws_s3_calculate_auto_range_get_part_range( uint64_t object_range_start, uint64_t object_range_end, size_t part_size, diff --git a/source/s3_auto_ranged_get.c b/source/s3_auto_ranged_get.c index 3ba2ad3d1..47d48e86f 100644 --- a/source/s3_auto_ranged_get.c +++ b/source/s3_auto_ranged_get.c @@ -90,6 +90,7 @@ struct aws_s3_meta_request *aws_s3_meta_request_auto_ranged_get_new( auto_ranged_get->initial_message_has_range_header = aws_http_headers_has(headers, g_range_header_name); auto_ranged_get->initial_message_has_if_match_header = aws_http_headers_has(headers, g_if_match_header_name); + auto_ranged_get->synced_data.first_part_size = auto_ranged_get->base.part_size; AWS_LOGF_DEBUG( AWS_LS_S3_META_REQUEST, "id=%p Created new Auto-Ranged Get Meta Request.", (void *)&auto_ranged_get->base); @@ -276,7 +277,7 @@ static bool s_s3_auto_ranged_get_update( request->ticket = ticket; - aws_s3_get_part_range( + aws_s3_calculate_auto_range_get_part_range( auto_ranged_get->synced_data.object_range_start, auto_ranged_get->synced_data.object_range_end, meta_request->part_size, @@ -743,8 +744,8 @@ static void s_s3_auto_ranged_get_request_finished( auto_ranged_get->synced_data.object_range_empty = (total_content_length == 0); auto_ranged_get->synced_data.object_range_start = object_range_start; auto_ranged_get->synced_data.object_range_end = object_range_end; - auto_ranged_get->synced_data.total_num_parts = - aws_s3_get_num_parts(meta_request->part_size, object_range_start, object_range_end); + auto_ranged_get->synced_data.total_num_parts = aws_s3_calculate_auto_range_get_num_parts( + meta_request->part_size, object_range_start, object_range_end); } switch (request->request_tag) { diff --git a/source/s3_util.c b/source/s3_util.c index d7b70f439..9ef024493 100644 --- a/source/s3_util.c +++ b/source/s3_util.c @@ -485,7 +485,10 @@ int aws_s3_parse_content_length_response_header( return result; } -uint32_t aws_s3_get_num_parts(size_t part_size, uint64_t object_range_start, uint64_t object_range_end) { +uint32_t aws_s3_calculate_auto_range_get_num_parts( + size_t part_size, + uint64_t object_range_start, + uint64_t object_range_end) { uint32_t num_parts = 1; uint64_t first_part_size = part_size; @@ -511,7 +514,7 @@ uint32_t aws_s3_get_num_parts(size_t part_size, uint64_t object_range_start, uin return num_parts; } -void aws_s3_get_part_range( +void aws_s3_calculate_auto_range_get_part_range( uint64_t object_range_start, uint64_t object_range_end, size_t part_size, @@ -526,7 +529,7 @@ void aws_s3_get_part_range( const uint32_t part_index = part_number - 1; /* Part index is assumed to be in a valid range. */ - AWS_ASSERT(part_index < aws_s3_get_num_parts(part_size, object_range_start, object_range_end)); + AWS_ASSERT(part_index < aws_s3_calculate_auto_range_get_num_parts(part_size, object_range_start, object_range_end)); uint64_t part_size_uint64 = (uint64_t)part_size; uint64_t first_part_size = part_size_uint64; diff --git a/tests/s3_data_plane_tests.c b/tests/s3_data_plane_tests.c index 3b7f9d6d2..6955fc5c6 100644 --- a/tests/s3_data_plane_tests.c +++ b/tests/s3_data_plane_tests.c @@ -499,7 +499,7 @@ static int s_test_s3_meta_request_body_streaming(struct aws_allocator *allocator struct aws_s3_request *request = aws_s3_request_new( meta_request, 0 /*request_tag*/, AWS_S3_REQUEST_TYPE_GET_OBJECT, part_number, 0 /*flags*/); - aws_s3_get_part_range( + aws_s3_calculate_auto_range_get_part_range( 0ULL, total_object_size - 1, (uint64_t)request_response_body_size, @@ -536,7 +536,7 @@ static int s_test_s3_meta_request_body_streaming(struct aws_allocator *allocator struct aws_s3_request *request = aws_s3_request_new( meta_request, 0 /*request_tag*/, AWS_S3_REQUEST_TYPE_GET_OBJECT, part_number, 0 /*flags*/); - aws_s3_get_part_range( + aws_s3_calculate_auto_range_get_part_range( 0ULL, total_object_size - 1, (uint64_t)request_response_body_size, @@ -565,7 +565,7 @@ static int s_test_s3_meta_request_body_streaming(struct aws_allocator *allocator struct aws_s3_request *request = aws_s3_request_new( meta_request, 0 /*request_tag*/, AWS_S3_REQUEST_TYPE_GET_OBJECT, part_range1_start, 0 /*flags*/); - aws_s3_get_part_range( + aws_s3_calculate_auto_range_get_part_range( 0ULL, total_object_size - 1, (uint64_t)request_response_body_size, diff --git a/tests/s3_util_tests.c b/tests/s3_util_tests.c index 433dd32f2..bd80ec0ac 100644 --- a/tests/s3_util_tests.c +++ b/tests/s3_util_tests.c @@ -264,7 +264,7 @@ static int s_validate_part_ranges( uint64_t part_range_start = 0ULL; uint64_t part_range_end = 0ULL; - aws_s3_get_part_range( + aws_s3_calculate_auto_range_get_part_range( object_range_start, object_range_end, part_size, i + 1, &part_range_start, &part_range_end); ASSERT_TRUE(part_range_start == part_ranges[i * 2]); @@ -296,7 +296,9 @@ static int s_test_s3_get_num_parts_and_get_part_range(struct aws_allocator *allo (uint64_t)part_size * 2ULL - 1ULL, }; - ASSERT_TRUE(aws_s3_get_num_parts(part_size, object_range_start, object_range_end) == expected_num_parts); + ASSERT_TRUE( + aws_s3_calculate_auto_range_get_num_parts(part_size, object_range_start, object_range_end) == + expected_num_parts); ASSERT_SUCCESS( s_validate_part_ranges(object_range_start, object_range_end, part_size, expected_num_parts, part_ranges)); @@ -320,7 +322,9 @@ static int s_test_s3_get_num_parts_and_get_part_range(struct aws_allocator *allo object_range_start + half_part_size + (uint64_t)part_size * 2ULL - 1ULL, }; - ASSERT_TRUE(aws_s3_get_num_parts(part_size, object_range_start, object_range_end) == expected_num_parts); + ASSERT_TRUE( + aws_s3_calculate_auto_range_get_num_parts(part_size, object_range_start, object_range_end) == + expected_num_parts); ASSERT_SUCCESS( s_validate_part_ranges(object_range_start, object_range_end, part_size, expected_num_parts, part_ranges)); @@ -348,7 +352,9 @@ static int s_test_s3_get_num_parts_and_get_part_range(struct aws_allocator *allo object_range_start + half_part_size + (uint64_t)part_size * 2ULL + half_part_size - 1ULL, }; - ASSERT_TRUE(aws_s3_get_num_parts(part_size, object_range_start, object_range_end) == expected_num_parts); + ASSERT_TRUE( + aws_s3_calculate_auto_range_get_num_parts(part_size, object_range_start, object_range_end) == + expected_num_parts); ASSERT_SUCCESS( s_validate_part_ranges(object_range_start, object_range_end, part_size, expected_num_parts, part_ranges)); @@ -362,7 +368,9 @@ static int s_test_s3_get_num_parts_and_get_part_range(struct aws_allocator *allo const uint64_t part_ranges[] = {8, 8}; - ASSERT_TRUE(aws_s3_get_num_parts(part_size, object_range_start, object_range_end) == expected_num_parts); + ASSERT_TRUE( + aws_s3_calculate_auto_range_get_num_parts(part_size, object_range_start, object_range_end) == + expected_num_parts); ASSERT_SUCCESS( s_validate_part_ranges(object_range_start, object_range_end, part_size, expected_num_parts, part_ranges));