tolua#的Examples-15_ProtoBuffer

    private string script = @"      
        local person_pb = require 'Protol/person_pb'

        function Decoder()  
            local msg = person_pb.Person()
            msg:ParseFromString(TestProtol.data)
            print('person_pb decoder: '..tostring(msg))
        end

        function Encoder()                          
            local msg = person_pb.Person()
            msg.id = 1024
            msg.name = 'foo'
            msg.email = 'bar'
            local pb_data = msg:SerializeToString()
            TestProtol.data = pb_data
        end
        ";

这个例子是很实用的演示了在tolua#中如何使用protobuf-lua-gen来编码、解码protobuff的消息。在代码中msg:ParseFromString(TestProtol.data) 有个变量data,它是TestProtol类中一个LuaByteBuffer类型的变量,这个前面已经写过作用了,就是为了传递c#与lua间的序列化后的数据,不光是protobuf-lua-gen数据,pbc跟sproto数据都是通过LuaByteBuffer来传递数据。

而require的Resources/Lua/person_pb.lua文件是通过protobuf-lua-gen配置环境编码导出相应的proto文件到lua文件。具体配置过程请百度,也可参考http://doc.ulua.org/article/ulua/uluaruheshengchengprotobufluagendexieyiwenjian.html

[本日志由 admin 于 2016-03-20 10:10 PM 更新]
上一篇: tolua#的Examples-14_Out
下一篇: tolua#的Examples-16_Int64
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭