From 313cd3523df7ab292d98f725a6affa55b5fd8f61 Mon Sep 17 00:00:00 2001 From: Kjell Ahlstedt Date: Wed, 22 Feb 2023 13:37:36 +0100 Subject: Glib::Dispatcher: Add const versions of emit() and operator()() and deprecate the non-const versions. Fixes #103 --- examples/thread/dispatcher2.cc | 2 +- glib/glibmm/dispatcher.cc | 14 ++++++++++++++ glib/glibmm/dispatcher.h | 15 +++++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/examples/thread/dispatcher2.cc b/examples/thread/dispatcher2.cc index 98011617..46b5c3d1 100644 --- a/examples/thread/dispatcher2.cc +++ b/examples/thread/dispatcher2.cc @@ -47,7 +47,7 @@ public: private: unsigned int time_; Glib::Dispatcher signal_increment_; - Glib::Dispatcher* signal_finished_ptr_; + const Glib::Dispatcher* signal_finished_ptr_; std::mutex startup_mutex_; std::condition_variable startup_cond_; diff --git a/glib/glibmm/dispatcher.cc b/glib/glibmm/dispatcher.cc index 083f948e..dd7dff8d 100644 --- a/glib/glibmm/dispatcher.cc +++ b/glib/glibmm/dispatcher.cc @@ -498,6 +498,7 @@ Dispatcher::~Dispatcher() noexcept DispatchNotifier::unreference_instance(impl_->notifier_, impl_); } +#ifndef GLIBMM_DISABLE_DEPRECATED void Dispatcher::emit() { @@ -509,6 +510,19 @@ Dispatcher::operator()() { impl_->notifier_->send_notification(impl_); } +#endif // GLIBMM_DISABLE_DEPRECATED + +void +Dispatcher::emit() const +{ + impl_->notifier_->send_notification(impl_); +} + +void +Dispatcher::operator()() const +{ + impl_->notifier_->send_notification(impl_); +} sigc::connection Dispatcher::connect(const sigc::slot& slot) diff --git a/glib/glibmm/dispatcher.h b/glib/glibmm/dispatcher.h index 83bd24e9..b27da57b 100644 --- a/glib/glibmm/dispatcher.h +++ b/glib/glibmm/dispatcher.h @@ -80,8 +80,23 @@ public: explicit Dispatcher(const Glib::RefPtr& context); ~Dispatcher() noexcept; +#ifndef GLIBMM_DISABLE_DEPRECATED + /** Same as the const version. + * @deprecated 2.76: Use the const version instead. + */ void emit(); + /** Same as the const version. + * @deprecated 2.76: Use the const version instead. + */ void operator()(); +#endif // GLIBMM_DISABLE_DEPRECATED + + /** @newin{2,76} + */ + void emit() const; + /** @newin{2,76} + */ + void operator()() const; sigc::connection connect(const sigc::slot& slot); /** @newin{2,48} -- cgit v1.2.1