Skip to content

Commit

Permalink
util functions rename
Browse files Browse the repository at this point in the history
  • Loading branch information
waahm7 committed Dec 6, 2023
1 parent ffc0400 commit c7a6e77
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 17 deletions.
2 changes: 2 additions & 0 deletions include/aws/s3/private/s3_auto_ranged_get.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
10 changes: 7 additions & 3 deletions include/aws/s3/private/s3_util.h
Original file line number Diff line number Diff line change
Expand Up @@ -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'.
Expand All @@ -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,
Expand Down
7 changes: 4 additions & 3 deletions source/s3_auto_ranged_get.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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) {
Expand Down
9 changes: 6 additions & 3 deletions source/s3_util.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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,
Expand All @@ -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;
Expand Down
6 changes: 3 additions & 3 deletions tests/s3_data_plane_tests.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand Down
18 changes: 13 additions & 5 deletions tests/s3_util_tests.c
Original file line number Diff line number Diff line change
Expand Up @@ -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]);
Expand Down Expand Up @@ -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));
Expand All @@ -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));
Expand Down Expand Up @@ -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));
Expand All @@ -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));
Expand Down

0 comments on commit c7a6e77

Please sign in to comment.