游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2094|回复: 0

2013.09.04更新——【Firefly API 新版文档】Package Distributed

[复制链接]

119

主题

119

帖子

694

积分

版主

Rank: 7Rank: 7Rank: 7

积分
694
发表于 2013-9-23 12:42:05 | 显示全部楼层 |阅读模式
package distributed这个包中主要封装了各个服务进程间进行通信的方法。node子节点域root根节点进程中的接口调用返回的都是延迟对象。关于延迟对象的使用,详见twisted中Deferred对象。
calss Child child对象对应的是连接到本服务进程的某个服务进程对象。称为子节点对象。
getName获取子节点的名称
  1. type method
  2. //cwd firefly/ distributed / child.py
  3. Params getName()
  4. 返回节点的名称
复制代码
setTransport设置子节点的通道
  1. type method
  2. //cwd firefly/ distributed / child.py
  3. Params setTransport(transport)
复制代码
transport代理通道的实例 instance型
callbackChild回调子节点的接口
  1. type method
  2. //cwd firefly/ distributed / child.py
  3. Params allbackChild(*args,**kw)
复制代码
将参数*args,**kw传入 callChild 方法中,返回的是等待 callChild 返回结果的延迟对象

class ChildsManager    子节点管理基类
getChildById根据节点id获取节点实例''
  1. type method
  2. //cwd firefly/ distributed / manager.py
  3. Params getChildById(childId)
复制代码
childId 节点id int型
返回节点实例

getChildByName根据节点的名称获取节点实例
  1. type method
  2. //cwd firefly/ distributed / manager.py
  3. Params getChildByName(childname)
复制代码
childname 节点名称 str型
返回节点实例
addChild添加一个子节点
  1. type method
  2. //cwd firefly/ distributed / manager.py
  3. Params addChild(child)
复制代码
child 节点实例 instance型
将节点添加到管理器中,格式为{节点id:节点实例},如果节点已存在,返回文字说明
dropChild删除一个节点
  1. type method
  2. //cwd firefly/ distributed / manager.py
  3. Params dropChild(child)
复制代码
child 节点实例 instance型
将节点从管理器中删除

dropChildByID

通过节点id删除一个节点
  1. type method
  2. //cwd firefly/ distributed / manager.py
  3. Params dropChildByID(childId)
复制代码
childId 节点id int型
通过节点id,在节点管理器中删除该节点
callChild调用子节点的接口
  1. type method
  2. //cwd firefly/ distributed / manager.py
  3. Params callChild(childId,*args,**kw)
复制代码
childId 子节点id
通过子节点id获取子节点实例,调用子节点接口,返回的是延迟对象。

callChildByName通过节点名称调用子节点的接口
  1. type method
  2. //cwd firefly/ distributed / manager.py
  3. Params callChildByName(childname,*args,**kw)
复制代码
Childname  子节点名称
通过子节点名称获取子节点实例,调用子节点接口,返回的是延迟对象。

class RemoteObject远程调用对象,子节点服务进程中实现。可以通过这对象去调用root节点的进程中的接口方法。
setName设置节点的名称
  1. type method
  2. //cwd firefly/ distributed / node.py
复制代码
Params setName(name)
name 节点名称 str型
将节点名称设置为name
getName获取节点的名称
  1. type method
  2. //cwd firefly/ distributed / node.py
  3. Params getName()
复制代码
返回节点名称的字符串
connect初始化远程调用对象,连接root节点。
  1. type method
  2. //cwd firefly/ distributed / node.py
  3. Params connect(addr)
复制代码
Addr 远程连接的地址 tuple型 (主机名,端口号) 例如:(‘localhost’,8888)
addServiceChannel设置服务对象,这个服务对象中管理了可供root节点调用的接口方法。
  1. type method
  2. //cwd firefly/ distributed / node.py
  3. Params addServiceChannel(service)
复制代码
service为 //cwd firefly/ utils/ services.py 中service类
takeProxy像远程服务端发送代理通道对象
  1. type method
  2. //cwd firefly/ distributed / node.py
  3. Params takeProxy()
复制代码
callRemote远程调用root节点中的接口方法。
  1. type method
  2. //cwd firefly/ distributed / node.py
  3. Params callRemote(commandId,*args,**kw)
复制代码
commandId 指令号 int型
远程调用root节点中指令号为commandId的方法


class ProxyReference    代理通道
addService-----------添加一条服务通道
  1. type method
  2. //cwd firefly/ distributed / reference.py
  3. Params addService(service)
复制代码
service服务通道实例 instance型

remote_callChild--------------代理发送数据
  1. type method
  2. //cwd firefly/ distributed / reference.py
  3. Params remote_callChild(command,*arg,**kw)
复制代码
class PBRootPB 协议,root节点对象。
addServiceChannel设置服务对象,这个服务对象中管理了可供node子节点调用的接口方法。
  1. type method
  2. //cwd firefly/ distributed / root.py
  3. Params addServiceChannel(service)
复制代码
service服务对象实例 instance型
remote_takeProxy设置代理通道
  1. type method
  2. //cwd firefly/ distributed / root.py
  3. Params remote_takeProxy(name,transport)
复制代码
name 子节点id,同时也是子节点名称
transport代理通道的实例 instance型
实例化child节点,将child节点添加到节点管理器中,设置节点代理通道为transport
remote_callTarget远程调用方法
  1. type method
  2. //cwd firefly/ distributed / root.py
  3. Params remote_callTarget(command,*args,**kw)
复制代码
command指令号 int型
远程调用root节点中指令号为command的方法
dropChild删除子节点记录
  1. type method
  2. //cwd firefly/ distributed / root.py
  3. Params dropChild(*args,**kw)
复制代码
从节点管理器中删除子节点
dropChildByID根据ID删除子节点记录
  1. type method
  2. //cwd firefly/ distributed / root.py
  3. Params dropChildByID(childId)
复制代码
ChildId 子节点id

callChild调用子节点的接口
  1. type method
  2. //cwd firefly/ distributed / root.py
  3. Params callChild(key,*args,**kw)
复制代码
key子节点id
通过子节点id获取子节点实例,调用子节点接口,返回的是延迟对象。

callChildByName调用子节点的接口
  1. type method
  2. //cwd firefly/ distributed / root.py
  3. Params callChildByName(childname,*args,**kw)
复制代码
childname子节点名称
通过子节点名称获取子节点实例,调用子节点接口,返回的是延迟对象。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-4-25 15:53

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表