You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
371 B
26 lines
371 B
#ifndef SUBJECT_HPP
|
|
#define SUBJECT_HPP
|
|
|
|
#include <list>
|
|
|
|
class Observer;
|
|
|
|
class Subject
|
|
{
|
|
public:
|
|
|
|
virtual ~Subject();
|
|
|
|
/// @todo listen only to aspect?
|
|
virtual void attach( Observer* );
|
|
virtual void detach( Observer* );
|
|
virtual void notify();
|
|
|
|
private:
|
|
|
|
/// @todo list can be a priority queue
|
|
std::list< Observer* > m_observers;
|
|
|
|
};
|
|
|
|
#endif // SUBJECT_HPP
|