Browse Source

st: 代码格式化

master
SisMaker 3 years ago
parent
commit
11383ad2a4
2 changed files with 10 additions and 1 deletions
  1. +9
    -0
      README.md
  2. +1
    -1
      src/writeCs/gCsField.erl

+ 9
- 0
README.md View File

@ -1,26 +1,32 @@
genProto genProto
===== =====
用于根据自定义的协议文件生成 erl, c#, lua的序列化和反序列化代码 用于根据自定义的协议文件生成 erl, c#, lua的序列化和反序列化代码
Build Build
----- -----
rebar3 escriptize rebar3 escriptize
Use Use
----- -----
rebar3 escriptize生成的genProto genPtoto.cmd 在_build/default/bin下面 将其复制到可以被搜索的执行路径或者工作目录 rebar3 escriptize生成的genProto genPtoto.cmd 在_build/default/bin下面 将其复制到可以被搜索的执行路径或者工作目录
genProto ProtoInputDir HrlOutDir ErlOutDir genProto ProtoInputDir HrlOutDir ErlOutDir
# 简单描述 # 简单描述
可用于erlang游戏或者erlang其他网络应用的协议解析编码解码的项目,具有较高的编码解码性能, 可用于erlang游戏或者erlang其他网络应用的协议解析编码解码的项目,具有较高的编码解码性能,
协议文件存放在proto目录 文件名为 Message protocol definition file的缩写 mpdf。 协议文件存放在proto目录 文件名为 Message protocol definition file的缩写 mpdf。
# 支持的数据类型 # 支持的数据类型
erl: int8 uint8 int16 uint16 int32 uint32 int64 uint64 integer(整数 64位) number(整数或者浮点数 64位) string float(32位浮点数) double(64位浮点数) bool record(struct) 以及上面类型的列表 erl: int8 uint8 int16 uint16 int32 uint32 int64 uint64 integer(整数 64位) number(整数或者浮点数 64位) string float(32位浮点数) double(64位浮点数) bool record(struct) 以及上面类型的列表
lua(待修正): int8 uint8 int16 uint16 int32 uint32 int64 uint64 integer(整数 64位) number(整数或者浮点数 64位) string float(32位浮点数) double(64位浮点数) bool record 以及上面类型的列表 lua(待修正): int8 uint8 int16 uint16 int32 uint32 int64 uint64 integer(整数 64位) number(整数或者浮点数 64位) string float(32位浮点数) double(64位浮点数) bool record 以及上面类型的列表
c#(待修正): int8 uint8 int16 uint16 int32 uint32 int64 uint64 integer(整数 64位) number(整数或者浮点数 64位) string float(32位浮点数) double(64位浮点数) bool record 以及上面类型的列表 c#(待修正): int8 uint8 int16 uint16 int32 uint32 int64 uint64 integer(整数 64位) number(整数或者浮点数 64位) string float(32位浮点数) double(64位浮点数) bool record 以及上面类型的列表
# 各种数据类型的编码格式(字节序大端存储, string用utf8编码) # 各种数据类型的编码格式(字节序大端存储, string用utf8编码)
int8: 直接存8bit的值 int8: 直接存8bit的值
uint8: 直接存8bit的值 uint8: 直接存8bit的值
int16: 直接存16bit的值 int16: 直接存16bit的值
@ -39,6 +45,7 @@ Use
list_+上面的数据类型的时候: 16bit的tag 用于存放 数组的长度 + 按数组顺序序列化每个元素的值的二进制数据 list_+上面的数据类型的时候: 16bit的tag 用于存放 数组的长度 + 按数组顺序序列化每个元素的值的二进制数据
### maybe TODO ### maybe TODO
生成的protoMsg.erl 生成的protoMsg.erl
encode 函数参数列表太长时 换行显示 encode 函数参数列表太长时 换行显示
encode返回的编码列表参数太多时 换行显示 encode返回的编码列表参数太多时 换行显示
@ -46,10 +53,12 @@ Use
decodeBin 返回元组元素太多时 换行显示 decodeBin 返回元组元素太多时 换行显示
### 关于消息接收转发解码和发送 ### 关于消息接收转发解码和发送
erlang通常会将接收到的消息由网关进程转发给其他工作进程, 建议先匹配消息id, 然后转发二进制消息到工作进程,然后由工作进程解码再处理 erlang通常会将接收到的消息由网关进程转发给其他工作进程, 建议先匹配消息id, 然后转发二进制消息到工作进程,然后由工作进程解码再处理
同时广播消息可先编码成二进制之后再广播, 避免重复编码 同时广播消息可先编码成二进制之后再广播, 避免重复编码
### erl部分简单性能测评 ### erl部分简单性能测评
主要和gpb做简单对比测试 主要和gpb做简单对比测试
gpb测试相关文件在test/gpb目录下 gpb测试相关文件在test/gpb目录下
测试协议: 测试协议:

+ 1
- 1
src/writeCs/gCsField.erl View File

@ -28,7 +28,7 @@
, {<<"float">>, <<"float">>} , {<<"float">>, <<"float">>}
, {<<"double">>, <<"double">>} , {<<"double">>, <<"double">>}
, {<<"string">>, <<"string">>} , {<<"string">>, <<"string">>}
]).
]).
builtRecStr({TypeStr, NameStr}) -> builtRecStr({TypeStr, NameStr}) ->
case lists:keyfind(TypeStr, 1, ?TypeValue) of case lists:keyfind(TypeStr, 1, ?TypeValue) of

Loading…
Cancel
Save