#define LTTNG_UST_REGISTRY_CHANNEL_H
#include "stream-class.hpp"
+#include "trace-class.hpp"
#include <common/hashtable/hashtable.hpp>
#include <lttng/lttng.h>
-#include <urcu.h>
#include <functional>
+#include <urcu.h>
struct ust_app;
class registry_channel : public lttng::sessiond::trace::stream_class {
public:
using registered_listener_fn = std::function<void(const registry_channel&)>;
- using event_added_listener_fn = std::function<void(const registry_channel&, const registry_event &)>;
+ using event_added_listener_fn =
+ std::function<void(const registry_channel&, const registry_event&)>;
registry_channel(uint32_t channel_id,
- registered_listener_fn channel_registered_listener,
- event_added_listener_fn new_event_listener);
+ const lttng::sessiond::trace::abi& trace_abi,
+ std::string default_clock_class_name,
+ registered_listener_fn channel_registered_listener,
+ event_added_listener_fn new_event_listener);
void add_event(int session_objd,
- int channel_objd,
- std::string name,
- std::string signature,
- std::vector<lttng::sessiond::trace::field::cuptr> event_fields,
- int loglevel_value,
- nonstd::optional<std::string> model_emf_uri,
- lttng_buffer_type buffer_type,
- const ust_app& app,
- uint32_t& out_event_id);
- virtual ~registry_channel();
-
- virtual const lttng::sessiond::trace::type& get_context() const override final;
- void set_context(lttng::sessiond::trace::type::cuptr context);
+ int channel_objd,
+ std::string name,
+ std::string signature,
+ std::vector<lttng::sessiond::trace::field::cuptr> event_fields,
+ int loglevel_value,
+ nonstd::optional<std::string> model_emf_uri,
+ lttng_buffer_type buffer_type,
+ const ust_app& app,
+ uint32_t& out_event_id);
+ ~registry_channel() override;
+ registry_channel(const registry_channel&) = delete;
+ registry_channel(registry_channel&&) = delete;
+ registry_channel& operator=(registry_channel&&) = delete;
+ registry_channel& operator=(const registry_channel&) = delete;
+
+ const lttng::sessiond::trace::type *event_context() const final;
+ void event_context(lttng::sessiond::trace::type::cuptr context);
/* Channel was registered to at least one application. */
bool is_registered() const;
uint32_t _next_event_id;
private:
- virtual void _accept_on_event_classes(
- lttng::sessiond::trace::trace_class_visitor& trace_class_visitor) const override final;
+ void _accept_on_event_classes(
+ lttng::sessiond::trace::trace_class_visitor& trace_class_visitor) const final;
registered_listener_fn _is_registered_listener;
event_added_listener_fn _event_added_listener;