|
|
|
|
|
/**
|
|
|
|
|
|
* @file WObserver.h
|
|
|
|
|
|
* @brief <EFBFBD>۲<EFBFBD><EFBFBD>ߣ<EFBFBD><EFBFBD>۲<EFBFBD><EFBFBD><EFBFBD>ģʽ<EFBFBD><EFBFBD>
|
|
|
|
|
|
* @author ɳĮ<EFBFBD><EFBFBD>ѻ
|
|
|
|
|
|
* @time 2010-01-18
|
|
|
|
|
|
*/
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
namespace wuya
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
class WSubject;
|
|
|
|
|
|
|
|
|
|
|
|
class AFX_EXT_CLASS WObserver
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
WObserver(void);
|
|
|
|
|
|
virtual ~WObserver(void);
|
|
|
|
|
|
|
|
|
|
|
|
void SetUpdate(bool bUpdate);
|
|
|
|
|
|
bool GetUpdate();
|
|
|
|
|
|
|
|
|
|
|
|
/** @brief <20>۲<EFBFBD><DBB2>߸<EFBFBD><DFB8>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Update()<29><><EFBFBD><EFBFBD> */
|
|
|
|
|
|
void UpdateNotify(ULONGLONG ullTime);
|
|
|
|
|
|
|
|
|
|
|
|
/** @brief ʱ<><CAB1><EFBFBD><EFBFBD> */
|
|
|
|
|
|
ULONGLONG GetTimeStampObserver() const;
|
|
|
|
|
|
void SetTimeStampObserver(ULONGLONG ullTime);
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¹۲<EFBFBD><EFBFBD><EFBFBD>״̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۲<EFBFBD><EFBFBD>߱<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظú<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
* <EFBFBD><EFBFBD>Update<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Subject*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>۲<EFBFBD><EFBFBD>߹۲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>ꡣ
|
|
|
|
|
|
* (<EFBFBD><EFBFBD>Update<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD>Ŀ<EFBFBD><EFBFBD>)
|
|
|
|
|
|
* @note <EFBFBD><EFBFBD><EFBFBD><EFBFBD>:һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
virtual void Update() = 0;
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
bool m_bUpdate; ///< <20>Ƿ<EFBFBD><C7B7><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>״̬
|
|
|
|
|
|
ULONGLONG m_ullTimeObserver; ///< ʱ<><CAB1><EFBFBD><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
inline void WObserver::SetUpdate(bool bUpdate)
|
|
|
|
|
|
{
|
|
|
|
|
|
this->m_bUpdate = bUpdate;
|
|
|
|
|
|
}
|
|
|
|
|
|
inline bool WObserver::GetUpdate()
|
|
|
|
|
|
{
|
|
|
|
|
|
return m_bUpdate;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
inline ULONGLONG WObserver::GetTimeStampObserver() const
|
|
|
|
|
|
{
|
|
|
|
|
|
return m_ullTimeObserver;
|
|
|
|
|
|
}
|
|
|
|
|
|
inline void WObserver::SetTimeStampObserver(ULONGLONG ullTime)
|
|
|
|
|
|
{
|
|
|
|
|
|
this->m_ullTimeObserver = ullTime;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|