message_xdr.go 30 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054
  1. // ************************************************************
  2. // This file is automatically generated by genxdr. Do not edit.
  3. // ************************************************************
  4. package protocol
  5. import (
  6. "bytes"
  7. "io"
  8. "github.com/calmh/xdr"
  9. )
  10. /*
  11. IndexMessage Structure:
  12. 0 1 2 3
  13. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  14. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  15. | Length of Folder |
  16. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  17. / /
  18. \ Folder (variable length) \
  19. / /
  20. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  21. | Number of Files |
  22. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  23. / /
  24. \ Zero or more FileInfo Structures \
  25. / /
  26. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  27. struct IndexMessage {
  28. string Folder<64>;
  29. FileInfo Files<>;
  30. }
  31. */
  32. func (o IndexMessage) EncodeXDR(w io.Writer) (int, error) {
  33. var xw = xdr.NewWriter(w)
  34. return o.encodeXDR(xw)
  35. }
  36. func (o IndexMessage) MarshalXDR() ([]byte, error) {
  37. return o.AppendXDR(make([]byte, 0, 128))
  38. }
  39. func (o IndexMessage) MustMarshalXDR() []byte {
  40. bs, err := o.MarshalXDR()
  41. if err != nil {
  42. panic(err)
  43. }
  44. return bs
  45. }
  46. func (o IndexMessage) AppendXDR(bs []byte) ([]byte, error) {
  47. var aw = xdr.AppendWriter(bs)
  48. var xw = xdr.NewWriter(&aw)
  49. _, err := o.encodeXDR(xw)
  50. return []byte(aw), err
  51. }
  52. func (o IndexMessage) encodeXDR(xw *xdr.Writer) (int, error) {
  53. if l := len(o.Folder); l > 64 {
  54. return xw.Tot(), xdr.ElementSizeExceeded("Folder", l, 64)
  55. }
  56. xw.WriteString(o.Folder)
  57. xw.WriteUint32(uint32(len(o.Files)))
  58. for i := range o.Files {
  59. _, err := o.Files[i].encodeXDR(xw)
  60. if err != nil {
  61. return xw.Tot(), err
  62. }
  63. }
  64. return xw.Tot(), xw.Error()
  65. }
  66. func (o *IndexMessage) DecodeXDR(r io.Reader) error {
  67. xr := xdr.NewReader(r)
  68. return o.decodeXDR(xr)
  69. }
  70. func (o *IndexMessage) UnmarshalXDR(bs []byte) error {
  71. var br = bytes.NewReader(bs)
  72. var xr = xdr.NewReader(br)
  73. return o.decodeXDR(xr)
  74. }
  75. func (o *IndexMessage) decodeXDR(xr *xdr.Reader) error {
  76. o.Folder = xr.ReadStringMax(64)
  77. _FilesSize := int(xr.ReadUint32())
  78. o.Files = make([]FileInfo, _FilesSize)
  79. for i := range o.Files {
  80. (&o.Files[i]).decodeXDR(xr)
  81. }
  82. return xr.Error()
  83. }
  84. /*
  85. FileInfo Structure:
  86. 0 1 2 3
  87. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  88. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  89. | Length of Name |
  90. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  91. / /
  92. \ Name (variable length) \
  93. / /
  94. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  95. | Flags |
  96. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  97. | |
  98. + Modified (64 bits) +
  99. | |
  100. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  101. | |
  102. + Version (64 bits) +
  103. | |
  104. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  105. | |
  106. + Local Version (64 bits) +
  107. | |
  108. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  109. | Number of Blocks |
  110. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  111. / /
  112. \ Zero or more BlockInfo Structures \
  113. / /
  114. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  115. struct FileInfo {
  116. string Name<8192>;
  117. unsigned int Flags;
  118. hyper Modified;
  119. unsigned hyper Version;
  120. unsigned hyper LocalVersion;
  121. BlockInfo Blocks<>;
  122. }
  123. */
  124. func (o FileInfo) EncodeXDR(w io.Writer) (int, error) {
  125. var xw = xdr.NewWriter(w)
  126. return o.encodeXDR(xw)
  127. }
  128. func (o FileInfo) MarshalXDR() ([]byte, error) {
  129. return o.AppendXDR(make([]byte, 0, 128))
  130. }
  131. func (o FileInfo) MustMarshalXDR() []byte {
  132. bs, err := o.MarshalXDR()
  133. if err != nil {
  134. panic(err)
  135. }
  136. return bs
  137. }
  138. func (o FileInfo) AppendXDR(bs []byte) ([]byte, error) {
  139. var aw = xdr.AppendWriter(bs)
  140. var xw = xdr.NewWriter(&aw)
  141. _, err := o.encodeXDR(xw)
  142. return []byte(aw), err
  143. }
  144. func (o FileInfo) encodeXDR(xw *xdr.Writer) (int, error) {
  145. if l := len(o.Name); l > 8192 {
  146. return xw.Tot(), xdr.ElementSizeExceeded("Name", l, 8192)
  147. }
  148. xw.WriteString(o.Name)
  149. xw.WriteUint32(o.Flags)
  150. xw.WriteUint64(uint64(o.Modified))
  151. xw.WriteUint64(o.Version)
  152. xw.WriteUint64(o.LocalVersion)
  153. xw.WriteUint32(uint32(len(o.Blocks)))
  154. for i := range o.Blocks {
  155. _, err := o.Blocks[i].encodeXDR(xw)
  156. if err != nil {
  157. return xw.Tot(), err
  158. }
  159. }
  160. return xw.Tot(), xw.Error()
  161. }
  162. func (o *FileInfo) DecodeXDR(r io.Reader) error {
  163. xr := xdr.NewReader(r)
  164. return o.decodeXDR(xr)
  165. }
  166. func (o *FileInfo) UnmarshalXDR(bs []byte) error {
  167. var br = bytes.NewReader(bs)
  168. var xr = xdr.NewReader(br)
  169. return o.decodeXDR(xr)
  170. }
  171. func (o *FileInfo) decodeXDR(xr *xdr.Reader) error {
  172. o.Name = xr.ReadStringMax(8192)
  173. o.Flags = xr.ReadUint32()
  174. o.Modified = int64(xr.ReadUint64())
  175. o.Version = xr.ReadUint64()
  176. o.LocalVersion = xr.ReadUint64()
  177. _BlocksSize := int(xr.ReadUint32())
  178. o.Blocks = make([]BlockInfo, _BlocksSize)
  179. for i := range o.Blocks {
  180. (&o.Blocks[i]).decodeXDR(xr)
  181. }
  182. return xr.Error()
  183. }
  184. /*
  185. FileInfoTruncated Structure:
  186. 0 1 2 3
  187. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  188. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  189. | Length of Name |
  190. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  191. / /
  192. \ Name (variable length) \
  193. / /
  194. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  195. | Flags |
  196. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  197. | |
  198. + Modified (64 bits) +
  199. | |
  200. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  201. | |
  202. + Version (64 bits) +
  203. | |
  204. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  205. | |
  206. + Local Version (64 bits) +
  207. | |
  208. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  209. | Num Blocks |
  210. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  211. struct FileInfoTruncated {
  212. string Name<8192>;
  213. unsigned int Flags;
  214. hyper Modified;
  215. unsigned hyper Version;
  216. unsigned hyper LocalVersion;
  217. unsigned int NumBlocks;
  218. }
  219. */
  220. func (o FileInfoTruncated) EncodeXDR(w io.Writer) (int, error) {
  221. var xw = xdr.NewWriter(w)
  222. return o.encodeXDR(xw)
  223. }
  224. func (o FileInfoTruncated) MarshalXDR() ([]byte, error) {
  225. return o.AppendXDR(make([]byte, 0, 128))
  226. }
  227. func (o FileInfoTruncated) MustMarshalXDR() []byte {
  228. bs, err := o.MarshalXDR()
  229. if err != nil {
  230. panic(err)
  231. }
  232. return bs
  233. }
  234. func (o FileInfoTruncated) AppendXDR(bs []byte) ([]byte, error) {
  235. var aw = xdr.AppendWriter(bs)
  236. var xw = xdr.NewWriter(&aw)
  237. _, err := o.encodeXDR(xw)
  238. return []byte(aw), err
  239. }
  240. func (o FileInfoTruncated) encodeXDR(xw *xdr.Writer) (int, error) {
  241. if l := len(o.Name); l > 8192 {
  242. return xw.Tot(), xdr.ElementSizeExceeded("Name", l, 8192)
  243. }
  244. xw.WriteString(o.Name)
  245. xw.WriteUint32(o.Flags)
  246. xw.WriteUint64(uint64(o.Modified))
  247. xw.WriteUint64(o.Version)
  248. xw.WriteUint64(o.LocalVersion)
  249. xw.WriteUint32(o.NumBlocks)
  250. return xw.Tot(), xw.Error()
  251. }
  252. func (o *FileInfoTruncated) DecodeXDR(r io.Reader) error {
  253. xr := xdr.NewReader(r)
  254. return o.decodeXDR(xr)
  255. }
  256. func (o *FileInfoTruncated) UnmarshalXDR(bs []byte) error {
  257. var br = bytes.NewReader(bs)
  258. var xr = xdr.NewReader(br)
  259. return o.decodeXDR(xr)
  260. }
  261. func (o *FileInfoTruncated) decodeXDR(xr *xdr.Reader) error {
  262. o.Name = xr.ReadStringMax(8192)
  263. o.Flags = xr.ReadUint32()
  264. o.Modified = int64(xr.ReadUint64())
  265. o.Version = xr.ReadUint64()
  266. o.LocalVersion = xr.ReadUint64()
  267. o.NumBlocks = xr.ReadUint32()
  268. return xr.Error()
  269. }
  270. /*
  271. BlockInfo Structure:
  272. 0 1 2 3
  273. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  274. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  275. | Size |
  276. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  277. | Length of Hash |
  278. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  279. / /
  280. \ Hash (variable length) \
  281. / /
  282. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  283. struct BlockInfo {
  284. unsigned int Size;
  285. opaque Hash<64>;
  286. }
  287. */
  288. func (o BlockInfo) EncodeXDR(w io.Writer) (int, error) {
  289. var xw = xdr.NewWriter(w)
  290. return o.encodeXDR(xw)
  291. }
  292. func (o BlockInfo) MarshalXDR() ([]byte, error) {
  293. return o.AppendXDR(make([]byte, 0, 128))
  294. }
  295. func (o BlockInfo) MustMarshalXDR() []byte {
  296. bs, err := o.MarshalXDR()
  297. if err != nil {
  298. panic(err)
  299. }
  300. return bs
  301. }
  302. func (o BlockInfo) AppendXDR(bs []byte) ([]byte, error) {
  303. var aw = xdr.AppendWriter(bs)
  304. var xw = xdr.NewWriter(&aw)
  305. _, err := o.encodeXDR(xw)
  306. return []byte(aw), err
  307. }
  308. func (o BlockInfo) encodeXDR(xw *xdr.Writer) (int, error) {
  309. xw.WriteUint32(o.Size)
  310. if l := len(o.Hash); l > 64 {
  311. return xw.Tot(), xdr.ElementSizeExceeded("Hash", l, 64)
  312. }
  313. xw.WriteBytes(o.Hash)
  314. return xw.Tot(), xw.Error()
  315. }
  316. func (o *BlockInfo) DecodeXDR(r io.Reader) error {
  317. xr := xdr.NewReader(r)
  318. return o.decodeXDR(xr)
  319. }
  320. func (o *BlockInfo) UnmarshalXDR(bs []byte) error {
  321. var br = bytes.NewReader(bs)
  322. var xr = xdr.NewReader(br)
  323. return o.decodeXDR(xr)
  324. }
  325. func (o *BlockInfo) decodeXDR(xr *xdr.Reader) error {
  326. o.Size = xr.ReadUint32()
  327. o.Hash = xr.ReadBytesMax(64)
  328. return xr.Error()
  329. }
  330. /*
  331. RequestMessage Structure:
  332. 0 1 2 3
  333. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  334. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  335. | Length of Folder |
  336. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  337. / /
  338. \ Folder (variable length) \
  339. / /
  340. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  341. | Length of Name |
  342. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  343. / /
  344. \ Name (variable length) \
  345. / /
  346. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  347. | |
  348. + Offset (64 bits) +
  349. | |
  350. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  351. | Size |
  352. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  353. struct RequestMessage {
  354. string Folder<64>;
  355. string Name<8192>;
  356. unsigned hyper Offset;
  357. unsigned int Size;
  358. }
  359. */
  360. func (o RequestMessage) EncodeXDR(w io.Writer) (int, error) {
  361. var xw = xdr.NewWriter(w)
  362. return o.encodeXDR(xw)
  363. }
  364. func (o RequestMessage) MarshalXDR() ([]byte, error) {
  365. return o.AppendXDR(make([]byte, 0, 128))
  366. }
  367. func (o RequestMessage) MustMarshalXDR() []byte {
  368. bs, err := o.MarshalXDR()
  369. if err != nil {
  370. panic(err)
  371. }
  372. return bs
  373. }
  374. func (o RequestMessage) AppendXDR(bs []byte) ([]byte, error) {
  375. var aw = xdr.AppendWriter(bs)
  376. var xw = xdr.NewWriter(&aw)
  377. _, err := o.encodeXDR(xw)
  378. return []byte(aw), err
  379. }
  380. func (o RequestMessage) encodeXDR(xw *xdr.Writer) (int, error) {
  381. if l := len(o.Folder); l > 64 {
  382. return xw.Tot(), xdr.ElementSizeExceeded("Folder", l, 64)
  383. }
  384. xw.WriteString(o.Folder)
  385. if l := len(o.Name); l > 8192 {
  386. return xw.Tot(), xdr.ElementSizeExceeded("Name", l, 8192)
  387. }
  388. xw.WriteString(o.Name)
  389. xw.WriteUint64(o.Offset)
  390. xw.WriteUint32(o.Size)
  391. return xw.Tot(), xw.Error()
  392. }
  393. func (o *RequestMessage) DecodeXDR(r io.Reader) error {
  394. xr := xdr.NewReader(r)
  395. return o.decodeXDR(xr)
  396. }
  397. func (o *RequestMessage) UnmarshalXDR(bs []byte) error {
  398. var br = bytes.NewReader(bs)
  399. var xr = xdr.NewReader(br)
  400. return o.decodeXDR(xr)
  401. }
  402. func (o *RequestMessage) decodeXDR(xr *xdr.Reader) error {
  403. o.Folder = xr.ReadStringMax(64)
  404. o.Name = xr.ReadStringMax(8192)
  405. o.Offset = xr.ReadUint64()
  406. o.Size = xr.ReadUint32()
  407. return xr.Error()
  408. }
  409. /*
  410. ResponseMessage Structure:
  411. 0 1 2 3
  412. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  413. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  414. | Length of Data |
  415. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  416. / /
  417. \ Data (variable length) \
  418. / /
  419. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  420. struct ResponseMessage {
  421. opaque Data<>;
  422. }
  423. */
  424. func (o ResponseMessage) EncodeXDR(w io.Writer) (int, error) {
  425. var xw = xdr.NewWriter(w)
  426. return o.encodeXDR(xw)
  427. }
  428. func (o ResponseMessage) MarshalXDR() ([]byte, error) {
  429. return o.AppendXDR(make([]byte, 0, 128))
  430. }
  431. func (o ResponseMessage) MustMarshalXDR() []byte {
  432. bs, err := o.MarshalXDR()
  433. if err != nil {
  434. panic(err)
  435. }
  436. return bs
  437. }
  438. func (o ResponseMessage) AppendXDR(bs []byte) ([]byte, error) {
  439. var aw = xdr.AppendWriter(bs)
  440. var xw = xdr.NewWriter(&aw)
  441. _, err := o.encodeXDR(xw)
  442. return []byte(aw), err
  443. }
  444. func (o ResponseMessage) encodeXDR(xw *xdr.Writer) (int, error) {
  445. xw.WriteBytes(o.Data)
  446. return xw.Tot(), xw.Error()
  447. }
  448. func (o *ResponseMessage) DecodeXDR(r io.Reader) error {
  449. xr := xdr.NewReader(r)
  450. return o.decodeXDR(xr)
  451. }
  452. func (o *ResponseMessage) UnmarshalXDR(bs []byte) error {
  453. var br = bytes.NewReader(bs)
  454. var xr = xdr.NewReader(br)
  455. return o.decodeXDR(xr)
  456. }
  457. func (o *ResponseMessage) decodeXDR(xr *xdr.Reader) error {
  458. o.Data = xr.ReadBytes()
  459. return xr.Error()
  460. }
  461. /*
  462. ClusterConfigMessage Structure:
  463. 0 1 2 3
  464. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  465. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  466. | Length of Client Name |
  467. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  468. / /
  469. \ Client Name (variable length) \
  470. / /
  471. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  472. | Length of Client Version |
  473. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  474. / /
  475. \ Client Version (variable length) \
  476. / /
  477. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  478. | Number of Folders |
  479. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  480. / /
  481. \ Zero or more Folder Structures \
  482. / /
  483. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  484. | Number of Options |
  485. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  486. / /
  487. \ Zero or more Option Structures \
  488. / /
  489. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  490. struct ClusterConfigMessage {
  491. string ClientName<64>;
  492. string ClientVersion<64>;
  493. Folder Folders<64>;
  494. Option Options<64>;
  495. }
  496. */
  497. func (o ClusterConfigMessage) EncodeXDR(w io.Writer) (int, error) {
  498. var xw = xdr.NewWriter(w)
  499. return o.encodeXDR(xw)
  500. }
  501. func (o ClusterConfigMessage) MarshalXDR() ([]byte, error) {
  502. return o.AppendXDR(make([]byte, 0, 128))
  503. }
  504. func (o ClusterConfigMessage) MustMarshalXDR() []byte {
  505. bs, err := o.MarshalXDR()
  506. if err != nil {
  507. panic(err)
  508. }
  509. return bs
  510. }
  511. func (o ClusterConfigMessage) AppendXDR(bs []byte) ([]byte, error) {
  512. var aw = xdr.AppendWriter(bs)
  513. var xw = xdr.NewWriter(&aw)
  514. _, err := o.encodeXDR(xw)
  515. return []byte(aw), err
  516. }
  517. func (o ClusterConfigMessage) encodeXDR(xw *xdr.Writer) (int, error) {
  518. if l := len(o.ClientName); l > 64 {
  519. return xw.Tot(), xdr.ElementSizeExceeded("ClientName", l, 64)
  520. }
  521. xw.WriteString(o.ClientName)
  522. if l := len(o.ClientVersion); l > 64 {
  523. return xw.Tot(), xdr.ElementSizeExceeded("ClientVersion", l, 64)
  524. }
  525. xw.WriteString(o.ClientVersion)
  526. if l := len(o.Folders); l > 64 {
  527. return xw.Tot(), xdr.ElementSizeExceeded("Folders", l, 64)
  528. }
  529. xw.WriteUint32(uint32(len(o.Folders)))
  530. for i := range o.Folders {
  531. _, err := o.Folders[i].encodeXDR(xw)
  532. if err != nil {
  533. return xw.Tot(), err
  534. }
  535. }
  536. if l := len(o.Options); l > 64 {
  537. return xw.Tot(), xdr.ElementSizeExceeded("Options", l, 64)
  538. }
  539. xw.WriteUint32(uint32(len(o.Options)))
  540. for i := range o.Options {
  541. _, err := o.Options[i].encodeXDR(xw)
  542. if err != nil {
  543. return xw.Tot(), err
  544. }
  545. }
  546. return xw.Tot(), xw.Error()
  547. }
  548. func (o *ClusterConfigMessage) DecodeXDR(r io.Reader) error {
  549. xr := xdr.NewReader(r)
  550. return o.decodeXDR(xr)
  551. }
  552. func (o *ClusterConfigMessage) UnmarshalXDR(bs []byte) error {
  553. var br = bytes.NewReader(bs)
  554. var xr = xdr.NewReader(br)
  555. return o.decodeXDR(xr)
  556. }
  557. func (o *ClusterConfigMessage) decodeXDR(xr *xdr.Reader) error {
  558. o.ClientName = xr.ReadStringMax(64)
  559. o.ClientVersion = xr.ReadStringMax(64)
  560. _FoldersSize := int(xr.ReadUint32())
  561. if _FoldersSize > 64 {
  562. return xdr.ElementSizeExceeded("Folders", _FoldersSize, 64)
  563. }
  564. o.Folders = make([]Folder, _FoldersSize)
  565. for i := range o.Folders {
  566. (&o.Folders[i]).decodeXDR(xr)
  567. }
  568. _OptionsSize := int(xr.ReadUint32())
  569. if _OptionsSize > 64 {
  570. return xdr.ElementSizeExceeded("Options", _OptionsSize, 64)
  571. }
  572. o.Options = make([]Option, _OptionsSize)
  573. for i := range o.Options {
  574. (&o.Options[i]).decodeXDR(xr)
  575. }
  576. return xr.Error()
  577. }
  578. /*
  579. Folder Structure:
  580. 0 1 2 3
  581. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  582. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  583. | Length of ID |
  584. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  585. / /
  586. \ ID (variable length) \
  587. / /
  588. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  589. | Number of Devices |
  590. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  591. / /
  592. \ Zero or more Device Structures \
  593. / /
  594. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  595. struct Folder {
  596. string ID<64>;
  597. Device Devices<>;
  598. }
  599. */
  600. func (o Folder) EncodeXDR(w io.Writer) (int, error) {
  601. var xw = xdr.NewWriter(w)
  602. return o.encodeXDR(xw)
  603. }
  604. func (o Folder) MarshalXDR() ([]byte, error) {
  605. return o.AppendXDR(make([]byte, 0, 128))
  606. }
  607. func (o Folder) MustMarshalXDR() []byte {
  608. bs, err := o.MarshalXDR()
  609. if err != nil {
  610. panic(err)
  611. }
  612. return bs
  613. }
  614. func (o Folder) AppendXDR(bs []byte) ([]byte, error) {
  615. var aw = xdr.AppendWriter(bs)
  616. var xw = xdr.NewWriter(&aw)
  617. _, err := o.encodeXDR(xw)
  618. return []byte(aw), err
  619. }
  620. func (o Folder) encodeXDR(xw *xdr.Writer) (int, error) {
  621. if l := len(o.ID); l > 64 {
  622. return xw.Tot(), xdr.ElementSizeExceeded("ID", l, 64)
  623. }
  624. xw.WriteString(o.ID)
  625. xw.WriteUint32(uint32(len(o.Devices)))
  626. for i := range o.Devices {
  627. _, err := o.Devices[i].encodeXDR(xw)
  628. if err != nil {
  629. return xw.Tot(), err
  630. }
  631. }
  632. return xw.Tot(), xw.Error()
  633. }
  634. func (o *Folder) DecodeXDR(r io.Reader) error {
  635. xr := xdr.NewReader(r)
  636. return o.decodeXDR(xr)
  637. }
  638. func (o *Folder) UnmarshalXDR(bs []byte) error {
  639. var br = bytes.NewReader(bs)
  640. var xr = xdr.NewReader(br)
  641. return o.decodeXDR(xr)
  642. }
  643. func (o *Folder) decodeXDR(xr *xdr.Reader) error {
  644. o.ID = xr.ReadStringMax(64)
  645. _DevicesSize := int(xr.ReadUint32())
  646. o.Devices = make([]Device, _DevicesSize)
  647. for i := range o.Devices {
  648. (&o.Devices[i]).decodeXDR(xr)
  649. }
  650. return xr.Error()
  651. }
  652. /*
  653. Device Structure:
  654. 0 1 2 3
  655. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  656. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  657. | Length of ID |
  658. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  659. / /
  660. \ ID (variable length) \
  661. / /
  662. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  663. | Flags |
  664. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  665. | |
  666. + Max Local Version (64 bits) +
  667. | |
  668. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  669. struct Device {
  670. opaque ID<32>;
  671. unsigned int Flags;
  672. unsigned hyper MaxLocalVersion;
  673. }
  674. */
  675. func (o Device) EncodeXDR(w io.Writer) (int, error) {
  676. var xw = xdr.NewWriter(w)
  677. return o.encodeXDR(xw)
  678. }
  679. func (o Device) MarshalXDR() ([]byte, error) {
  680. return o.AppendXDR(make([]byte, 0, 128))
  681. }
  682. func (o Device) MustMarshalXDR() []byte {
  683. bs, err := o.MarshalXDR()
  684. if err != nil {
  685. panic(err)
  686. }
  687. return bs
  688. }
  689. func (o Device) AppendXDR(bs []byte) ([]byte, error) {
  690. var aw = xdr.AppendWriter(bs)
  691. var xw = xdr.NewWriter(&aw)
  692. _, err := o.encodeXDR(xw)
  693. return []byte(aw), err
  694. }
  695. func (o Device) encodeXDR(xw *xdr.Writer) (int, error) {
  696. if l := len(o.ID); l > 32 {
  697. return xw.Tot(), xdr.ElementSizeExceeded("ID", l, 32)
  698. }
  699. xw.WriteBytes(o.ID)
  700. xw.WriteUint32(o.Flags)
  701. xw.WriteUint64(o.MaxLocalVersion)
  702. return xw.Tot(), xw.Error()
  703. }
  704. func (o *Device) DecodeXDR(r io.Reader) error {
  705. xr := xdr.NewReader(r)
  706. return o.decodeXDR(xr)
  707. }
  708. func (o *Device) UnmarshalXDR(bs []byte) error {
  709. var br = bytes.NewReader(bs)
  710. var xr = xdr.NewReader(br)
  711. return o.decodeXDR(xr)
  712. }
  713. func (o *Device) decodeXDR(xr *xdr.Reader) error {
  714. o.ID = xr.ReadBytesMax(32)
  715. o.Flags = xr.ReadUint32()
  716. o.MaxLocalVersion = xr.ReadUint64()
  717. return xr.Error()
  718. }
  719. /*
  720. Option Structure:
  721. 0 1 2 3
  722. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  723. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  724. | Length of Key |
  725. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  726. / /
  727. \ Key (variable length) \
  728. / /
  729. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  730. | Length of Value |
  731. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  732. / /
  733. \ Value (variable length) \
  734. / /
  735. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  736. struct Option {
  737. string Key<64>;
  738. string Value<1024>;
  739. }
  740. */
  741. func (o Option) EncodeXDR(w io.Writer) (int, error) {
  742. var xw = xdr.NewWriter(w)
  743. return o.encodeXDR(xw)
  744. }
  745. func (o Option) MarshalXDR() ([]byte, error) {
  746. return o.AppendXDR(make([]byte, 0, 128))
  747. }
  748. func (o Option) MustMarshalXDR() []byte {
  749. bs, err := o.MarshalXDR()
  750. if err != nil {
  751. panic(err)
  752. }
  753. return bs
  754. }
  755. func (o Option) AppendXDR(bs []byte) ([]byte, error) {
  756. var aw = xdr.AppendWriter(bs)
  757. var xw = xdr.NewWriter(&aw)
  758. _, err := o.encodeXDR(xw)
  759. return []byte(aw), err
  760. }
  761. func (o Option) encodeXDR(xw *xdr.Writer) (int, error) {
  762. if l := len(o.Key); l > 64 {
  763. return xw.Tot(), xdr.ElementSizeExceeded("Key", l, 64)
  764. }
  765. xw.WriteString(o.Key)
  766. if l := len(o.Value); l > 1024 {
  767. return xw.Tot(), xdr.ElementSizeExceeded("Value", l, 1024)
  768. }
  769. xw.WriteString(o.Value)
  770. return xw.Tot(), xw.Error()
  771. }
  772. func (o *Option) DecodeXDR(r io.Reader) error {
  773. xr := xdr.NewReader(r)
  774. return o.decodeXDR(xr)
  775. }
  776. func (o *Option) UnmarshalXDR(bs []byte) error {
  777. var br = bytes.NewReader(bs)
  778. var xr = xdr.NewReader(br)
  779. return o.decodeXDR(xr)
  780. }
  781. func (o *Option) decodeXDR(xr *xdr.Reader) error {
  782. o.Key = xr.ReadStringMax(64)
  783. o.Value = xr.ReadStringMax(1024)
  784. return xr.Error()
  785. }
  786. /*
  787. CloseMessage Structure:
  788. 0 1 2 3
  789. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  790. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  791. | Length of Reason |
  792. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  793. / /
  794. \ Reason (variable length) \
  795. / /
  796. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  797. struct CloseMessage {
  798. string Reason<1024>;
  799. }
  800. */
  801. func (o CloseMessage) EncodeXDR(w io.Writer) (int, error) {
  802. var xw = xdr.NewWriter(w)
  803. return o.encodeXDR(xw)
  804. }
  805. func (o CloseMessage) MarshalXDR() ([]byte, error) {
  806. return o.AppendXDR(make([]byte, 0, 128))
  807. }
  808. func (o CloseMessage) MustMarshalXDR() []byte {
  809. bs, err := o.MarshalXDR()
  810. if err != nil {
  811. panic(err)
  812. }
  813. return bs
  814. }
  815. func (o CloseMessage) AppendXDR(bs []byte) ([]byte, error) {
  816. var aw = xdr.AppendWriter(bs)
  817. var xw = xdr.NewWriter(&aw)
  818. _, err := o.encodeXDR(xw)
  819. return []byte(aw), err
  820. }
  821. func (o CloseMessage) encodeXDR(xw *xdr.Writer) (int, error) {
  822. if l := len(o.Reason); l > 1024 {
  823. return xw.Tot(), xdr.ElementSizeExceeded("Reason", l, 1024)
  824. }
  825. xw.WriteString(o.Reason)
  826. return xw.Tot(), xw.Error()
  827. }
  828. func (o *CloseMessage) DecodeXDR(r io.Reader) error {
  829. xr := xdr.NewReader(r)
  830. return o.decodeXDR(xr)
  831. }
  832. func (o *CloseMessage) UnmarshalXDR(bs []byte) error {
  833. var br = bytes.NewReader(bs)
  834. var xr = xdr.NewReader(br)
  835. return o.decodeXDR(xr)
  836. }
  837. func (o *CloseMessage) decodeXDR(xr *xdr.Reader) error {
  838. o.Reason = xr.ReadStringMax(1024)
  839. return xr.Error()
  840. }
  841. /*
  842. EmptyMessage Structure:
  843. 0 1 2 3
  844. 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  845. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  846. struct EmptyMessage {
  847. }
  848. */
  849. func (o EmptyMessage) EncodeXDR(w io.Writer) (int, error) {
  850. var xw = xdr.NewWriter(w)
  851. return o.encodeXDR(xw)
  852. }
  853. func (o EmptyMessage) MarshalXDR() ([]byte, error) {
  854. return o.AppendXDR(make([]byte, 0, 128))
  855. }
  856. func (o EmptyMessage) MustMarshalXDR() []byte {
  857. bs, err := o.MarshalXDR()
  858. if err != nil {
  859. panic(err)
  860. }
  861. return bs
  862. }
  863. func (o EmptyMessage) AppendXDR(bs []byte) ([]byte, error) {
  864. var aw = xdr.AppendWriter(bs)
  865. var xw = xdr.NewWriter(&aw)
  866. _, err := o.encodeXDR(xw)
  867. return []byte(aw), err
  868. }
  869. func (o EmptyMessage) encodeXDR(xw *xdr.Writer) (int, error) {
  870. return xw.Tot(), xw.Error()
  871. }
  872. func (o *EmptyMessage) DecodeXDR(r io.Reader) error {
  873. xr := xdr.NewReader(r)
  874. return o.decodeXDR(xr)
  875. }
  876. func (o *EmptyMessage) UnmarshalXDR(bs []byte) error {
  877. var br = bytes.NewReader(bs)
  878. var xr = xdr.NewReader(br)
  879. return o.decodeXDR(xr)
  880. }
  881. func (o *EmptyMessage) decodeXDR(xr *xdr.Reader) error {
  882. return xr.Error()
  883. }