From 754310ef00a58f5615a190379b15756a067bde54 Mon Sep 17 00:00:00 2001 From: Green Sky Date: Fri, 25 Oct 2024 13:04:12 +0200 Subject: [PATCH] use sr --- src/auto_dirty.cpp | 27 ++++++++++++--------------- src/auto_dirty.hpp | 3 +-- src/main.cpp | 4 ++-- 3 files changed, 15 insertions(+), 19 deletions(-) diff --git a/src/auto_dirty.cpp b/src/auto_dirty.cpp index 5564716..43088f5 100644 --- a/src/auto_dirty.cpp +++ b/src/auto_dirty.cpp @@ -2,21 +2,18 @@ #include "./tox_client.hpp" -// TODO: add more events - -void AutoDirty::subscribe(void) { - _tc.subscribe(this, Tox_Event_Type::TOX_EVENT_SELF_CONNECTION_STATUS); - _tc.subscribe(this, Tox_Event_Type::TOX_EVENT_FRIEND_CONNECTION_STATUS); - _tc.subscribe(this, Tox_Event_Type::TOX_EVENT_FRIEND_REQUEST); - _tc.subscribe(this, Tox_Event_Type::TOX_EVENT_GROUP_INVITE); - _tc.subscribe(this, Tox_Event_Type::TOX_EVENT_GROUP_SELF_JOIN); - _tc.subscribe(this, Tox_Event_Type::TOX_EVENT_GROUP_PEER_JOIN); - _tc.subscribe(this, Tox_Event_Type::TOX_EVENT_GROUP_PEER_EXIT); - _tc.subscribe(this, Tox_Event_Type::TOX_EVENT_CONFERENCE_INVITE); -} - -AutoDirty::AutoDirty(ToxClient& tc) : _tc(tc) { - subscribe(); +AutoDirty::AutoDirty(ToxClient& tc) : _tc(tc), _tep_sr(_tc.newSubRef(this)) { + // TODO: add more events + _tep_sr + .subscribe(Tox_Event_Type::TOX_EVENT_SELF_CONNECTION_STATUS) + .subscribe(Tox_Event_Type::TOX_EVENT_FRIEND_CONNECTION_STATUS) + .subscribe(Tox_Event_Type::TOX_EVENT_FRIEND_REQUEST) + .subscribe(Tox_Event_Type::TOX_EVENT_GROUP_INVITE) + .subscribe(Tox_Event_Type::TOX_EVENT_GROUP_SELF_JOIN) + .subscribe(Tox_Event_Type::TOX_EVENT_GROUP_PEER_JOIN) + .subscribe(Tox_Event_Type::TOX_EVENT_GROUP_PEER_EXIT) + .subscribe(Tox_Event_Type::TOX_EVENT_CONFERENCE_INVITE) + ; } bool AutoDirty::onToxEvent(const Tox_Event_Self_Connection_Status*) { diff --git a/src/auto_dirty.hpp b/src/auto_dirty.hpp index 27409c0..95d2dfa 100644 --- a/src/auto_dirty.hpp +++ b/src/auto_dirty.hpp @@ -8,8 +8,7 @@ class ToxClient; // sets ToxClient dirty on some events class AutoDirty : public ToxEventI { ToxClient& _tc; - - void subscribe(void); // private + ToxEventProviderI::SubscriptionReference _tep_sr; public: AutoDirty(ToxClient& tc); diff --git a/src/main.cpp b/src/main.cpp index 2f4d344..ea78c68 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -205,11 +205,11 @@ int main(int argc, char** argv) { } - ToxEventLogger tel{std::cout}; // TODO: config // TODO: password? ToxClient tc{conf, conf.get_string("tox", "save_file_path").value(), ""}; - tel.subscribeAll(tc); + ToxEventLogger tel{tc, std::cout}; // TODO: config + tel.subscribeAll(); { // name stuff auto name = tc.toxSelfGetName(); if (name.empty()) {