libjingle thread的使用

libjingle支持多线程,多线程主要继承talk_base::Thread,利用其post等函数注册talk_base::MessageHandler和talk_base::Message的message_id和MessageData

#ifndef __THREAD_TEST_H
#define __THREAD_TEST_H
#include <string>
#include <stdio.h>
#include "talk/base/thread.h"
class MsgData : public talk_base::MessageData
{
	public:
		MsgData(std::string str):info(str)
		{
		}
		std::string info;
};

enum
{
	MSG_HELP
};	

class TestThread : public talk_base::Thread
{
	public:
		void sendMessage(talk_base::MessageHandler *handler, std::string info)
		{
			Post(handler, MSG_HELP,new MsgData(info)); 
		}
		
};
class Police : public talk_base::MessageHandler
{
	public:
	
	Police()
	{
		thread.Start();
	}
	void Help(const std::string &info)
	{
		
		thread.sendMessage(this, info);
	}

	void workThreadHelp(const std::string &info)
	{
		
	}

	virtual void OnMessage(talk_base::Message *msg)
	{
		switch(msg->message_id)
		{
			case MSG_HELP:
				MsgData *data = (MsgData *)msg->pdata;

				printf("thread msg:%s\r\n", data->info.c_str());
				break;
		}
	}

	private:
		TestThread thread;
};
#endif
#include "SignalTest.h"
#include "ThreadTest.h"
int main(int argc, char **argv) 
{
	Sender sender;
	Receiver recv(sender);
	sender.Panic();
	
	Police p;
	p.Help("help me!!");
	
	return 0;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值