Pacman Torben Petré
Loading...
Searching...
No Matches
Observer.h
Go to the documentation of this file.
1#ifndef OBSERVER_H
2#define OBSERVER_H
3
4#include <memory>
5#include <list>
6
7
11
12namespace logic {
13
15
16 class Observer {
17 public:
18 virtual ~Observer() = default;
19
28 virtual void update(Events event) = 0;
29 };
30
31
32 class Subject {
33 public:
34 virtual ~Subject() = default;
35
40 void attach(const std::shared_ptr<Observer> &observer);
41
46 void notify(Events event);
47
48 protected:
49 std::list<std::weak_ptr<Observer>> observers;
50 };
51}
52
53
54
55#endif //OBSERVER_H
Definition Observer.h:16
virtual void update(Events event)=0
Update method that is called by the observed Subjects.
virtual ~Observer()=default
Definition Observer.h:32
void attach(const std::shared_ptr< Observer > &observer)
Attaches an observer to this Subject.
Definition Observer.cpp:6
std::list< std::weak_ptr< Observer > > observers
Definition Observer.h:49
void notify(Events event)
Call the Observer update function with the provided event.
Definition Observer.cpp:12
virtual ~Subject()=default
Definition Difficulty.h:6
Events
Definition Observer.h:14
@ DIRECTION_CHANGED
Definition Observer.h:14
@ ISMOVING_CHANGED
Definition Observer.h:14
@ GHOST_NORMAL
Definition Observer.h:14
@ DEATH
Definition Observer.h:14
@ COIN_EATEN
Definition Observer.h:14
@ NO_EVENT
Definition Observer.h:14
@ FRIGHTENED_FLASHING
Definition Observer.h:14
@ GHOST_EATEN
Definition Observer.h:14
@ LEVEL_COMPLETED
Definition Observer.h:14
@ GHOST_FRIGHTENED
Definition Observer.h:14
@ FRUIT_EATEN
Definition Observer.h:14
@ GAME_OVER
Definition Observer.h:14
@ SCORE_UPDATE
Definition Observer.h:14
@ RESPAWN
Definition Observer.h:14