| /* | |
| * Copyright (c) 2022 Oracle and/or its affiliates. | |
| * | |
| * This work is licensed under the terms of the GNU GPL, version 2. | |
| * See the COPYING file in the top-level directory. | |
| */ | |
| #ifndef STATS_H | |
| #define STATS_H | |
| #include "qapi/qapi-types-stats.h" | |
| typedef void StatRetrieveFunc(StatsResultList **result, StatsTarget target, | |
| strList *names, strList *targets, Error **errp); | |
| typedef void SchemaRetrieveFunc(StatsSchemaList **result, Error **errp); | |
| /* | |
| * Register callbacks for the QMP query-stats command. | |
| * | |
| * @provider: stats provider checked against QMP command arguments | |
| * @stats_fn: routine to query stats: | |
| * @schema_fn: routine to query stat schemas: | |
| */ | |
| void add_stats_callbacks(StatsProvider provider, | |
| StatRetrieveFunc *stats_fn, | |
| SchemaRetrieveFunc *schemas_fn); | |
| /* | |
| * Helper routines for adding stats entries to the results lists. | |
| */ | |
| void add_stats_entry(StatsResultList **, StatsProvider, const char *id, | |
| StatsList *stats_list); | |
| void add_stats_schema(StatsSchemaList **, StatsProvider, StatsTarget, | |
| StatsSchemaValueList *); | |
| /* | |
| * True if a string matches the filter passed to the stats_fn callback, | |
| * false otherwise. | |
| * | |
| * Note that an empty list means no filtering, i.e. all strings will | |
| * return true. | |
| */ | |
| bool apply_str_list_filter(const char *string, strList *list); | |
| #endif /* STATS_H */ |