diff options
Diffstat (limited to 'src/cells/spread_sketch.h')
| -rw-r--r-- | src/cells/spread_sketch.h | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/cells/spread_sketch.h b/src/cells/spread_sketch.h index 9717238..930de4f 100644 --- a/src/cells/spread_sketch.h +++ b/src/cells/spread_sketch.h @@ -12,14 +12,15 @@ extern "C"{ struct spread_sketch; -// spread sketch alway store values more than expected_query_num,expected_query_num is a hint to set spread sketch parameters properly -struct spread_sketch *spread_sketch_new(int expected_query_num); + +struct spread_sketch *spread_sketch_new(int depth, int width, unsigned char precision, int time_window_ms, struct timeval now); + void spread_sketch_free(struct spread_sketch *ss); void spread_sketch_reset(struct spread_sketch *ss); -int spread_sketch_add(struct spread_sketch *ss, const char *key, size_t key_length, uint64_t item_hash, void *arg); +int spread_sketch_add(struct spread_sketch *ss, const char *key, size_t key_length, uint64_t item_hash, void *arg, struct timeval now); void spread_sketch_set_exdata_schema(struct spread_sketch *ss, exdata_new_cb new_fn, exdata_free_cb free_fn, exdata_merge_cb merge_fn, exdata_reset_cb reset_fn, exdata_copy_cb copy_fn); void *spread_sketch_get0_exdata(const struct spread_sketch *ss, const char *key, size_t key_len); @@ -28,11 +29,19 @@ void *spread_sketch_get0_exdata(const struct spread_sketch *ss, const char *key, int spread_sketch_get_count(const struct spread_sketch *ss); size_t spread_sketch_list(const struct spread_sketch *ss, void **exdatas, size_t n_exdatas); +double spread_sketch_query(const struct spread_sketch *ss, const char *key, size_t key_length, struct timeval now); void spread_sketch_merge(struct spread_sketch *dest, const struct spread_sketch *src); struct spread_sketch *spread_sketch_copy(const struct spread_sketch *src); +void spread_sketch_get_parameter(const struct spread_sketch *ss, int *depth_out, int *width_out, unsigned char *precision_out, int *time_window_ms_out); +/* +// spread sketch alway store values more than expected_query_num,expected_query_num is a hint to set spread sketch parameters properly +*/ +void spread_sketch_get_parameter_recommendation(int expected_super_spreader_number, int *depth_out, int *width_out, unsigned char *precision_out); + + // for test // void spread_sketch_one_point_query(const struct spread_sketch *ss, const char *key, size_t key_len, int *level_out, void **exdata_out); |
