diff options
| author | chenzizhan <[email protected]> | 2024-07-17 15:46:47 +0800 |
|---|---|---|
| committer | chenzizhan <[email protected]> | 2024-07-17 15:46:47 +0800 |
| commit | 8ce45ff4f96186c5d9e0f3e82addd2085d7c8788 (patch) | |
| tree | ccd28d85c7024d2dd4474ae8e6b873adca74b5eb /src/fieldstat.c | |
| parent | dccb4ce1fd92b1f142383e585487af08831264d3 (diff) | |
cube set sampling
Diffstat (limited to 'src/fieldstat.c')
| -rw-r--r-- | src/fieldstat.c | 46 |
1 files changed, 21 insertions, 25 deletions
diff --git a/src/fieldstat.c b/src/fieldstat.c index 4f4582b..002d754 100644 --- a/src/fieldstat.c +++ b/src/fieldstat.c @@ -48,7 +48,7 @@ void fieldstat_reset(struct fieldstat *instance) cube_manager_reset(instance->cube_manager); } -int fieldstat_destroy_cube(struct fieldstat *instance, int cube_id) +int fieldstat_cube_destroy(struct fieldstat *instance, int cube_id) { struct cube *cube = cube_manager_get_cube_by_id(instance->cube_manager, cube_id); if (cube == NULL) { @@ -76,7 +76,24 @@ void fieldstat_free_tag_array(struct field *fields, size_t n_tags) free(fields); } -int fieldstat_create_cube(struct fieldstat *instance, const struct field *cube_dimensions, size_t n_dimension, enum sampling_mode mode, size_t max_n_cell) +// cppcheck-suppress [constParameterPointer, unmatchedSuppression] +int fieldstat_cube_set_sampling(struct fieldstat *instance, int cube_id, enum sampling_mode mode, int max_n_cell, int primary_metric_id) { + if (max_n_cell <= 0) { + if (mode != SAMPLING_MODE_COMPREHENSIVE) { + return FS_ERR_INVALID_PARAM; + } + max_n_cell = INT32_MAX; + } + + struct cube *cube = cube_manager_get_cube_by_id(instance->cube_manager, cube_id); + if (cube == NULL) { + return FS_ERR_INVALID_CUBE_ID; + } + + return cube_set_sampling_mode(cube, mode, max_n_cell, primary_metric_id); +} + +int fieldstat_cube_create(struct fieldstat *instance, const struct field *cube_dimensions, size_t n_dimension) { if (instance == NULL) { return FS_ERR_NULL_HANDLER; @@ -86,14 +103,8 @@ int fieldstat_create_cube(struct fieldstat *instance, const struct field *cube_d cube_dimensions = NULL; n_dimension = 0; } - if (mode == SAMPLING_MODE_TOPK && max_n_cell == 0) { - return FS_ERR_INVALID_PARAM; - } - if (max_n_cell == 0) { - max_n_cell = INT32_MAX; - } - - struct cube *cube = cube_new(cube_dimensions, n_dimension, mode, max_n_cell); + + struct cube *cube = cube_new(cube_dimensions, n_dimension); int ret = cube_manager_add(instance->cube_manager, cube); if (ret < 0) { cube_free(cube); @@ -103,21 +114,6 @@ int fieldstat_create_cube(struct fieldstat *instance, const struct field *cube_d return ret; //ret is the cube_id } -// cppcheck-suppress [constParameterPointer, unmatchedSuppression] -int fieldstat_cube_set_primary_metric(struct fieldstat *instance, int cube_id, int metric_id) -{ - if (instance == NULL) { - return FS_ERR_NULL_HANDLER; - } - - struct cube *cube = cube_manager_get_cube_by_id(instance->cube_manager, cube_id); - if (cube == NULL) { - return FS_ERR_INVALID_CUBE_ID; - } - - return cube_set_primary_metric(cube, metric_id); -} - /* -------------------------------------------------------------------------- */ /* metric register */ /* -------------------------------------------------------------------------- */ |
