diff options
| author | Marco Trevisan (Treviño) <mail@3v1n0.net> | 2017-07-12 18:56:01 +0200 | 
|---|---|---|
| committer | Marco Trevisan (Treviño) <mail@3v1n0.net> | 2017-07-12 18:56:01 +0200 | 
| commit | d3260165470b21c4a15226108e72507b5b46ecdb (patch) | |
| tree | 8cc7ace161d23372304ebb9b230f04ac15c26dcf | |
| parent | e9b4d8bfe29f2715609d2b148591f36757988253 (diff) | |
GLibSignal: add Block/Unblock calls to SignalManager
(bzr r4245.2.5)
| -rw-r--r-- | UnityCore/GLibSignal.cpp | 14 | ||||
| -rw-r--r-- | UnityCore/GLibSignal.h | 3 | 
2 files changed, 17 insertions, 0 deletions
| diff --git a/UnityCore/GLibSignal.cpp b/UnityCore/GLibSignal.cpp index 447785a12..0a155aede 100644 --- a/UnityCore/GLibSignal.cpp +++ b/UnityCore/GLibSignal.cpp @@ -152,6 +152,20 @@ void SignalManager::OnObjectDestroyed(SignalManager* self, GObject* old_obj)  self->ForeachMatchedSignal(nullptr, "", nullptr, /*erase_after*/ true);  } +bool SignalManager::Block(void* object, std::string const& signal_name) +{ + return ForeachMatchedSignal(object, signal_name, [this] (SignalBase::Ptr const& signal) { + signal->Block(); + }); +} + +bool SignalManager::Unblock(void* object, std::string const& signal_name) +{ + return ForeachMatchedSignal(object, signal_name, [this] (SignalBase::Ptr const& signal) { + signal->Unblock(); + }); +} +  bool SignalManager::Disconnect(void* object, std::string const& signal_name)  {  return ForeachMatchedSignal(object, signal_name, [this] (SignalBase::Ptr const& signal) { diff --git a/UnityCore/GLibSignal.h b/UnityCore/GLibSignal.h index fe78853a8..d60ebc249 100644 --- a/UnityCore/GLibSignal.h +++ b/UnityCore/GLibSignal.h @@ -94,6 +94,9 @@ public:  template <typename R, typename G, typename... Ts>  SignalBase::Ptr Add(G object, std::string const& signal_name, typename Signal<R, G, Ts...>::SignalCallback const&); + bool Block(void* object, std::string const& signal_name = ""); + bool Unblock(void* object, std::string const& signal_name = ""); +  bool Disconnect(void* object, std::string const& signal_name = "");  private: | 
