|
Size: 1235
Comment:
|
Size: 2853
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 28: | Line 28: |
| * 只对pcon-pmsg.py进行测试,因此先要将其改成meteor要求的格式。因为在原模板中不能定义子模板,因此还要分离相应的子模板。 | * 只对pcon-pmsg.py进行测试,因此先要将其改成meteor要求的格式。因为在原模板中不能定义子模板,因此还要分离相应的子模板。文件查看:attachment:pcon-pmsg_tmpl.py 下面只显示主要部分,注释什么地去掉了。同时模板变量的定义保持原样。 {{{ from ###Lprotoname###.message import ###MsgBase### import struct class ###Uprotoname###PMessage(###MsgBase###.ByteMessage): \"\"\"二进制流连接消息基类\"\"\" def __init__(self): # 消息头 self.head = ###MsgBase###.ByteMessageHead(self) # 消息体 self.body = ###MsgBase###.ByteMessageBody(self) # 消息工具 self.msgutilcls = ###Uprotoname###PMessageUtil # 协议名称 self.protocolname = '###Lprotoname###p' # 当前的消息名称 self.msgname = '' ###Commands### class ###Uprotoname###PMessageUtil(###MsgBase###.ByteMessageUtil): \"\"\"二进制长连接消息处理工具类\"\"\" def __init__(self): pass # 消息定义 ###Uprotoname###PMessageUtil.commandinfo = { ###Commandsinfo### } # 通过名称查出消息ID的结构定义 ###Uprotoname###PMessageUtil.nametoid = {} for k in ###Uprotoname###PMessageUtil.commandinfo.keys(): ###Uprotoname###PMessageUtil.nametoid[###Uprotoname###PMessageUtil.commandinfo[k]] = k """) Commands = T(""" def pack_###Lprotoname###p_###commandname###(self, fields): ###packcontent### def unpack_###Lprotoname###p_###commandname###(self, fields): ###unpackcontent### """) Lprotoname = T("###lpname###") Uprotoname = T("###upname###") packcontent = T('') unpackcontent = T('') Commandsinfo=T(" ###flag### : '###name###',\n") }}} |
含有章节索引的中文 文章模板
-- limodou [DateTime(2004-08-27T01:30:31Z)] TableOfContents
Otter模板测试记录
这是我记录使用meteor生成Otter模板的记录
测试准备
- 分析Otter模板的整体框架
- 分析结果如下:
- 整个模板数据只有一个,而meteor对于每一个模板均需要一个数据字典。当然是可以考虑共用一个。
- OtTDict.py 确如Zoom.quiet所讲是一个体力活,它完成XML数据字典转换为模板变量值的过程,替换过程是一个通用的方法。不过一些模板的循环处理都是要通过程序才可以实现。编程量相对大。
- 测试准备:
- 只对pcon-pmsg.py进行测试,因此先要将其改成meteor要求的格式。因为在原模板中不能定义子模板,因此还要分离相应的子模板。文件查看:attachment:pcon-pmsg_tmpl.py
- 下面只显示主要部分,注释什么地去掉了。同时模板变量的定义保持原样。
- 只对pcon-pmsg.py进行测试,因此先要将其改成meteor要求的格式。因为在原模板中不能定义子模板,因此还要分离相应的子模板。文件查看:attachment:pcon-pmsg_tmpl.py
from ###Lprotoname###.message import ###MsgBase###
import struct
class ###Uprotoname###PMessage(###MsgBase###.ByteMessage):
\"\"\"二进制流连接消息基类\"\"\"
def __init__(self):
# 消息头
self.head = ###MsgBase###.ByteMessageHead(self)
# 消息体
self.body = ###MsgBase###.ByteMessageBody(self)
# 消息工具
self.msgutilcls = ###Uprotoname###PMessageUtil
# 协议名称
self.protocolname = '###Lprotoname###p'
# 当前的消息名称
self.msgname = ''
###Commands###
class ###Uprotoname###PMessageUtil(###MsgBase###.ByteMessageUtil):
\"\"\"二进制长连接消息处理工具类\"\"\"
def __init__(self):
pass
# 消息定义
###Uprotoname###PMessageUtil.commandinfo = {
###Commandsinfo###
}
# 通过名称查出消息ID的结构定义
###Uprotoname###PMessageUtil.nametoid = {}
for k in ###Uprotoname###PMessageUtil.commandinfo.keys():
###Uprotoname###PMessageUtil.nametoid[###Uprotoname###PMessageUtil.commandinfo[k]] = k
""")
Commands = T(""" def pack_###Lprotoname###p_###commandname###(self, fields):
###packcontent###
def unpack_###Lprotoname###p_###commandname###(self, fields):
###unpackcontent###
""")
Lprotoname = T("###lpname###")
Uprotoname = T("###upname###")
packcontent = T('')
unpackcontent = T('')
Commandsinfo=T(" ###flag### : '###name###',\n")