WEB开发网
开发学院手机开发Android 开发 关于 RMsgQueue 类的使用 阅读

关于 RMsgQueue 类的使用

 2010-04-18 06:50:00 来源:WEB开发网   
核心提示:至于AO的其它封装,主要是利用RMsgQueue如下三个函数void RMsgQueue::NotifyDataAvailable(TRequestStatus& aStatus);TInt RMsgQueue::Send(const T& aMsg);TInt RMsgQueue::Receive(T& aMsg);

至于AO的其它封装,主要是利用RMsgQueue如下三个函数

void RMsgQueue::NotifyDataAvailable(TRequestStatus& aStatus);

TInt RMsgQueue::Send(const T& aMsg);

TInt RMsgQueue::Receive(T& aMsg);

先在封装的AO中调用NotifyDataAvailable开启消息的监听,然后就开始等待外部的Send函数调用发消息进来,一旦有消息Send进来就进入AO的Runl中,我们通过调用Receive函数来对传递进来的消息内容进行解析和相应处理。逻辑就这么简单,下面给出源代码供参考。

头文件内容:

/*

* MessageQueueAO.h

*

* Created on: 2010-3-30

* Author: frank

*/

#ifndef MESSAGEQUEUEAO_H_

#define MESSAGEQUEUEAO_H_

#include

#include

typedef enum _NetWork_Msg_Type

{

NetworkConnect,

NetworkSocketCreate,

NetworkSocketConnect,

NetworkSocketSend,

NetworkSocketRecv,

NetworkSocketClose,

NetWorkDisConnect

}NetWorkMsgType;

typedef struct _NetWork_Msg

{

NetWorkMsgType m_msgType;

TInt32 m_msgFd;

}NetworkMsg;

const TInt KNumberOfMsgs = 10;

extern RMsgQueue g_NetWorkMsgQue;

class CMessageQueueAO : public CActive

{

public:

// Cancel and destroy

virtual ~CMessageQueueAO();

// Two-phased constructor.

static CMessageQueueAO* NewL();

// Two-phased constructor.

static CMessageQueueAO* NewLC();

public:

// New functions

// Function for making the initial request

TInt StartMessageGet(const TDesC& aText=KNullDesC);

private:

// C++ constructor

CMessageQueueAO();

// Second-phase constructor

上一页  1 2 3 4 5 6  下一页

Tags:关于 RMsgQueue 使用

编辑录入:coldstar [复制链接] [打 印]
赞助商链接