2015-04-23 16:07:22 +00:00
|
|
|
// Copyright (c) 2011-2015 The Cryptonote developers
|
|
|
|
// Distributed under the MIT/X11 software license, see the accompanying
|
|
|
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
2014-06-25 17:21:42 +00:00
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
2015-05-27 12:08:46 +00:00
|
|
|
#include "Common/ObserverManager.h"
|
2014-06-25 17:21:42 +00:00
|
|
|
|
|
|
|
namespace CryptoNote {
|
|
|
|
|
2015-04-06 16:13:07 +00:00
|
|
|
template <typename Observer, typename Base>
|
|
|
|
class IObservableImpl : public Base {
|
2014-06-25 17:21:42 +00:00
|
|
|
public:
|
2015-04-06 16:13:07 +00:00
|
|
|
|
|
|
|
virtual void addObserver(Observer* observer) override {
|
|
|
|
m_observerManager.add(observer);
|
|
|
|
}
|
|
|
|
|
|
|
|
virtual void removeObserver(Observer* observer) override {
|
|
|
|
m_observerManager.remove(observer);
|
|
|
|
}
|
|
|
|
|
|
|
|
protected:
|
2015-07-30 15:22:07 +00:00
|
|
|
Tools::ObserverManager<Observer> m_observerManager;
|
2014-06-25 17:21:42 +00:00
|
|
|
};
|
|
|
|
|
2015-04-06 16:13:07 +00:00
|
|
|
}
|