#include <common/compat/socket.h>
#include <common/credentials.h>
+#include <common/payload.h>
#include <lttng/notification/channel-internal.h>
#include <lttng/ref-internal.h>
#include <stdbool.h>
struct rcu_head rcu_node;
};
+/*
+ * Facilities to carry the different notifications type in the action
+ * processing code path.
+ */
+struct lttng_event_notifier_notification {
+ uint64_t tracer_token;
+ enum lttng_domain_type type;
+};
+
struct notification_client_list_element {
struct notification_client *client;
struct cds_list_head node;
* buffers' "size" is set to contain the current
* message's complete payload.
*/
- struct lttng_dynamic_buffer buffer;
+ struct lttng_payload payload;
/* Bytes left to receive for the current message. */
size_t bytes_to_receive;
+ /* FDs left to receive for the current message. */
+ int fds_to_receive;
/* Type of the message being received. */
enum lttng_notification_channel_message_type msg_type;
/*
* misbehaving/malicious client.
*/
bool queued_command_reply;
- struct lttng_dynamic_buffer buffer;
+ struct lttng_payload payload;
} outbound;
} communication;
/* call_rcu delayed reclaim. */
notification_client_id id,
enum client_transmission_status transmission_status);
+LTTNG_HIDDEN
+struct lttng_event_notifier_notification *lttng_event_notifier_notification_create(
+ uint64_t tracer_token,
+ enum lttng_domain_type domain);
+
+LTTNG_HIDDEN
+void lttng_event_notifier_notification_destroy(
+ struct lttng_event_notifier_notification *event_notifier_notification);
+
#endif /* NOTIFICATION_THREAD_INTERNAL_H */