169 files changed, 64432 insertions, 116 deletions
diff --git a/tvapi/libtv/tvutils/CMsgQueue.h b/tvapi/libtv/tvutils/CMsgQueue.h new file mode 100644 index 0000000..774a910 --- a/dev/null +++ b/tvapi/libtv/tvutils/CMsgQueue.h @@ -0,0 +1,54 @@ +/* + * showboz + * 单(线程)消费者 + * 一个简单的MSG handler +*/ +#include "CThread.h" +#include <utils/Vector.h> +using namespace android; +#if !defined(_C_MSG_QUEUE_H) +#define _C_MSG_QUEUE_H + +class CMessage +{ +public: + CMessage(); + ~CMessage(); + nsecs_t mDelayMs;//delay times , MS + nsecs_t mWhenMs;//when, the msg will handle + int mType; + void *mpData; + unsigned char mpPara[2048]; +}; + +class CMsgQueueThread: public CThread +{ +public: + CMsgQueueThread(); + virtual ~CMsgQueueThread(); + int startMsgQueue(); + void sendMsg(CMessage &msg); + void removeMsg(CMessage &msg); +private: + bool threadLoop(); + nsecs_t getNowMs();//get system time , MS + virtual void handleMessage(CMessage &msg) = 0; + + // + Vector<CMessage> m_v_msg; + CCondition mGetMsgCondition; + CMutex mLockQueue; +}; + +/*class CHandler +{ + pubulic: + CHandler(CMsgQueueThread& msgQueue); + ~CHandler(); + void sendMsg(); + void removeMsg(); + private: + virtual void handleMessage(CMessage &msg); +};*/ + +#endif |