-
Notifications
You must be signed in to change notification settings - Fork 158
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Move the hash_table impl structs to their own .h file (#295)
* move the hash_table impl structs to their own .h file
- Loading branch information
1 parent
806156f
commit fbe9359
Showing
2 changed files
with
43 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
#ifndef AWS_COMMON_PRIVATE_HASH_TABLE_IMPL_H | ||
#define AWS_COMMON_PRIVATE_HASH_TABLE_IMPL_H | ||
|
||
/* | ||
* Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"). | ||
* You may not use this file except in compliance with the License. | ||
* A copy of the License is located at | ||
* | ||
* http://aws.amazon.com/apache2.0 | ||
* | ||
* or in the "license" file accompanying this file. This file is distributed | ||
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either | ||
* express or implied. See the License for the specific language governing | ||
* permissions and limitations under the License. | ||
*/ | ||
|
||
#include <aws/common/hash_table.h> | ||
|
||
struct hash_table_entry { | ||
struct aws_hash_element element; | ||
uint64_t hash_code; /* hash code (0 signals empty) */ | ||
}; | ||
|
||
struct hash_table_state { | ||
aws_hash_fn *hash_fn; | ||
aws_hash_callback_eq_fn *equals_fn; | ||
aws_hash_callback_destroy_fn *destroy_key_fn; | ||
aws_hash_callback_destroy_fn *destroy_value_fn; | ||
struct aws_allocator *alloc; | ||
|
||
size_t size, entry_count; | ||
size_t max_load; | ||
/* We AND a hash value with mask to get the slot index */ | ||
size_t mask; | ||
double max_load_factor; | ||
/* actually variable length */ | ||
struct hash_table_entry slots[1]; | ||
}; | ||
|
||
#endif /* AWS_COMMON_PRIVATE_HASH_TABLE_IMPL_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters