blob: 774a9106d5c8d0612ebaf03434e8eb40c84bb441
1 | /* |
2 | * showboz |
3 | * 单(线程)消费者 |
4 | * 一个简单的MSG handler |
5 | */ |
6 | #include "CThread.h" |
7 | #include <utils/Vector.h> |
8 | using namespace android; |
9 | #if !defined(_C_MSG_QUEUE_H) |
10 | #define _C_MSG_QUEUE_H |
11 | |
12 | class CMessage |
13 | { |
14 | public: |
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 | |
24 | class CMsgQueueThread: public CThread |
25 | { |
26 | public: |
27 | CMsgQueueThread(); |
28 | virtual ~CMsgQueueThread(); |
29 | int startMsgQueue(); |
30 | void sendMsg(CMessage &msg); |
31 | void removeMsg(CMessage &msg); |
32 | private: |
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 |