erlang自定义二进制协议
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1433 lines
29 KiB

пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
пре 1 година
  1. function test()
  2. local tb = {}
  3. tb.msgId =1
  4. t.aa = ""
  5. tb.encode = function(byteArray)
  6. byteArray.write_string(tb.aa)
  7. return byteArray.getBytes()
  8. end
  9. tb.decode = function(byteArray)
  10. tb.aa = byteArray.read_string()
  11. end
  12. tb.build = function(byteArray)
  13. byteArray.write_uint16(1)
  14. return tb.encode(byteArray)
  15. end
  16. return tb
  17. end
  18. function phoneNumber()
  19. local tb = {}
  20. tb.msgId =2
  21. t.number = {}
  22. t.type = 0
  23. tb.encode = function(byteArray)
  24. if tb.number and next(tb.number) then
  25. byteArray.write_uint8(1)
  26. tb.number.encode(byteArray)
  27. else
  28. byteArray.write_uint8(0)
  29. end
  30. byteArray.write_int32(tb.type)
  31. return byteArray.getBytes()
  32. end
  33. tb.decode = function(byteArray)
  34. local isNilnumber = byteArray.read_uint8()
  35. if isNilnumber > 0 then
  36. tb.number = test()
  37. tb.number.decode(byteArray)
  38. else
  39. tb.number = {}
  40. end
  41. tb.type = byteArray.read_int32()
  42. end
  43. tb.build = function(byteArray)
  44. byteArray.write_uint16(2)
  45. return tb.encode(byteArray)
  46. end
  47. return tb
  48. end
  49. function person()
  50. local tb = {}
  51. tb.msgId =3
  52. t.name = ""
  53. t.id = 0
  54. t.email = ""
  55. t.phone = {}
  56. tb.encode = function(byteArray)
  57. byteArray.write_string(tb.name)
  58. byteArray.write_int32(tb.id)
  59. byteArray.write_string(tb.email)
  60. byteArray.write_uint16(#(tb.phone))
  61. for k, v in pairs(tb.phone) do
  62. byteArray = v.encode(byteArray)
  63. end
  64. return byteArray.getBytes()
  65. end
  66. tb.decode = function(byteArray)
  67. tb.name = byteArray.read_string()
  68. tb.id = byteArray.read_int32()
  69. tb.email = byteArray.read_string()
  70. local cntOfphone = byteArray.read_uint16()
  71. tb.phone = {}
  72. for i = 1, cntOfphone do
  73. local temp = phoneNumber()
  74. temp.decode(byteArray)
  75. table.insert(tb.phone, temp)
  76. end
  77. end
  78. tb.build = function(byteArray)
  79. byteArray.write_uint16(3)
  80. return tb.encode(byteArray)
  81. end
  82. return tb
  83. end
  84. function addressBook()
  85. local tb = {}
  86. tb.msgId =4
  87. t.person = {}
  88. t.other = {}
  89. tb.encode = function(byteArray)
  90. byteArray.write_uint16(#(tb.person))
  91. for k, v in pairs(tb.person) do
  92. byteArray = v.encode(byteArray)
  93. end
  94. byteArray.write_uint16(#(tb.other))
  95. for k, v in pairs(tb.other) do
  96. byteArray = v.encode(byteArray)
  97. end
  98. return byteArray.getBytes()
  99. end
  100. tb.decode = function(byteArray)
  101. local cntOfperson = byteArray.read_uint16()
  102. tb.person = {}
  103. for i = 1, cntOfperson do
  104. local temp = person()
  105. temp.decode(byteArray)
  106. table.insert(tb.person, temp)
  107. end
  108. local cntOfother = byteArray.read_uint16()
  109. tb.other = {}
  110. for i = 1, cntOfother do
  111. local temp = person()
  112. temp.decode(byteArray)
  113. table.insert(tb.other, temp)
  114. end
  115. end
  116. tb.build = function(byteArray)
  117. byteArray.write_uint16(4)
  118. return tb.encode(byteArray)
  119. end
  120. return tb
  121. end
  122. function union()
  123. local tb = {}
  124. tb.msgId =5
  125. t.test = ""
  126. t.type = 0
  127. tb.encode = function(byteArray)
  128. byteArray.write_string(tb.test)
  129. byteArray.write_int32(tb.type)
  130. return byteArray.getBytes()
  131. end
  132. tb.decode = function(byteArray)
  133. tb.test = byteArray.read_string()
  134. tb.type = byteArray.read_int32()
  135. end
  136. tb.build = function(byteArray)
  137. byteArray.write_uint16(5)
  138. return tb.encode(byteArray)
  139. end
  140. return tb
  141. end
  142. function tbool()
  143. local tb = {}
  144. tb.msgId =6
  145. t.bool = false
  146. tb.encode = function(byteArray)
  147. byteArray.write_bool(tb.bool)
  148. return byteArray.getBytes()
  149. end
  150. tb.decode = function(byteArray)
  151. tb.bool = byteArray.read_bool()
  152. end
  153. tb.build = function(byteArray)
  154. byteArray.write_uint16(6)
  155. return tb.encode(byteArray)
  156. end
  157. return tb
  158. end
  159. function tint8()
  160. local tb = {}
  161. tb.msgId =7
  162. t.int1 = 0
  163. t.int2 = 0
  164. tb.encode = function(byteArray)
  165. byteArray.write_int8(tb.int1)
  166. byteArray.write_int8(tb.int2)
  167. return byteArray.getBytes()
  168. end
  169. tb.decode = function(byteArray)
  170. tb.int1 = byteArray.read_int8()
  171. tb.int2 = byteArray.read_int8()
  172. end
  173. tb.build = function(byteArray)
  174. byteArray.write_uint16(7)
  175. return tb.encode(byteArray)
  176. end
  177. return tb
  178. end
  179. function tuint8()
  180. local tb = {}
  181. tb.msgId =8
  182. t.int1 = 0
  183. t.int2 = 0
  184. tb.encode = function(byteArray)
  185. byteArray.write_uint8(tb.int1)
  186. byteArray.write_uint8(tb.int2)
  187. return byteArray.getBytes()
  188. end
  189. tb.decode = function(byteArray)
  190. tb.int1 = byteArray.read_uint8()
  191. tb.int2 = byteArray.read_uint8()
  192. end
  193. tb.build = function(byteArray)
  194. byteArray.write_uint16(8)
  195. return tb.encode(byteArray)
  196. end
  197. return tb
  198. end
  199. function tint16()
  200. local tb = {}
  201. tb.msgId =9
  202. t.int1 = 0
  203. t.int2 = 0
  204. tb.encode = function(byteArray)
  205. byteArray.write_int16(tb.int1)
  206. byteArray.write_int16(tb.int2)
  207. return byteArray.getBytes()
  208. end
  209. tb.decode = function(byteArray)
  210. tb.int1 = byteArray.read_int16()
  211. tb.int2 = byteArray.read_int16()
  212. end
  213. tb.build = function(byteArray)
  214. byteArray.write_uint16(9)
  215. return tb.encode(byteArray)
  216. end
  217. return tb
  218. end
  219. function tuint16()
  220. local tb = {}
  221. tb.msgId =10
  222. t.int1 = 0
  223. t.int2 = 0
  224. tb.encode = function(byteArray)
  225. byteArray.write_uint16(tb.int1)
  226. byteArray.write_uint16(tb.int2)
  227. return byteArray.getBytes()
  228. end
  229. tb.decode = function(byteArray)
  230. tb.int1 = byteArray.read_uint16()
  231. tb.int2 = byteArray.read_uint16()
  232. end
  233. tb.build = function(byteArray)
  234. byteArray.write_uint16(10)
  235. return tb.encode(byteArray)
  236. end
  237. return tb
  238. end
  239. function tint32()
  240. local tb = {}
  241. tb.msgId =11
  242. t.int1 = 0
  243. t.int2 = 0
  244. t.int3 = 0
  245. t.int4 = 0
  246. t.int5 = 0
  247. t.int6 = 0
  248. t.int7 = 0
  249. t.int8 = 0
  250. t.int9 = 0
  251. t.int10 = 0
  252. tb.encode = function(byteArray)
  253. byteArray.write_int32(tb.int1)
  254. byteArray.write_int32(tb.int2)
  255. byteArray.write_int32(tb.int3)
  256. byteArray.write_int32(tb.int4)
  257. byteArray.write_int32(tb.int5)
  258. byteArray.write_int32(tb.int6)
  259. byteArray.write_int32(tb.int7)
  260. byteArray.write_int32(tb.int8)
  261. byteArray.write_int32(tb.int9)
  262. byteArray.write_int32(tb.int10)
  263. return byteArray.getBytes()
  264. end
  265. tb.decode = function(byteArray)
  266. tb.int1 = byteArray.read_int32()
  267. tb.int2 = byteArray.read_int32()
  268. tb.int3 = byteArray.read_int32()
  269. tb.int4 = byteArray.read_int32()
  270. tb.int5 = byteArray.read_int32()
  271. tb.int6 = byteArray.read_int32()
  272. tb.int7 = byteArray.read_int32()
  273. tb.int8 = byteArray.read_int32()
  274. tb.int9 = byteArray.read_int32()
  275. tb.int10 = byteArray.read_int32()
  276. end
  277. tb.build = function(byteArray)
  278. byteArray.write_uint16(11)
  279. return tb.encode(byteArray)
  280. end
  281. return tb
  282. end
  283. function tuint32()
  284. local tb = {}
  285. tb.msgId =12
  286. t.int1 = 0
  287. t.int2 = 0
  288. tb.encode = function(byteArray)
  289. byteArray.write_uint32(tb.int1)
  290. byteArray.write_uint32(tb.int2)
  291. return byteArray.getBytes()
  292. end
  293. tb.decode = function(byteArray)
  294. tb.int1 = byteArray.read_uint32()
  295. tb.int2 = byteArray.read_uint32()
  296. end
  297. tb.build = function(byteArray)
  298. byteArray.write_uint16(12)
  299. return tb.encode(byteArray)
  300. end
  301. return tb
  302. end
  303. function tint64()
  304. local tb = {}
  305. tb.msgId =13
  306. t.int1 = 0
  307. t.int2 = 0
  308. tb.encode = function(byteArray)
  309. byteArray.write_int64(tb.int1)
  310. byteArray.write_int64(tb.int2)
  311. return byteArray.getBytes()
  312. end
  313. tb.decode = function(byteArray)
  314. tb.int1 = byteArray.read_int64()
  315. tb.int2 = byteArray.read_int64()
  316. end
  317. tb.build = function(byteArray)
  318. byteArray.write_uint16(13)
  319. return tb.encode(byteArray)
  320. end
  321. return tb
  322. end
  323. function tuint64()
  324. local tb = {}
  325. tb.msgId =14
  326. t.int1 = 0
  327. t.int2 = 0
  328. tb.encode = function(byteArray)
  329. byteArray.write_uint64(tb.int1)
  330. byteArray.write_uint64(tb.int2)
  331. return byteArray.getBytes()
  332. end
  333. tb.decode = function(byteArray)
  334. tb.int1 = byteArray.read_uint64()
  335. tb.int2 = byteArray.read_uint64()
  336. end
  337. tb.build = function(byteArray)
  338. byteArray.write_uint16(14)
  339. return tb.encode(byteArray)
  340. end
  341. return tb
  342. end
  343. function tinteger()
  344. local tb = {}
  345. tb.msgId =15
  346. t.int1 = 0
  347. t.int2 = 0
  348. t.int3 = 0
  349. t.int4 = 0
  350. t.int5 = 0
  351. t.int6 = 0
  352. t.int7 = 0
  353. t.int8 = 0
  354. tb.encode = function(byteArray)
  355. byteArray.write_integer(tb.int1)
  356. byteArray.write_integer(tb.int2)
  357. byteArray.write_integer(tb.int3)
  358. byteArray.write_integer(tb.int4)
  359. byteArray.write_integer(tb.int5)
  360. byteArray.write_integer(tb.int6)
  361. byteArray.write_integer(tb.int7)
  362. byteArray.write_integer(tb.int8)
  363. return byteArray.getBytes()
  364. end
  365. tb.decode = function(byteArray)
  366. tb.int1 = byteArray.read_integer()
  367. tb.int2 = byteArray.read_integer()
  368. tb.int3 = byteArray.read_integer()
  369. tb.int4 = byteArray.read_integer()
  370. tb.int5 = byteArray.read_integer()
  371. tb.int6 = byteArray.read_integer()
  372. tb.int7 = byteArray.read_integer()
  373. tb.int8 = byteArray.read_integer()
  374. end
  375. tb.build = function(byteArray)
  376. byteArray.write_uint16(15)
  377. return tb.encode(byteArray)
  378. end
  379. return tb
  380. end
  381. function tnumber()
  382. local tb = {}
  383. tb.msgId =16
  384. t.int1 = 0
  385. t.int2 = 0
  386. t.int3 = 0
  387. t.int4 = 0
  388. t.int5 = 0
  389. t.int6 = 0
  390. t.int7 = 0
  391. t.int8 = 0
  392. t.float1 = 0
  393. t.float2 = 0
  394. tb.encode = function(byteArray)
  395. byteArray.write_number(tb.int1)
  396. byteArray.write_number(tb.int2)
  397. byteArray.write_number(tb.int3)
  398. byteArray.write_number(tb.int4)
  399. byteArray.write_number(tb.int5)
  400. byteArray.write_number(tb.int6)
  401. byteArray.write_number(tb.int7)
  402. byteArray.write_number(tb.int8)
  403. byteArray.write_number(tb.float1)
  404. byteArray.write_number(tb.float2)
  405. return byteArray.getBytes()
  406. end
  407. tb.decode = function(byteArray)
  408. tb.int1 = byteArray.read_number()
  409. tb.int2 = byteArray.read_number()
  410. tb.int3 = byteArray.read_number()
  411. tb.int4 = byteArray.read_number()
  412. tb.int5 = byteArray.read_number()
  413. tb.int6 = byteArray.read_number()
  414. tb.int7 = byteArray.read_number()
  415. tb.int8 = byteArray.read_number()
  416. tb.float1 = byteArray.read_number()
  417. tb.float2 = byteArray.read_number()
  418. end
  419. tb.build = function(byteArray)
  420. byteArray.write_uint16(16)
  421. return tb.encode(byteArray)
  422. end
  423. return tb
  424. end
  425. function tfloat()
  426. local tb = {}
  427. tb.msgId =17
  428. t.int1 = 0
  429. t.int2 = 0
  430. tb.encode = function(byteArray)
  431. byteArray.write_float(tb.int1)
  432. byteArray.write_float(tb.int2)
  433. return byteArray.getBytes()
  434. end
  435. tb.decode = function(byteArray)
  436. tb.int1 = byteArray.read_float()
  437. tb.int2 = byteArray.read_float()
  438. end
  439. tb.build = function(byteArray)
  440. byteArray.write_uint16(17)
  441. return tb.encode(byteArray)
  442. end
  443. return tb
  444. end
  445. function tdouble()
  446. local tb = {}
  447. tb.msgId =18
  448. t.int1 = 0
  449. t.int2 = 0
  450. tb.encode = function(byteArray)
  451. byteArray.write_double(tb.int1)
  452. byteArray.write_double(tb.int2)
  453. return byteArray.getBytes()
  454. end
  455. tb.decode = function(byteArray)
  456. tb.int1 = byteArray.read_double()
  457. tb.int2 = byteArray.read_double()
  458. end
  459. tb.build = function(byteArray)
  460. byteArray.write_uint16(18)
  461. return tb.encode(byteArray)
  462. end
  463. return tb
  464. end
  465. function tstring()
  466. local tb = {}
  467. tb.msgId =19
  468. t.int1 = ""
  469. t.int2 = ""
  470. tb.encode = function(byteArray)
  471. byteArray.write_string(tb.int1)
  472. byteArray.write_string(tb.int2)
  473. return byteArray.getBytes()
  474. end
  475. tb.decode = function(byteArray)
  476. tb.int1 = byteArray.read_string()
  477. tb.int2 = byteArray.read_string()
  478. end
  479. tb.build = function(byteArray)
  480. byteArray.write_uint16(19)
  481. return tb.encode(byteArray)
  482. end
  483. return tb
  484. end
  485. function tlistbool()
  486. local tb = {}
  487. tb.msgId =20
  488. t.int1 = {}
  489. tb.encode = function(byteArray)
  490. byteArray.write_uint16(#(tb.int1))
  491. for k, v in pairs (tb.int1) do
  492. byteArray.write_bool(v)
  493. end
  494. return byteArray.getBytes()
  495. end
  496. tb.decode = function(byteArray)
  497. local cntOfint1 = byteArray.read_uint16()
  498. tb.int1 = {}
  499. for i = 1, cntOfint1 do
  500. table.insert(tb.int1, byteArray.read_bool())
  501. end
  502. end
  503. tb.build = function(byteArray)
  504. byteArray.write_uint16(20)
  505. return tb.encode(byteArray)
  506. end
  507. return tb
  508. end
  509. function tlistint8()
  510. local tb = {}
  511. tb.msgId =21
  512. t.int1 = {}
  513. tb.encode = function(byteArray)
  514. byteArray.write_uint16(#(tb.int1))
  515. for k, v in pairs (tb.int1) do
  516. byteArray.write_int8(v)
  517. end
  518. return byteArray.getBytes()
  519. end
  520. tb.decode = function(byteArray)
  521. local cntOfint1 = byteArray.read_uint16()
  522. tb.int1 = {}
  523. for i = 1, cntOfint1 do
  524. table.insert(tb.int1, byteArray.read_int8())
  525. end
  526. end
  527. tb.build = function(byteArray)
  528. byteArray.write_uint16(21)
  529. return tb.encode(byteArray)
  530. end
  531. return tb
  532. end
  533. function tlistuint8()
  534. local tb = {}
  535. tb.msgId =22
  536. t.int1 = {}
  537. tb.encode = function(byteArray)
  538. byteArray.write_uint16(#(tb.int1))
  539. for k, v in pairs (tb.int1) do
  540. byteArray.write_uint8(v)
  541. end
  542. return byteArray.getBytes()
  543. end
  544. tb.decode = function(byteArray)
  545. local cntOfint1 = byteArray.read_uint16()
  546. tb.int1 = {}
  547. for i = 1, cntOfint1 do
  548. table.insert(tb.int1, byteArray.read_uint8())
  549. end
  550. end
  551. tb.build = function(byteArray)
  552. byteArray.write_uint16(22)
  553. return tb.encode(byteArray)
  554. end
  555. return tb
  556. end
  557. function tlistint16()
  558. local tb = {}
  559. tb.msgId =23
  560. t.int1 = {}
  561. tb.encode = function(byteArray)
  562. byteArray.write_uint16(#(tb.int1))
  563. for k, v in pairs (tb.int1) do
  564. byteArray.write_int16(v)
  565. end
  566. return byteArray.getBytes()
  567. end
  568. tb.decode = function(byteArray)
  569. local cntOfint1 = byteArray.read_uint16()
  570. tb.int1 = {}
  571. for i = 1, cntOfint1 do
  572. table.insert(tb.int1, byteArray.read_int16())
  573. end
  574. end
  575. tb.build = function(byteArray)
  576. byteArray.write_uint16(23)
  577. return tb.encode(byteArray)
  578. end
  579. return tb
  580. end
  581. function tlistuint16()
  582. local tb = {}
  583. tb.msgId =24
  584. t.int1 = {}
  585. tb.encode = function(byteArray)
  586. byteArray.write_uint16(#(tb.int1))
  587. for k, v in pairs (tb.int1) do
  588. byteArray.write_uint16(v)
  589. end
  590. return byteArray.getBytes()
  591. end
  592. tb.decode = function(byteArray)
  593. local cntOfint1 = byteArray.read_uint16()
  594. tb.int1 = {}
  595. for i = 1, cntOfint1 do
  596. table.insert(tb.int1, byteArray.read_uint16())
  597. end
  598. end
  599. tb.build = function(byteArray)
  600. byteArray.write_uint16(24)
  601. return tb.encode(byteArray)
  602. end
  603. return tb
  604. end
  605. function tlistint32()
  606. local tb = {}
  607. tb.msgId =25
  608. t.int1 = {}
  609. tb.encode = function(byteArray)
  610. byteArray.write_uint16(#(tb.int1))
  611. for k, v in pairs (tb.int1) do
  612. byteArray.write_int32(v)
  613. end
  614. return byteArray.getBytes()
  615. end
  616. tb.decode = function(byteArray)
  617. local cntOfint1 = byteArray.read_uint16()
  618. tb.int1 = {}
  619. for i = 1, cntOfint1 do
  620. table.insert(tb.int1, byteArray.read_int32())
  621. end
  622. end
  623. tb.build = function(byteArray)
  624. byteArray.write_uint16(25)
  625. return tb.encode(byteArray)
  626. end
  627. return tb
  628. end
  629. function tlistuint32()
  630. local tb = {}
  631. tb.msgId =26
  632. t.int1 = {}
  633. tb.encode = function(byteArray)
  634. byteArray.write_uint16(#(tb.int1))
  635. for k, v in pairs (tb.int1) do
  636. byteArray.write_uint32(v)
  637. end
  638. return byteArray.getBytes()
  639. end
  640. tb.decode = function(byteArray)
  641. local cntOfint1 = byteArray.read_uint16()
  642. tb.int1 = {}
  643. for i = 1, cntOfint1 do
  644. table.insert(tb.int1, byteArray.read_uint32())
  645. end
  646. end
  647. tb.build = function(byteArray)
  648. byteArray.write_uint16(26)
  649. return tb.encode(byteArray)
  650. end
  651. return tb
  652. end
  653. function tlistint64()
  654. local tb = {}
  655. tb.msgId =27
  656. t.int1 = {}
  657. tb.encode = function(byteArray)
  658. byteArray.write_uint16(#(tb.int1))
  659. for k, v in pairs (tb.int1) do
  660. byteArray.write_int64(v)
  661. end
  662. return byteArray.getBytes()
  663. end
  664. tb.decode = function(byteArray)
  665. local cntOfint1 = byteArray.read_uint16()
  666. tb.int1 = {}
  667. for i = 1, cntOfint1 do
  668. table.insert(tb.int1, byteArray.read_int64())
  669. end
  670. end
  671. tb.build = function(byteArray)
  672. byteArray.write_uint16(27)
  673. return tb.encode(byteArray)
  674. end
  675. return tb
  676. end
  677. function tlistuint64()
  678. local tb = {}
  679. tb.msgId =28
  680. t.int1 = {}
  681. tb.encode = function(byteArray)
  682. byteArray.write_uint16(#(tb.int1))
  683. for k, v in pairs (tb.int1) do
  684. byteArray.write_uint64(v)
  685. end
  686. return byteArray.getBytes()
  687. end
  688. tb.decode = function(byteArray)
  689. local cntOfint1 = byteArray.read_uint16()
  690. tb.int1 = {}
  691. for i = 1, cntOfint1 do
  692. table.insert(tb.int1, byteArray.read_uint64())
  693. end
  694. end
  695. tb.build = function(byteArray)
  696. byteArray.write_uint16(28)
  697. return tb.encode(byteArray)
  698. end
  699. return tb
  700. end
  701. function tlistinteger()
  702. local tb = {}
  703. tb.msgId =29
  704. t.int1 = {}
  705. tb.encode = function(byteArray)
  706. byteArray.write_uint16(#(tb.int1))
  707. for k, v in pairs (tb.int1) do
  708. byteArray.write_integer(v)
  709. end
  710. return byteArray.getBytes()
  711. end
  712. tb.decode = function(byteArray)
  713. local cntOfint1 = byteArray.read_uint16()
  714. tb.int1 = {}
  715. for i = 1, cntOfint1 do
  716. table.insert(tb.int1, byteArray.read_integer())
  717. end
  718. end
  719. tb.build = function(byteArray)
  720. byteArray.write_uint16(29)
  721. return tb.encode(byteArray)
  722. end
  723. return tb
  724. end
  725. function tlistnumber()
  726. local tb = {}
  727. tb.msgId =30
  728. t.int1 = {}
  729. tb.encode = function(byteArray)
  730. byteArray.write_uint16(#(tb.int1))
  731. for k, v in pairs (tb.int1) do
  732. byteArray.write_number(v)
  733. end
  734. return byteArray.getBytes()
  735. end
  736. tb.decode = function(byteArray)
  737. local cntOfint1 = byteArray.read_uint16()
  738. tb.int1 = {}
  739. for i = 1, cntOfint1 do
  740. table.insert(tb.int1, byteArray.read_number())
  741. end
  742. end
  743. tb.build = function(byteArray)
  744. byteArray.write_uint16(30)
  745. return tb.encode(byteArray)
  746. end
  747. return tb
  748. end
  749. function tlistfloat()
  750. local tb = {}
  751. tb.msgId =31
  752. t.int1 = {}
  753. tb.encode = function(byteArray)
  754. byteArray.write_uint16(#(tb.int1))
  755. for k, v in pairs (tb.int1) do
  756. byteArray.write_float(v)
  757. end
  758. return byteArray.getBytes()
  759. end
  760. tb.decode = function(byteArray)
  761. local cntOfint1 = byteArray.read_uint16()
  762. tb.int1 = {}
  763. for i = 1, cntOfint1 do
  764. table.insert(tb.int1, byteArray.read_float())
  765. end
  766. end
  767. tb.build = function(byteArray)
  768. byteArray.write_uint16(31)
  769. return tb.encode(byteArray)
  770. end
  771. return tb
  772. end
  773. function tlistdouble()
  774. local tb = {}
  775. tb.msgId =32
  776. t.int1 = {}
  777. tb.encode = function(byteArray)
  778. byteArray.write_uint16(#(tb.int1))
  779. for k, v in pairs (tb.int1) do
  780. byteArray.write_double(v)
  781. end
  782. return byteArray.getBytes()
  783. end
  784. tb.decode = function(byteArray)
  785. local cntOfint1 = byteArray.read_uint16()
  786. tb.int1 = {}
  787. for i = 1, cntOfint1 do
  788. table.insert(tb.int1, byteArray.read_double())
  789. end
  790. end
  791. tb.build = function(byteArray)
  792. byteArray.write_uint16(32)
  793. return tb.encode(byteArray)
  794. end
  795. return tb
  796. end
  797. function tliststring()
  798. local tb = {}
  799. tb.msgId =33
  800. t.int1 = {}
  801. tb.encode = function(byteArray)
  802. byteArray.write_uint16(#(tb.int1))
  803. for k, v in pairs (tb.int1) do
  804. byteArray.write_string(v)
  805. end
  806. return byteArray.getBytes()
  807. end
  808. tb.decode = function(byteArray)
  809. local cntOfint1 = byteArray.read_uint16()
  810. tb.int1 = {}
  811. for i = 1, cntOfint1 do
  812. table.insert(tb.int1, byteArray.read_string())
  813. end
  814. end
  815. tb.build = function(byteArray)
  816. byteArray.write_uint16(33)
  817. return tb.encode(byteArray)
  818. end
  819. return tb
  820. end
  821. function tlistunion()
  822. local tb = {}
  823. tb.msgId =34
  824. t.int1 = {}
  825. tb.encode = function(byteArray)
  826. byteArray.write_uint16(#(tb.int1))
  827. for k, v in pairs(tb.int1) do
  828. byteArray = v.encode(byteArray)
  829. end
  830. return byteArray.getBytes()
  831. end
  832. tb.decode = function(byteArray)
  833. local cntOfint1 = byteArray.read_uint16()
  834. tb.int1 = {}
  835. for i = 1, cntOfint1 do
  836. local temp = union()
  837. temp.decode(byteArray)
  838. table.insert(tb.int1, temp)
  839. end
  840. end
  841. tb.build = function(byteArray)
  842. byteArray.write_uint16(34)
  843. return tb.encode(byteArray)
  844. end
  845. return tb
  846. end
  847. function allType()
  848. local tb = {}
  849. tb.msgId =35
  850. t.bool = false
  851. t.int8 = 0
  852. t.uint8 = 0
  853. t.int16 = 0
  854. t.uint16 = 0
  855. t.int32 = 0
  856. t.uint32 = 0
  857. t.int64 = 0
  858. t.uint64 = 0
  859. t.inte8 = 0
  860. t.uinte8 = 0
  861. t.inte16 = 0
  862. t.uinte16 = 0
  863. t.inte32 = 0
  864. t.uinte32 = 0
  865. t.inte64 = 0
  866. t.uinte64 = 0
  867. t.num8 = 0
  868. t.unum8 = 0
  869. t.num16 = 0
  870. t.unum16 = 0
  871. t.num32 = 0
  872. t.unum32 = 0
  873. t.num64 = 0
  874. t.unum64 = 0
  875. t.numfloat = 0
  876. t.numdouble = 0
  877. t.float = 0
  878. t.double = 0
  879. t.string1 = ""
  880. t.string2 = ""
  881. t.union = {}
  882. t.lbool = {}
  883. t.lint8 = {}
  884. t.luint8 = {}
  885. t.lint16 = {}
  886. t.luint16 = {}
  887. t.lint32 = {}
  888. t.luint32 = {}
  889. t.lint64 = {}
  890. t.luint64 = {}
  891. t.linte8 = {}
  892. t.linte16 = {}
  893. t.linte32 = {}
  894. t.linte64 = {}
  895. t.lnum8 = {}
  896. t.lnum16 = {}
  897. t.lnum32 = {}
  898. t.lnum64 = {}
  899. t.lnfloat32 = {}
  900. t.lnfloat64 = {}
  901. t.lfloat = {}
  902. t.ldouble = {}
  903. t.lstring = {}
  904. t.lunion = {}
  905. tb.encode = function(byteArray)
  906. byteArray.write_bool(tb.bool)
  907. byteArray.write_int8(tb.int8)
  908. byteArray.write_uint8(tb.uint8)
  909. byteArray.write_int16(tb.int16)
  910. byteArray.write_uint16(tb.uint16)
  911. byteArray.write_int32(tb.int32)
  912. byteArray.write_uint32(tb.uint32)
  913. byteArray.write_int64(tb.int64)
  914. byteArray.write_uint64(tb.uint64)
  915. byteArray.write_integer(tb.inte8)
  916. byteArray.write_integer(tb.uinte8)
  917. byteArray.write_integer(tb.inte16)
  918. byteArray.write_integer(tb.uinte16)
  919. byteArray.write_integer(tb.inte32)
  920. byteArray.write_integer(tb.uinte32)
  921. byteArray.write_integer(tb.inte64)
  922. byteArray.write_integer(tb.uinte64)
  923. byteArray.write_number(tb.num8)
  924. byteArray.write_number(tb.unum8)
  925. byteArray.write_number(tb.num16)
  926. byteArray.write_number(tb.unum16)
  927. byteArray.write_number(tb.num32)
  928. byteArray.write_number(tb.unum32)
  929. byteArray.write_number(tb.num64)
  930. byteArray.write_number(tb.unum64)
  931. byteArray.write_number(tb.numfloat)
  932. byteArray.write_number(tb.numdouble)
  933. byteArray.write_float(tb.float)
  934. byteArray.write_double(tb.double)
  935. byteArray.write_string(tb.string1)
  936. byteArray.write_string(tb.string2)
  937. if tb.union and next(tb.union) then
  938. byteArray.write_uint8(1)
  939. tb.union.encode(byteArray)
  940. else
  941. byteArray.write_uint8(0)
  942. end
  943. byteArray.write_uint16(#(tb.lbool))
  944. for k, v in pairs (tb.lbool) do
  945. byteArray.write_bool(v)
  946. end
  947. byteArray.write_uint16(#(tb.lint8))
  948. for k, v in pairs (tb.lint8) do
  949. byteArray.write_int8(v)
  950. end
  951. byteArray.write_uint16(#(tb.luint8))
  952. for k, v in pairs (tb.luint8) do
  953. byteArray.write_uint8(v)
  954. end
  955. byteArray.write_uint16(#(tb.lint16))
  956. for k, v in pairs (tb.lint16) do
  957. byteArray.write_int16(v)
  958. end
  959. byteArray.write_uint16(#(tb.luint16))
  960. for k, v in pairs (tb.luint16) do
  961. byteArray.write_uint16(v)
  962. end
  963. byteArray.write_uint16(#(tb.lint32))
  964. for k, v in pairs (tb.lint32) do
  965. byteArray.write_int32(v)
  966. end
  967. byteArray.write_uint16(#(tb.luint32))
  968. for k, v in pairs (tb.luint32) do
  969. byteArray.write_uint32(v)
  970. end
  971. byteArray.write_uint16(#(tb.lint64))
  972. for k, v in pairs (tb.lint64) do
  973. byteArray.write_int64(v)
  974. end
  975. byteArray.write_uint16(#(tb.luint64))
  976. for k, v in pairs (tb.luint64) do
  977. byteArray.write_uint64(v)
  978. end
  979. byteArray.write_uint16(#(tb.linte8))
  980. for k, v in pairs (tb.linte8) do
  981. byteArray.write_integer(v)
  982. end
  983. byteArray.write_uint16(#(tb.linte16))
  984. for k, v in pairs (tb.linte16) do
  985. byteArray.write_integer(v)
  986. end
  987. byteArray.write_uint16(#(tb.linte32))
  988. for k, v in pairs (tb.linte32) do
  989. byteArray.write_integer(v)
  990. end
  991. byteArray.write_uint16(#(tb.linte64))
  992. for k, v in pairs (tb.linte64) do
  993. byteArray.write_integer(v)
  994. end
  995. byteArray.write_uint16(#(tb.lnum8))
  996. for k, v in pairs (tb.lnum8) do
  997. byteArray.write_number(v)
  998. end
  999. byteArray.write_uint16(#(tb.lnum16))
  1000. for k, v in pairs (tb.lnum16) do
  1001. byteArray.write_number(v)
  1002. end
  1003. byteArray.write_uint16(#(tb.lnum32))
  1004. for k, v in pairs (tb.lnum32) do
  1005. byteArray.write_number(v)
  1006. end
  1007. byteArray.write_uint16(#(tb.lnum64))
  1008. for k, v in pairs (tb.lnum64) do
  1009. byteArray.write_number(v)
  1010. end
  1011. byteArray.write_uint16(#(tb.lnfloat32))
  1012. for k, v in pairs (tb.lnfloat32) do
  1013. byteArray.write_number(v)
  1014. end
  1015. byteArray.write_uint16(#(tb.lnfloat64))
  1016. for k, v in pairs (tb.lnfloat64) do
  1017. byteArray.write_number(v)
  1018. end
  1019. byteArray.write_uint16(#(tb.lfloat))
  1020. for k, v in pairs (tb.lfloat) do
  1021. byteArray.write_float(v)
  1022. end
  1023. byteArray.write_uint16(#(tb.ldouble))
  1024. for k, v in pairs (tb.ldouble) do
  1025. byteArray.write_double(v)
  1026. end
  1027. byteArray.write_uint16(#(tb.lstring))
  1028. for k, v in pairs (tb.lstring) do
  1029. byteArray.write_string(v)
  1030. end
  1031. byteArray.write_uint16(#(tb.lunion))
  1032. for k, v in pairs(tb.lunion) do
  1033. byteArray = v.encode(byteArray)
  1034. end
  1035. return byteArray.getBytes()
  1036. end
  1037. tb.decode = function(byteArray)
  1038. tb.bool = byteArray.read_bool()
  1039. tb.int8 = byteArray.read_int8()
  1040. tb.uint8 = byteArray.read_uint8()
  1041. tb.int16 = byteArray.read_int16()
  1042. tb.uint16 = byteArray.read_uint16()
  1043. tb.int32 = byteArray.read_int32()
  1044. tb.uint32 = byteArray.read_uint32()
  1045. tb.int64 = byteArray.read_int64()
  1046. tb.uint64 = byteArray.read_uint64()
  1047. tb.inte8 = byteArray.read_integer()
  1048. tb.uinte8 = byteArray.read_integer()
  1049. tb.inte16 = byteArray.read_integer()
  1050. tb.uinte16 = byteArray.read_integer()
  1051. tb.inte32 = byteArray.read_integer()
  1052. tb.uinte32 = byteArray.read_integer()
  1053. tb.inte64 = byteArray.read_integer()
  1054. tb.uinte64 = byteArray.read_integer()
  1055. tb.num8 = byteArray.read_number()
  1056. tb.unum8 = byteArray.read_number()
  1057. tb.num16 = byteArray.read_number()
  1058. tb.unum16 = byteArray.read_number()
  1059. tb.num32 = byteArray.read_number()
  1060. tb.unum32 = byteArray.read_number()
  1061. tb.num64 = byteArray.read_number()
  1062. tb.unum64 = byteArray.read_number()
  1063. tb.numfloat = byteArray.read_number()
  1064. tb.numdouble = byteArray.read_number()
  1065. tb.float = byteArray.read_float()
  1066. tb.double = byteArray.read_double()
  1067. tb.string1 = byteArray.read_string()
  1068. tb.string2 = byteArray.read_string()
  1069. local isNilunion = byteArray.read_uint8()
  1070. if isNilunion > 0 then
  1071. tb.union = union()
  1072. tb.union.decode(byteArray)
  1073. else
  1074. tb.union = {}
  1075. end
  1076. local cntOflbool = byteArray.read_uint16()
  1077. tb.lbool = {}
  1078. for i = 1, cntOflbool do
  1079. table.insert(tb.lbool, byteArray.read_bool())
  1080. end
  1081. local cntOflint8 = byteArray.read_uint16()
  1082. tb.lint8 = {}
  1083. for i = 1, cntOflint8 do
  1084. table.insert(tb.lint8, byteArray.read_int8())
  1085. end
  1086. local cntOfluint8 = byteArray.read_uint16()
  1087. tb.luint8 = {}
  1088. for i = 1, cntOfluint8 do
  1089. table.insert(tb.luint8, byteArray.read_uint8())
  1090. end
  1091. local cntOflint16 = byteArray.read_uint16()
  1092. tb.lint16 = {}
  1093. for i = 1, cntOflint16 do
  1094. table.insert(tb.lint16, byteArray.read_int16())
  1095. end
  1096. local cntOfluint16 = byteArray.read_uint16()
  1097. tb.luint16 = {}
  1098. for i = 1, cntOfluint16 do
  1099. table.insert(tb.luint16, byteArray.read_uint16())
  1100. end
  1101. local cntOflint32 = byteArray.read_uint16()
  1102. tb.lint32 = {}
  1103. for i = 1, cntOflint32 do
  1104. table.insert(tb.lint32, byteArray.read_int32())
  1105. end
  1106. local cntOfluint32 = byteArray.read_uint16()
  1107. tb.luint32 = {}
  1108. for i = 1, cntOfluint32 do
  1109. table.insert(tb.luint32, byteArray.read_uint32())
  1110. end
  1111. local cntOflint64 = byteArray.read_uint16()
  1112. tb.lint64 = {}
  1113. for i = 1, cntOflint64 do
  1114. table.insert(tb.lint64, byteArray.read_int64())
  1115. end
  1116. local cntOfluint64 = byteArray.read_uint16()
  1117. tb.luint64 = {}
  1118. for i = 1, cntOfluint64 do
  1119. table.insert(tb.luint64, byteArray.read_uint64())
  1120. end
  1121. local cntOflinte8 = byteArray.read_uint16()
  1122. tb.linte8 = {}
  1123. for i = 1, cntOflinte8 do
  1124. table.insert(tb.linte8, byteArray.read_integer())
  1125. end
  1126. local cntOflinte16 = byteArray.read_uint16()
  1127. tb.linte16 = {}
  1128. for i = 1, cntOflinte16 do
  1129. table.insert(tb.linte16, byteArray.read_integer())
  1130. end
  1131. local cntOflinte32 = byteArray.read_uint16()
  1132. tb.linte32 = {}
  1133. for i = 1, cntOflinte32 do
  1134. table.insert(tb.linte32, byteArray.read_integer())
  1135. end
  1136. local cntOflinte64 = byteArray.read_uint16()
  1137. tb.linte64 = {}
  1138. for i = 1, cntOflinte64 do
  1139. table.insert(tb.linte64, byteArray.read_integer())
  1140. end
  1141. local cntOflnum8 = byteArray.read_uint16()
  1142. tb.lnum8 = {}
  1143. for i = 1, cntOflnum8 do
  1144. table.insert(tb.lnum8, byteArray.read_number())
  1145. end
  1146. local cntOflnum16 = byteArray.read_uint16()
  1147. tb.lnum16 = {}
  1148. for i = 1, cntOflnum16 do
  1149. table.insert(tb.lnum16, byteArray.read_number())
  1150. end
  1151. local cntOflnum32 = byteArray.read_uint16()
  1152. tb.lnum32 = {}
  1153. for i = 1, cntOflnum32 do
  1154. table.insert(tb.lnum32, byteArray.read_number())
  1155. end
  1156. local cntOflnum64 = byteArray.read_uint16()
  1157. tb.lnum64 = {}
  1158. for i = 1, cntOflnum64 do
  1159. table.insert(tb.lnum64, byteArray.read_number())
  1160. end
  1161. local cntOflnfloat32 = byteArray.read_uint16()
  1162. tb.lnfloat32 = {}
  1163. for i = 1, cntOflnfloat32 do
  1164. table.insert(tb.lnfloat32, byteArray.read_number())
  1165. end
  1166. local cntOflnfloat64 = byteArray.read_uint16()
  1167. tb.lnfloat64 = {}
  1168. for i = 1, cntOflnfloat64 do
  1169. table.insert(tb.lnfloat64, byteArray.read_number())
  1170. end
  1171. local cntOflfloat = byteArray.read_uint16()
  1172. tb.lfloat = {}
  1173. for i = 1, cntOflfloat do
  1174. table.insert(tb.lfloat, byteArray.read_float())
  1175. end
  1176. local cntOfldouble = byteArray.read_uint16()
  1177. tb.ldouble = {}
  1178. for i = 1, cntOfldouble do
  1179. table.insert(tb.ldouble, byteArray.read_double())
  1180. end
  1181. local cntOflstring = byteArray.read_uint16()
  1182. tb.lstring = {}
  1183. for i = 1, cntOflstring do
  1184. table.insert(tb.lstring, byteArray.read_string())
  1185. end
  1186. local cntOflunion = byteArray.read_uint16()
  1187. tb.lunion = {}
  1188. for i = 1, cntOflunion do
  1189. local temp = union()
  1190. temp.decode(byteArray)
  1191. table.insert(tb.lunion, temp)
  1192. end
  1193. end
  1194. tb.build = function(byteArray)
  1195. byteArray.write_uint16(35)
  1196. return tb.encode(byteArray)
  1197. end
  1198. return tb
  1199. end
  1200. function testnull()
  1201. local tb = {}
  1202. tb.msgId =36
  1203. tb.encode = function(byteArray)
  1204. return byteArray.getBytes()
  1205. end
  1206. tb.decode = function(byteArray)
  1207. end
  1208. tb.build = function(byteArray)
  1209. byteArray.write_uint16(36)
  1210. return tb.encode(byteArray)
  1211. end
  1212. return tb
  1213. end
  1214. function person1()
  1215. local tb = {}
  1216. tb.msgId =1001
  1217. t.name = ""
  1218. t.id = 0
  1219. t.email = ""
  1220. t.phone = {}
  1221. tb.encode = function(byteArray)
  1222. byteArray.write_string(tb.name)
  1223. byteArray.write_int32(tb.id)
  1224. byteArray.write_string(tb.email)
  1225. byteArray.write_uint16(#(tb.phone))
  1226. for k, v in pairs(tb.phone) do
  1227. byteArray = v.encode(byteArray)
  1228. end
  1229. return byteArray.getBytes()
  1230. end
  1231. tb.decode = function(byteArray)
  1232. tb.name = byteArray.read_string()
  1233. tb.id = byteArray.read_int32()
  1234. tb.email = byteArray.read_string()
  1235. local cntOfphone = byteArray.read_uint16()
  1236. tb.phone = {}
  1237. for i = 1, cntOfphone do
  1238. local temp = phoneNumber()
  1239. temp.decode(byteArray)
  1240. table.insert(tb.phone, temp)
  1241. end
  1242. end
  1243. tb.build = function(byteArray)
  1244. byteArray.write_uint16(1001)
  1245. return tb.encode(byteArray)
  1246. end
  1247. return tb
  1248. end