#pragma once
#include "CivInpSubject.h"
#include "pandaInpCore.h"

#include <list>

class CivInpSubject;

/**
*	inp导入观察者抽象类
*/
class CivInpObserver
{
public:
	virtual ~CivInpObserver();

	/**
	* @brief 状态更新，具体子类实现
	* @param [sub] 给观察者
	*/
	virtual void update(CivInpSubject* sub) = 0;

	/**
	 * @brief 登记被观察的对象
	 * @param [subject] 具体的被观察者
	 */
	void subject(CivInpSubject* subject);

protected:
	CivInpSubject* mSubject;
};
