跟这个Framework相关的类有8个: RServer2,CServer2,CSession2,RMessenge2,
RMessengePtr2,RSessionBase,RSubsessionBase,TIpcArgs
服务主要是用来管理一些共享的资源,如File Server-管理文件系统;Window Server-管理对屏幕、键盘等的共享访问;通常服务和客户端工作在不同的线程或进程,互相之间不干扰。每个服务在启动时候都有一个名字,系统服务的名字以!开头,每一个服务有对应的API,他们知道对应服务的名字。客户端和服务端通过session进行通信,消息以TIpcArgs的形式进行传递,包括要访问的服务类型和参数。
客户端的RSessionBase和服务端的一个CSession2对应,前者发起连接后,RServer2会从内核负责协调通信的DServer哪里获得消息,然后CServer2会通过NewSessionL()创建对应CSession2。
CServer2包含这些数据成员:
private:
TInt iSessionType;
RServer2 iServer;
RMessage2 iMessage;
TAny* iSpare;
TDblQue iSessionQ;
protected:
TDblQueIter iSessionIter;
大体的框架图在Volume3 p247页上,看懂这个图就明白大概是怎么回事儿了!
下一步看看例子怎么写和用这个框架的!
阅读(1151) | 评论(1) | 转发(0) |