1
0

message_xdr.go 27 KB

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