dbentrust
dbentrust/dbpool.py
Created on 2013-5-8
@author: lan (www.9miao.com)
-
class dbentrust.dbpool.DBPool
数据库连接池
-
initPool(**kw)
根据连接配置初始化连接池配置信息.
>>> aa = {'host':"localhost",'user':'root','passwd':'111','db':'test','port':3306,'charset':'utf8'}
>>> dbpool.initPool(**aa)
dbentrust/madminanager.py
Created on 2013-5-22
@author: lan (www.9miao.com)
-
class dbentrust.madminanager.MAdminManager
一个单例管理器。作为所有madmin的管理者
-
checkAdmins()
遍历所有的madmin,与数据库进行同步。
>>>MAdminManager().checkAdmins()
-
dropAdmin(adminname)
移除一个madmin对象.
>>> MAdminManager().dropAdmin(madmin)
-
getAdmin(adminname)
根据madmin的名字获取madmin对象
>>> madmin = MAdminManager().getAdmin('tb_registe')
-
registe(admin)
注册一个madmin对象到管理中.
>>> madmin = MAdmin('tb_registe','characterId',incrkey='id')
>>> MAdminManager().registe(madmin)
dbentrust/memclient.py
Created on 2013-7-10
memcached client
@author: lan (www.9miao.com)
-
class dbentrust.memclient.MemClient(timeout=0)
memcached 连接类,对通过它存储到memcached中的key,定义了新的key的生成规则,避免key的冲突。
@param _hostname: str 这个连接的命名空间。新生成的key的规则会是 _hostname:key。
@param _urls: []list memcached的连接的配置
@param connection: memcached的连接实例。
>>> mclient = MemClient()
-
connect(urls, hostname)
memcached 建立连接,配置连接信息
>>> mclient.connect(['127.0.0.1:11211'], "test")
-
delete(key)
-
delete_multi(keys)
-
flush_all()
-
get(key)
-
get_multi(keys)
-
incr(key, delta)
-
produceKey(keyname)
重新生成新的key,规则是 _hostname:key
>>> mclient.produceKey('name')
test:name
-
set(keyname, value)
-
set_multi(mapping)
-
exception dbentrust.memclient.MemConnError
memcached 连接错误
dbentrust/memobject.py
Created on 2012-7-10
memcached 关系对象
通过key键的名称前缀来建立
各个key-value 直接的关系
@author: lan (www.9miao.com)
-
class dbentrust.memobject.MemObject(name, mc)
memcached 关系对象,可以将一个对象的属性值记录到memcached中。
>>> class Mcharacter(MemObject):
>>> def __init__(self,pid,name,mc):
>>> MemObject.__init__(self, name, mc)
>>> self.id = pid
>>> self.level = 0
>>> self.profession = 0
>>> self.nickname = u''
>>> self.guanqia = 1000
>>> mcharacter = Mcharacter(1,'character:1',mclient)
>>> mcharacter.name='lan'
>>> mcharacter.insert()
>>> mcharacter.get('nickname')
lan
-
get(key)
获取对象值
-
get_multi(keys)
一次获取多个key的值
@param keys: list(str) key的列表
-
incr(key, delta)
自增
-
insert()
插入对象记录
-
lock()
锁定对象
-
locked()
检测对象是否被锁定
-
mdelete()
删除memcache中的数据
-
produceKey(keyname)
重新生成key
-
release()
释放锁
-
update(key, values)
修改对象的值
-
update_multi(mapping)
同时修改多个key值
dbentrust/memobject.py
Created on 2012-7-10
memcached 关系对象
通过key键的名称前缀来建立
各个key-value 直接的关系
@author: lan (www.9miao.com)
-
class dbentrust.memobject.MemObject(name, mc)
memcached 关系对象,可以将一个对象的属性值记录到memcached中。
>>> class Mcharacter(MemObject):
>>> def __init__(self,pid,name,mc):
>>> MemObject.__init__(self, name, mc)
>>> self.id = pid
>>> self.level = 0
>>> self.profession = 0
>>> self.nickname = u''
>>> self.guanqia = 1000
>>> mcharacter = Mcharacter(1,'character:1',mclient)
>>> mcharacter.name='lan'
>>> mcharacter.insert()
>>> mcharacter.get('nickname')
lan
-
get(key)
获取对象值
-
get_multi(keys)
一次获取多个key的值
@param keys: list(str) key的列表
-
incr(key, delta)
自增
-
insert()
插入对象记录
-
lock()
锁定对象
-
locked()
检测对象是否被锁定
-
mdelete()
删除memcache中的数据
-
produceKey(keyname)
重新生成key
-
release()
释放锁
-
update(key, values)
修改对象的值
-
update_multi(mapping)
同时修改多个key值
dbentrust/mmode.py
Created on 2013-5-8
@author: lan (www.9miao.com)
-
class dbentrust.mmode.MAdmin(name, pk, timeout=1800, **kw)
MMode对象管理,同一个MAdmin管理同一类的MMode,对应的是数据库中的某一种表
-
checkAll()
同步内存中的数据到对应的数据表中。
>>> m = madmin.checkAll()
-
deleteAllFk()
删除所有的外键
-
deleteMode(pk)
根据主键删除内存中的某条记录信息,
这里只是修改内存中的记录状态_state为删除状态.
>>> m = madmin.deleteMode(1)
-
getAllPkByFk(fk)
根据外键获取主键列表
-
getObj(pk)
根据主键,可以获得mmode对象的实例.
-
getObjData(pk)
根据主键,可以获得mmode对象的实例的数据.
>>> m = madmin.getObjData(1)
-
getObjList(pklist)
根据主键列表获取mmode对象的列表.
>>> m = madmin.getObjList([1,2,3,4,5])
-
insert()
将MAdmin配置的信息写入memcached中保存。
当在其他的进程中实例化相同的配置的MAdmin,可以使得数据同步。
-
load()
读取数据到数据库中
-
madmininfo
作为一个特性属性。可以获取这个madmin的相关信息
-
new(data)
创建一个新的对象
-
class dbentrust.mmode.MFKMode(name, pklist=[])
外键内存数据模型
-
class dbentrust.mmode.MMode(name, pk, data={})
内存数据模型,最终对应到的是表中的一条记录
-
IsEffective()
检测对象是否有效
-
checkSync(timeout=1800)
检测同步
-
delete()
删除对象
-
mdelete()
清理对象
-
syncDB()
同步到数据库
-
exception dbentrust.mmode.PKValueError(data)
dbentrust/util.py
Created on 2013-5-8
@author: lan (www.9miao.com)
-
dbentrust.util.DeleteFromDB(tablename, props)
从数据库中删除
-
dbentrust.util.EachQueryProps(props)
遍历字段列表生成sql语句
-
dbentrust.util.FormatCondition(props)
生成查询条件字符串
-
dbentrust.util.FormatUpdateStr(props)
生成更新语句
-
dbentrust.util.GetOneRecordInfo(tablename, props)
获取单条数据的信息
-
dbentrust.util.GetRecordList(tablename, pkname, pklist)
-
dbentrust.util.GetTableIncrValue(tablename)
-
dbentrust.util.InsertIntoDB(tablename, data)
写入数据库
-
dbentrust.util.ReadDataFromDB(tablename)
-
dbentrust.util.UpdateWithDict(tablename, props, prere)
更新记录
-
dbentrust.util.forEachQueryProps(sqlstr, props)
遍历所要查询属性,以生成sql语句
-
dbentrust.util.forEachUpdateProps(tablename, props, prere)
遍历所要修改的属性,以生成sql语句
-
dbentrust.util.getAllPkByFkInDB(tablename, pkname, props)
根据所有的外键获取主键ID
distributed
distributed/child.py
Created on 2013-8-14
@author: lan (www.9miao.com)
-
class distributed.child.Child(cid, name)
子节点对象
-
callbackChild(*args, **kw)
回调子节点的接口
return a Defered Object (recvdata)
-
callbackChildForResult(*args, **kw)
回调子节点的接口
return a Defered Object (recvdata)
-
callbackChildNotForResult(*args, **kw)
回调子节点的接口
return a Defered Object (recvdata)
-
getName()
获取子节点的名称
-
setTransport(transport)
设置子节点的通道
distributed/manager.py
Created on 2013-8-14
@author: lan (www.9miao.com)
-
class distributed.manager.ChildsManager
子节点管理器
-
addChild(child)
添加一个child节点
@param child: Child object
-
callChild(childId, *args, **kw)
调用子节点的接口
@param childId: int 子节点的id
-
callChildByName(childname, *args, **kw)
调用子节点的接口
@param childname: str 子节点的名称
-
callChildByNameNotForResult(childname, *args, **kw)
调用子节点的接口
@param childId: int 子节点的id
-
callChildNotForResult(childId, *args, **kw)
调用子节点的接口
@param childId: int 子节点的id
-
dropChild(child)
删除一个child 节点
@param child: Child Object
-
dropChildByID(childId)
删除一个child 节点
@param childId: Child ID
-
getChildBYSessionId(session_id)
根据sessionID获取child节点信息
-
getChildById(childId)
根据节点的ID获取节点实例
-
getChildByName(childname)
根据节点的名称获取节点实例
distributed/node.py
Created on 2013-8-14
@author: lan (www.9miao.com)
-
class distributed.node.RemoteObject(name, timeout=600)
远程调用对象
-
addServiceChannel(service)
设置引用对象
-
callRemote(commandId, *args, **kw)
默认远程调用,等待结果放回
-
callRemoteForResult(commandId, *args, **kw)
远程调用,并等待结果放回
-
callRemoteNotForResult(commandId, *args, **kw)
远程调用,不需要结果放回
-
connect(addr)
初始化远程调用对象
-
getName()
获取节点的名称
-
reconnect(addr=())
重新连接
-
setName(name)
设置节点的名称
-
takeProxy()
像远程服务端发送代理通道对象
distributed/reference.py
Created on 2013-8-14
@author: lan (www.9miao.com)
-
class distributed.reference.ProxyReference
代理通道
-
addService(service)
添加一条服务通道
-
remote_callChild(command, *arg, **kw)
代理发送数据
distributed/root.py
Created on 2013-8-14
分布式根节点
@author: lan (www.9miao.com)
-
class distributed.root.PBRoot(dnsmanager=<distributed.manager.ChildsManager object at 0x000000000507D3C8>)
PB 协议
-
addServiceChannel(service)
添加服务通道
@param service: Service Object(In bilateral.services)
-
callChild(key, *args, **kw)
调用子节点的接口
@param childId: int 子节点的id
return Defered Object
-
callChildByName(childname, *args, **kw)
调用子节点的接口
@param childId: int 子节点的id
return Defered Object
-
doChildConnect(name, transport)
当node节点连接时的处理
-
doChildLostConnect(childId)
当node节点连接时的处理
-
dropChild(*args, **kw)
删除子节点记录
-
dropChildByID(childId)
删除子节点记录
-
dropChildSessionId(session_id)
删除子节点记录
-
remote_callTarget(command, *args, **kw)
远程调用方法
@param commandId: int 指令号
@param data: str 调用参数
-
remote_takeProxy(name, transport)
设置代理通道
@param name: 根节点的名称
netconnect
netconnect/connection.py
Created on 2014-2-23
@author: lan (www.9miao.com)
-
class netconnect.connection.Connection(_conn)
-
loseConnection()
断开与客户端的连接
-
safeToWriteData(topicID, msg)
发送消息
netconnect/datapack.py
Created on 2014-2-23
@author: lan (www.9miao.com)
-
exception netconnect.datapack.DataPackError
An error occurred binding to an interface
-
class netconnect.datapack.DataPackProtoc(HEAD_0=0, HEAD_1=0, HEAD_2=0, HEAD_3=0, protoVersion=0, serverVersion=0)
数据包协议
-
getHeadlength()
获取数据包的长度
-
pack(response, command)
打包数据包
-
unpack(dpack)
解包
netconnect/manager.py
Created on 2014-2-23
连接管理器
@author: lan (www.9miao.com)
-
class netconnect.manager.ConnectionManager
连接管理器
@param _connections: dict {connID:conn Object}管理的所有连接
-
addConnection(conn)
加入一条连接
@param _conn: Conn object
-
dropConnectionByID(connID)
更加连接的id删除连接实例
@param connID: int 连接的id
-
getConnectionByID(connID)
根据ID获取一条连接
@param connID: int 连接的id
-
getNowConnCnt()
获取当前连接数量
-
loseConnection(connID)
根据连接ID主动端口与客户端的连接
-
pushObject(topicID, msg, sendList)
主动推送消息
netconnect/protoc.py
Created on 2014-2-23
登陆服务器协议
@author: lan (www.9miao.com)
-
class netconnect.protoc.LiberateFactory(dataprotocl=<gfirefly.netconnect.datapack.DataPackProtoc instance at 0x0000000005191D48>)
协议工厂
-
addServiceChannel(service)
添加服务通道
-
doConnectionLost(conn)
连接断开时的处理
-
doConnectionMade(conn)
当连接建立时的处理
-
doDataReceived(conn, commandID, data)
数据到达时的处理
-
loseConnection(connID)
主动端口与客户端的连接
-
produceResult(command, response)
产生客户端需要的最终结果
@param response: str 分布式客户端获取的结果
-
protocol
alias of LiberateProtocol
-
pushObject(topicID, msg, sendList)
服务端向客户端推消息
@param topicID: int 消息的主题id号
@param msg: 消息的类容,protobuf结构类型
@param sendList: 推向的目标列表(客户端id 列表)
-
setDataProtocl(dataprotocl)
-
class netconnect.protoc.LiberateProtocol(transport, factory)
协议
-
connectionLost(reason)
连接断开处理
-
connectionMade()
连接建立处理
-
dataReceived(data)
数据到达处理
@param data: str 客户端传送过来的数据
-
safeToWriteData(data, command)
线程安全的向客户端发送数据
@param data: str 要向客户端写的数据
server
server/admin.py
server/globalobject.py
Created on 2013-8-2
@author: lan (www.9miao.com)
-
class server.globalobject.GlobalObject
单例,存放了服务中的netfactory,root节点,所有的remote节点的句柄。
-
config(netfactory=None, root=None, remote=None, db=None)
配置存放的对象实例
-
server.globalobject.masterserviceHandle(target)
供master调用的接口描述符
-
server.globalobject.netserviceHandle(target)
供客户端连接调用的接口描述符
-
class server.globalobject.remoteserviceHandle(remotename)
作为remote节点,供某个root节点调用的接口描述符
-
server.globalobject.rootserviceHandle(target)
作为root节点,供remote节点调用的接口描述符
-
class server.globalobject.webserviceHandle(url, **kw)
这是一个修饰符对象,修饰http接口的连接地址。
server/logobj.py
Created on 2013-8-6
@author: lan (www.9miao.com)
-
class server.logobj.loogoo(logpath)
日志处理
server/server.py
Created on 2013-8-2
@author: lan (www.9miao.com)
-
class server.server.FFServer
抽象出的一个服务进程
-
config(config, servername=None, dbconfig=None, memconfig=None, masterconf=None)
配置服务器
-
remote_connect(rname, rhost)
进行rpc的连接
-
start()
启动服务器
-
server.server.serverStop()
停止服务进程
master
master/master.py
Created on 2013-8-2
@author: lan (www.9miao.com)
-
class master.master.Master
-
config(configpath, mainpath)
-
masterapp()
-
start()
master/rootapp.py
master/webapp.py