return udev_ref(self->udev);
}
+td_client* td_daemon_get_client(td_daemon* self) {
+ return td_client_ref(self->client);
+}
+
td_sources* td_daemon_get_sources(td_daemon* self) {
if (self->sources)
return td_sources_ref(self->sources);
typedef struct td_daemon td_daemon;
#include "bus.h"
+#include "client.h"
#include "ctx.h"
#include "graphs.h"
#include "metrics.h"
sd_event* td_daemon_loop(td_daemon* self);
struct udev* td_daemon_get_udev(td_daemon* self);
+td_client* td_daemon_get_client(td_daemon* self);
td_sources* td_daemon_get_sources(td_daemon* self);
td_graphs* td_daemon_get_graphs(td_daemon* self);
return r;
}
+int td_source_create_request(td_source* self, td_request** request) {
+ td_client* client = NULL;
+ int r;
+
+ // Fetch the client
+ client = td_daemon_get_client(self->daemon);
+ if (!client)
+ return -errno;
+
+ // Create the request
+ r = td_request_create(request, self->ctx, client);
+ if (r < 0)
+ goto ERROR;
+
+ERROR:
+ if (client)
+ td_client_unref(client);
+
+ return r;
+}
+
#define td_source_path(source, object, path) \
__td_source_path(source, object, path, sizeof(path))
#include "daemon.h"
#include "metrics.h"
#include "netlink.h"
+#include "request.h"
#define MAX_DS 64
#define MAX_RRA 8
int td_source_run_command(td_source* self, const cap_value_t* caps, const char** argv,
td_command_success_callback callback, void* data);
+int td_source_create_request(td_source* self, td_request** request);
+
int td_source_parse_metrics(td_source* self, const char* object,
td_file* file, const td_metrics_parser* parser);