CFLAGS=-Wall -O2 -g -fPIC
RRDD_OBJS= main.o process.o rrdtool.o parser.o built_in_parsers.o string.o \
- debug.o config.o onewire_parser.o plugin_manager.o
+ debug.o config.o plugin_manager.o
-ALL_OBJS = $(RRDD_OBJS)
+ONEWIRE_PARSER_OBJS = onewire_parser.o
+
+ALL_OBJS = $(RRDD_OBJS) $(ONEWIRE_PLUGIN_OBJS)
ALL_DEBS = $(patsubst %.o,.%.o.d,$(ALL_OBJS))
ifeq ($(V),1)
all: rrdd
rrdd: $(RRDD_OBJS)
- $(QUIET_LINK)$(CC) -o rrdd $(RRDD_OBJS) -lconfig -lownet -ldl -rdynamic
+ $(QUIET_LINK)$(CC) -o rrdd $(RRDD_OBJS) -lconfig -ldl -rdynamic
+
+onewire_parser.so: $(ONEWIRE_PARSER_OBJS)
+ $(QUIET_LINK)$(CC) $(CFLAGS) -lownet -shared -fPIC $< -o $@
clean:
rm -vf rrdd *~ *.o .*.d *.so
.name = "netstats",
.parse = netstats_parser,
},
- {
- .name = "onewire",
- .parse = onewire_parser,
- },
};
int register_built_in_parsers(void)
int register_built_in_parsers(void);
-int onewire_parser(char *rrd_data, const char **parser_data);
-
#endif
#include "debug.h"
#include "string.h"
#include "utils.h"
+#include "plugin.h"
-int parse_opts(const char *str, char *ow_path, size_t pathlen, double *offset)
+static int parse_opts(const char *str, char *ow_path, size_t pathlen, double *offset)
{
char *endptr;
const char *start_str = str;
return 0;
}
-int onewire_parser(char *rrd_data, const char **parser_data)
+static int onewire_parser(char *rrd_data, const char **parser_data)
{
OWNET_HANDLE h;
const char *server_addr;
OWNET_finish();
return 0;
}
+
+static struct parser_info onewire_parser_info = {
+ .name = "onewire",
+ .parse = onewire_parser,
+};
+
+static int init_onewire_parser(void)
+{
+ return register_parser(&onewire_parser_info);
+}
+
+struct plugin_info plugin_info = {
+ .name = "onewire_parser",
+ .init = init_onewire_parser,
+};