summaryrefslogtreecommitdiff
path: root/tvapi/libtv/tvutils/CMsgQueue.h (plain)
blob: 774a9106d5c8d0612ebaf03434e8eb40c84bb441
1/*
2 * showboz
3 * 单(线程)消费者
4 * 一个简单的MSG handler
5*/
6#include "CThread.h"
7#include <utils/Vector.h>
8using namespace android;
9#if !defined(_C_MSG_QUEUE_H)
10#define _C_MSG_QUEUE_H
11
12class CMessage
13{
14public:
15 CMessage();
16 ~CMessage();
17 nsecs_t mDelayMs;//delay times , MS
18 nsecs_t mWhenMs;//when, the msg will handle
19 int mType;
20 void *mpData;
21 unsigned char mpPara[2048];
22};
23
24class CMsgQueueThread: public CThread
25{
26public:
27 CMsgQueueThread();
28 virtual ~CMsgQueueThread();
29 int startMsgQueue();
30 void sendMsg(CMessage &msg);
31 void removeMsg(CMessage &msg);
32private:
33 bool threadLoop();
34 nsecs_t getNowMs();//get system time , MS
35 virtual void handleMessage(CMessage &msg) = 0;
36
37 //
38 Vector<CMessage> m_v_msg;
39 CCondition mGetMsgCondition;
40 CMutex mLockQueue;
41};
42
43/*class CHandler
44{
45 pubulic:
46 CHandler(CMsgQueueThread& msgQueue);
47 ~CHandler();
48 void sendMsg();
49 void removeMsg();
50 private:
51 virtual void handleMessage(CMessage &msg);
52};*/
53
54#endif
55