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.

1470 lines
30 KiB

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