X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fust-registry-session.hpp;h=bfffe5b50c925b4ef53a7dd630accb4fa4799d6a;hb=28f23191dcbf047429d51950a337a57d7a3f866a;hp=cce7c5c1b7baef7958f80f10c0e9eef9ceca883c;hpb=3691d312bcf4dc2cc15f0ecb1f0e2fd2f34315b8;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/ust-registry-session.hpp b/src/bin/lttng-sessiond/ust-registry-session.hpp index cce7c5c1b..bfffe5b50 100644 --- a/src/bin/lttng-sessiond/ust-registry-session.hpp +++ b/src/bin/lttng-sessiond/ust-registry-session.hpp @@ -17,9 +17,10 @@ #include +#include + #include #include -#include #include #include @@ -36,31 +37,39 @@ void locked_registry_session_release(registry_session *session); class registry_session : public lttng::sessiond::trace::trace_class { public: - using locked_ptr = std::unique_ptr:: - deleter>; + using locked_ptr = + std::unique_ptr::deleter>; - virtual lttng_buffer_type get_buffering_scheme() const noexcept = 0; + virtual lttng_buffer_type buffering_scheme() const noexcept = 0; locked_ptr lock() noexcept; void add_channel(uint64_t channel_key); /* A channel is protected by its parent registry session's lock. */ - lttng::sessiond::ust::registry_channel& get_channel(uint64_t channel_key) const; + lttng::sessiond::ust::registry_channel& channel(uint64_t channel_key) const; void remove_channel(uint64_t channel_key, bool notify); void create_or_find_enum(int session_objd, - const char *enum_name, - struct lttng_ust_ctl_enum_entry *raw_entries, - size_t nr_entries, - uint64_t *enum_id); - registry_enum::const_rcu_protected_reference get_enumeration( - const char *enum_name, uint64_t enum_id) const; + const char *enum_name, + struct lttng_ust_ctl_enum_entry *raw_entries, + size_t nr_entries, + uint64_t *enum_id); + registry_enum::const_rcu_protected_reference enumeration(const char *enum_name, + uint64_t enum_id) const; void regenerate_metadata(); - virtual ~registry_session(); + + ~registry_session() override; + registry_session(const registry_session&) = delete; + registry_session(registry_session&&) = delete; + registry_session& operator=(registry_session&&) = delete; + registry_session& operator=(const registry_session&) = delete; + + const lttng::sessiond::trace::type *packet_header() const noexcept override; /* * With multiple writers and readers, use this lock to access @@ -95,16 +104,14 @@ public: protected: /* Prevent instanciation of this base class. */ registry_session(const struct lttng::sessiond::trace::abi& abi, - unsigned int app_tracer_version_major, - unsigned int app_tracer_version_minor, - const char *root_shm_path, - const char *shm_path, - uid_t euid, - gid_t egid, - uint64_t tracing_id); - virtual void _visit_environment( - lttng::sessiond::trace::trace_class_visitor& trace_class_visitor) - const override; + unsigned int app_tracer_version_major, + unsigned int app_tracer_version_minor, + const char *root_shm_path, + const char *shm_path, + uid_t euid, + gid_t egid, + uint64_t tracing_id); + void accept(trace::trace_class_environment_visitor& environment_visitor) const override; void _generate_metadata(); private: @@ -114,13 +121,12 @@ private: void _reset_metadata(); void _destroy_enum(registry_enum *reg_enum) noexcept; registry_enum *_lookup_enum(const registry_enum *target_enum) const; + lttng::sessiond::trace::type::cuptr _create_packet_header() const; - virtual void _accept_on_clock_classes( - lttng::sessiond::trace::trace_class_visitor& trace_class_visitor) - const override final; - virtual void _accept_on_stream_classes( - lttng::sessiond::trace::trace_class_visitor& trace_class_visitor) - const override final; + void _accept_on_clock_classes( + lttng::sessiond::trace::trace_class_visitor& trace_class_visitor) const final; + void _accept_on_stream_classes( + lttng::sessiond::trace::trace_class_visitor& trace_class_visitor) const final; /* Next channel ID available for a newly registered channel. */ uint32_t _next_channel_id = 0; @@ -191,8 +197,9 @@ private: /* The id of the parent session. */ const ltt_session::id_t _tracing_id; - lttng::sessiond::ust::clock_class _clock; + lttng::sessiond::ust::clock_class::cuptr _clock; const lttng::sessiond::trace::trace_class_visitor::cuptr _metadata_generating_visitor; + lttng::sessiond::trace::type::cuptr _packet_header; }; } /* namespace ust */