Symbian之client-server架构
2010-05-31 19:49:00 来源:WEB开发网inline TInt CreateSession(RServer2 aServer,const TVersion& aVersion);
IMPORT_C TInt CreateSession(RServer2 aServer,const TVersion& aVersion,TInt aAsyncMessageSlots);
IMPORT_C TInt CreateSession(RServer2 aServer,const TVersion& aVersion,TInt aAsyncMessageSlots,TIpcSessionType aType,const TSecurityPolicy* aPolicy=0, TRequestStatus* aStatus=0);
inline static TInt SetReturnedHandle(TInt aHandleOrError,RHandleBase& aHandle);
inline TInt Send(TInt aFunction,const TIpcArgs& aArgs) const;
inline void SendReceive(TInt aFunction,const TIpcArgs& aArgs,TRequestStatus& aStatus) const;
inline TInt SendReceive(TInt aFunction,const TIpcArgs& aArgs) const;
inline TInt Send(TInt aFunction) const;
inline void SendReceive(TInt aFunction,TRequestStatus& aStatus) const;
inline TInt SendReceive(TInt aFunction) const;
。。。
};
这个类提供了很多重载的CreateSession()方 法,根据需要进行选择,涉及到几个概念就是消息槽和IPC Session的类型,可以根据SDK的描述使用,SDK有详细的阐述,没有用到过,这里就不详述了。
SendReceive()也有很多重载的方法,主要是同/异步的选择,那些没有 TRequestStatus参数的API是同步的,一个Client的Session对Server同时只能有一个当前的同步请求,异步请求可以有多 个。
RMessage2这 个类封装了Client请求的细节,在Client和Server端传递。
class RMessage2 : public RMessagePtr2
{
friend class CServer2;
#endif
inline TInt Function() const;
inline TInt Int0() const;
inline TInt Int1() const;
inline TInt Int2() const;
inline TInt Int3() const;
inline const TAny* Ptr0() const;
inline const TAny* Ptr1() const;
inline const TAny* Ptr2() const;
更多精彩
赞助商链接