diff options
author | Jon Atack <jon@atack.com> | 2022-05-03 18:34:31 +0200 |
---|---|---|
committer | Jon Atack <jon@atack.com> | 2022-05-09 18:33:32 +0200 |
commit | 23854f84024c292164ce49b3fefee2a9b4fe0831 (patch) | |
tree | 85357b78c5d14e16cca00cd25f8e1063e3f9d67f /src | |
parent | 1ad5d5088d69939b0551de31d6c33c03153697c5 (diff) | |
download | bitcoin-23854f84024c292164ce49b3fefee2a9b4fe0831.tar.xz |
refactor: make MainSignalsInstance() a class
and use Doxygen documentation for it, per our developer notes.
Context:
MainSignalsInstance was created in 3a19fed9db5 and originally was a struct
collection of boost::signals methods moved to validationinterface.cpp, in order
to no longer need to include boost/signals in validationinterface.h.
MainSignalsInstance then evolved in d6815a23131 to remove boost/signals2 and became class-like.
[C.8: Use class rather than struct if any member is
non-public](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rc-class)
[C.2: Use class if the class has an invariant; use struct if the data members can vary
independently](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#c2-use-class-if-the-class-has-an-invariant-use-struct-if-the-data-members-can-vary-independently)
A class also has the advantage of default private access, as opposed to public for a struct.
Diffstat (limited to 'src')
-rw-r--r-- | src/validationinterface.cpp | 18 | ||||
-rw-r--r-- | src/validationinterface.h | 2 |
2 files changed, 11 insertions, 9 deletions
diff --git a/src/validationinterface.cpp b/src/validationinterface.cpp index edc4633c01..0cb48a19cb 100644 --- a/src/validationinterface.cpp +++ b/src/validationinterface.cpp @@ -16,14 +16,16 @@ #include <unordered_map> #include <utility> -//! The MainSignalsInstance manages a list of shared_ptr<CValidationInterface> -//! callbacks. -//! -//! A std::unordered_map is used to track what callbacks are currently -//! registered, and a std::list is to used to store the callbacks that are -//! currently registered as well as any callbacks that are just unregistered -//! and about to be deleted when they are done executing. -struct MainSignalsInstance { +/** + * MainSignalsInstance manages a list of shared_ptr<CValidationInterface> callbacks. + * + * A std::unordered_map is used to track what callbacks are currently + * registered, and a std::list is used to store the callbacks that are + * currently registered as well as any callbacks that are just unregistered + * and about to be deleted when they are done executing. + */ +class MainSignalsInstance +{ private: Mutex m_mutex; //! List entries consist of a callback pointer and reference count. The diff --git a/src/validationinterface.h b/src/validationinterface.h index ac62f8b467..6b38655ff1 100644 --- a/src/validationinterface.h +++ b/src/validationinterface.h @@ -177,7 +177,7 @@ protected: friend class ValidationInterfaceTest; }; -struct MainSignalsInstance; +class MainSignalsInstance; class CMainSignals { private: std::unique_ptr<MainSignalsInstance> m_internals; |