GitHub user mygityf opened a pull request:
https://github.com/apache/thrift/pull/828
THRIFT-3585 Lua: compact protocol implement of lua for thrift.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/gityf/thrift master
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/thrift/pull/828.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #828
----
commit 0d0cf5aa589389d40a2bd71a9e09e790634aff36
Author: unknown <[email protected]>
Date: 2016-01-28T11:08:05Z
To check element of self whether nil or not,avoid the value(false) of BOOL
is lost.
eg.
Before:
if self.argBool then
oprot:writeFieldBegin('argBool', TType.BOOL, 13)
oprot:writeBool(self.argBool)
oprot:writeFieldEnd()
end
After:
if self.argBool ~= nil then
oprot:writeFieldBegin('argBool', TType.BOOL, 13)
oprot:writeBool(self.argBool)
oprot:writeFieldEnd()
end
Why:
the value(false) for paramater self.argBool will be lost when condition
is 'if self.argBool then' as before.
commit 8e61f5ae5cd82ede21d2fad0c67e9328a57a9bc5
Author: unknown <[email protected]>
Date: 2016-01-28T11:29:54Z
This is compact protocol lua implement for thrift.
Here are some description for each source code file.
luabpack.c
To add bits operation function for thrift compact protocol.
new functions:
l_i64ToZigza,l_i32ToZigzag,l_zigzagToI32,l_zigzagToI64,l_toVarint32,l_toVarint64,l_packMesgType.
TCompactProtocol.lua
new source of lua for thrift compact protocol.
compact_protocol_client.lua
test client source code for thrift compact protocol.
compact_protocol_server.lua
test server source code for thrift compact protocol.
rpc.thrift
test thrift IDL file for test
case(compact_protocol_client.lua,compact_protocol_server.lua).
pcap offset hex of rpc test service.txt
This is dump file create by tcpdump for test case.
Test cases:
client <--------------> server
compact_protocol_client.lua compact_server.go (golang
thrift server)
compact_client.go (golang thrift client) compact_protocol_server.lua
compact_protocol_client.lua compact_protocol_server.lua
Test console log:
log for compact_protocol_client.lua:
1 return 1 by FunCall.
2 return 2 by FunCall.
log for compact_protocol_server.lua:
53 54 12 43 11.22 str value
53 54 12 34 11.22 login
name namess
pass vpass
10 val10
20 val20
ele1
ele3
ele2
l1.
l2.
commit e83cd0db71d3a4b19bf4cbe5a16156f6204e51fa
Author: Wang Yaofu <[email protected]>
Date: 2016-02-01T09:35:25Z
update field table and index.
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---