WEB开发网
开发学院手机开发Symbian 开发 Symbian之client-server架构 阅读

Symbian之client-server架构

 2010-05-31 19:49:00 来源:WEB开发网   
核心提示:virtual void ServiceL(const RMessage2& aMessage) =0;这个是纯虚函数,所以派生类必须做实现,Symbian之client-server架构(4),当Client在建立了和Server的连接后,会通过某个接口向Server发送数据请求等操作,class RSessionB

virtual void ServiceL(const RMessage2& aMessage) =0;

这个是纯虚函数,所以派生类必须做实现。当Client在建立了和Server的连接后,会通过某个接口向Server发送数据请求等操作,Server 端的Session的虚函数ServiceL()会被调用,在参数RMessage2中会包括Client的请求信息。根据 aMessage.Function()的值做相应的处理。处理完后调用aMessage.Complete( KErrNone );来告知Client处理结束了,通常是增加请求线程上的信号量来告诉Client请求的完成。

NONSHARABLE_CLASS(CPtpSession) : public CSession2, MServiceHandlerObserver

{

public:

static CPtpSession* NewL(CPtpServer* aServer);

~CPtpSession();

void ServiceL( const RMessage2& aMessage );

}

既然,Server端有个Session,那么Client端也有个相应的Session了,答案是肯定的。它就是RSessionBase,它是Client端的Session句 柄,通过这个Client端的接口就可以和Server通信了。

class RSessionBase : public RHandleBase

{

friend class RSubSessionBase;

。。。

IMPORT_C TInt Open(RMessagePtr2 aMessage,TInt aParam,TOwnerType aType=EOwnerProcess);

IMPORT_C TInt Open(RMessagePtr2 aMessage,TInt aParam,const TSecurityPolicy& aServerPolicy,TOwnerType aType=EOwnerProcess);

IMPORT_C TInt Open(TInt aArgumentIndex, TOwnerType aType=EOwnerProcess);

IMPORT_C TInt Open(TInt aArgumentIndex, const TSecurityPolicy& aServerPolicy, TOwnerType aType=EOwnerProcess);

inline TInt SetReturnedHandle(TInt aHandleOrError);

IMPORT_C TInt SetReturnedHandle(TInt aHandleOrError,const TSecurityPolicy& aServerPolicy);

protected:

inline TInt CreateSession(const TDesC& aServer,const TVersion& aVersion);

IMPORT_C TInt CreateSession(const TDesC& aServer,const TVersion& aVersion,TInt aAsyncMessageSlots);

IMPORT_C TInt CreateSession(const TDesC& aServer,const TVersion&

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

Tags:Symbian client server

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