活动对象框架:
1 活动对象调度器:这个类用于对事件进行调度,每个线程之中最多只能有一个活动调度器。
2活动对象:这个类用于事件的处理,在一个给定的线程内可以存在多个活动对象。
为了解决多任务应用的问题而提出的。
所有的活动对象都是从基类CActive不同程度地派生而来,
CActive类定义
class CActive : public CBase
{
public:
enum TPriority
{
EPriorityIdle=-100,
EPriorityLow=-20,
EPriorityStandard=0,
EPriorityUserInput=10,
EPriorityHigh=20,
};
public:
IMPORT_C ~CActive();
IMPORT_C void Cancel();//
IMPORT_C void Deque();
IMPORT_C void SetPriority(TInt aPriority);
inline TBool IsActive() const;
inline TBool IsAdded() const;
inline TInt Priority() const;
protected:
IMPORT_C CActive(TInt aPriority);
IMPORT_C void SetActive();
virtual void DoCancel() =0; //删除活动对象的异步请求
virtual void RunL() =0; //处理异步请求
IMPORT_C virtual TInt RunError(TInt aError);
protected:
IMPORT_C virtual TInt Extension_(TUint aExtensionId, TAny*& a0, TAny* a1);
public:
TRequestStatus iStatus;
private:
// TBool iActive;
TPriQueLink iLink;
TAny* iSpare;
friend class CActiveScheduler;
friend class CServer;
friend class CServer2;
};