diff options
Diffstat (limited to 'database/storage_engine.h')
-rw-r--r-- | database/storage_engine.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/database/storage_engine.h b/database/storage_engine.h new file mode 100644 index 00000000..0aa70d09 --- /dev/null +++ b/database/storage_engine.h @@ -0,0 +1,30 @@ +// SPDX-License-Identifier: GPL-3.0-or-later + +#ifndef NETDATA_STORAGEENGINEAPI_H +#define NETDATA_STORAGEENGINEAPI_H + +#include "rrd.h" + +typedef struct storage_engine STORAGE_ENGINE; + +// ------------------------------------------------------------------------ +// function pointers for all APIs provided by a storge engine +typedef struct storage_engine_api { + struct rrddim_collect_ops collect_ops; + struct rrddim_query_ops query_ops; +} STORAGE_ENGINE_API; + +struct storage_engine { + RRD_MEMORY_MODE id; + const char* name; + STORAGE_ENGINE_API api; +}; + +extern STORAGE_ENGINE* storage_engine_get(RRD_MEMORY_MODE mmode); +extern STORAGE_ENGINE* storage_engine_find(const char* name); + +// Iterator over existing engines +extern STORAGE_ENGINE* storage_engine_foreach_init(); +extern STORAGE_ENGINE* storage_engine_foreach_next(STORAGE_ENGINE* it); + +#endif |