message_xdr.go 29 KB

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