From 397e25f2b71347c7c83495fe5b25496ff3b02b75 Mon Sep 17 00:00:00 2001 From: Philip Schell Date: Sat, 19 Oct 2013 13:05:02 +0000 Subject: WinterSpeak: ticket:269 WinterSpeak now rewritten git-svn-id: http://svn.miranda-ng.org/main/trunk@6532 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/WinterSpeak/src/Subject.h | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 plugins/WinterSpeak/src/Subject.h (limited to 'plugins/WinterSpeak/src/Subject.h') diff --git a/plugins/WinterSpeak/src/Subject.h b/plugins/WinterSpeak/src/Subject.h new file mode 100644 index 0000000000..f4bba3b075 --- /dev/null +++ b/plugins/WinterSpeak/src/Subject.h @@ -0,0 +1,38 @@ +#pragma once + +#include "Observer.h" + +#include +class Subject +{ +public: + Subject(); + virtual ~Subject(); + + //-------------------------------------------------------------------------- + // Description : Notify all observers of a state change + //-------------------------------------------------------------------------- + void notify(); + + //-------------------------------------------------------------------------- + // Description : Attach an observer to the subject + // Parameters : observer - the observer + //-------------------------------------------------------------------------- + void attach(Observer &observer); + + //-------------------------------------------------------------------------- + // Description : Detach an observer from the subject + // Parameters : observer - the observer + //-------------------------------------------------------------------------- + void detach(const Observer &observer); + + private: + //-------------------------------------------------------------------------- + // Description : Disallow assignment operator and copy constructor + //-------------------------------------------------------------------------- + Subject(const Subject &rhs); + const Subject & operator=(const Subject &rhs); + + std::list m_observer_list; +}; + -- cgit v1.2.3