1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
package fake
// #cgo CPPFLAGS: -DHAVE_CONFIG_H
// #cgo LDFLAGS: -ldl
// #include <stdlib.h>
// #include <stdio.h>
// #include "plugin.h"
//
// typedef struct {
// const char *name;
// plugin_write_cb callback;
// user_data_t user_data;
// } write_callback_t;
// static write_callback_t *write_callbacks = NULL;
// static size_t write_callbacks_num = 0;
//
// int plugin_register_write(const char *name, plugin_write_cb callback,
// user_data_t const *user_data) {
// write_callback_t *ptr = realloc(
// write_callbacks, (write_callbacks_num + 1) * sizeof(*write_callbacks));
// if (ptr == NULL) {
// return ENOMEM;
// }
// write_callbacks = ptr;
// write_callbacks[write_callbacks_num] = (write_callback_t){
// .name = name,
// .callback = callback,
// .user_data = *user_data,
// };
// write_callbacks_num++;
//
// return 0;
// }
//
// int plugin_dispatch_values(value_list_t const *vl) {
// data_set_t *ds = &(data_set_t){
// .ds_num = 1,
// .ds =
// &(data_source_t){
// .name = "value",
// .min = 0,
// .max = NAN,
// },
// };
//
// if (strcmp("derive", vl->type) == 0) {
// strncpy(ds->type, vl->type, sizeof(ds->type));
// ds->ds[0].type = DS_TYPE_DERIVE;
// } else if (strcmp("gauge", vl->type) == 0) {
// strncpy(ds->type, vl->type, sizeof(ds->type));
// ds->ds[0].type = DS_TYPE_GAUGE;
// } else if (strcmp("counter", vl->type) == 0) {
// strncpy(ds->type, vl->type, sizeof(ds->type));
// ds->ds[0].type = DS_TYPE_COUNTER;
// } else {
// errno = EINVAL;
// return errno;
// }
//
// int ret = 0;
// for (size_t i = 0; i < write_callbacks_num; i++) {
// int err =
// write_callbacks[i].callback(ds, vl, &write_callbacks[i].user_data);
// if (err != 0) {
// ret = err;
// }
// }
//
// return ret;
// }
//
// void reset_write(void) {
// for (size_t i = 0; i < write_callbacks_num; i++) {
// user_data_t *ud = &write_callbacks[i].user_data;
// if (ud->free_func == NULL) {
// continue;
// }
// ud->free_func(ud->data);
// ud->data = NULL;
// }
// free(write_callbacks);
// write_callbacks = NULL;
// write_callbacks_num = 0;
// }
import "C"
|