localpackets_xdr.go 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380
  1. // ************************************************************
  2. // This file is automatically generated by genxdr. Do not edit.
  3. // ************************************************************
  4. package discover
  5. import (
  6. "bytes"
  7. "io"
  8. "github.com/calmh/xdr"
  9. )
  10. /*
  11. Announce 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. | Magic |
  16. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  17. / /
  18. \ Device Structure \
  19. / /
  20. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  21. | Number of Extra |
  22. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  23. / /
  24. \ Zero or more Device Structures \
  25. / /
  26. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  27. struct Announce {
  28. unsigned int Magic;
  29. Device This;
  30. Device Extra<16>;
  31. }
  32. */
  33. func (o Announce) EncodeXDR(w io.Writer) (int, error) {
  34. var xw = xdr.NewWriter(w)
  35. return o.EncodeXDRInto(xw)
  36. }
  37. func (o Announce) MarshalXDR() ([]byte, error) {
  38. return o.AppendXDR(make([]byte, 0, 128))
  39. }
  40. func (o Announce) MustMarshalXDR() []byte {
  41. bs, err := o.MarshalXDR()
  42. if err != nil {
  43. panic(err)
  44. }
  45. return bs
  46. }
  47. func (o Announce) AppendXDR(bs []byte) ([]byte, error) {
  48. var aw = xdr.AppendWriter(bs)
  49. var xw = xdr.NewWriter(&aw)
  50. _, err := o.EncodeXDRInto(xw)
  51. return []byte(aw), err
  52. }
  53. func (o Announce) EncodeXDRInto(xw *xdr.Writer) (int, error) {
  54. xw.WriteUint32(o.Magic)
  55. _, err := o.This.EncodeXDRInto(xw)
  56. if err != nil {
  57. return xw.Tot(), err
  58. }
  59. if l := len(o.Extra); l > 16 {
  60. return xw.Tot(), xdr.ElementSizeExceeded("Extra", l, 16)
  61. }
  62. xw.WriteUint32(uint32(len(o.Extra)))
  63. for i := range o.Extra {
  64. _, err := o.Extra[i].EncodeXDRInto(xw)
  65. if err != nil {
  66. return xw.Tot(), err
  67. }
  68. }
  69. return xw.Tot(), xw.Error()
  70. }
  71. func (o *Announce) DecodeXDR(r io.Reader) error {
  72. xr := xdr.NewReader(r)
  73. return o.DecodeXDRFrom(xr)
  74. }
  75. func (o *Announce) UnmarshalXDR(bs []byte) error {
  76. var br = bytes.NewReader(bs)
  77. var xr = xdr.NewReader(br)
  78. return o.DecodeXDRFrom(xr)
  79. }
  80. func (o *Announce) DecodeXDRFrom(xr *xdr.Reader) error {
  81. o.Magic = xr.ReadUint32()
  82. (&o.This).DecodeXDRFrom(xr)
  83. _ExtraSize := int(xr.ReadUint32())
  84. if _ExtraSize < 0 {
  85. return xdr.ElementSizeExceeded("Extra", _ExtraSize, 16)
  86. }
  87. if _ExtraSize > 16 {
  88. return xdr.ElementSizeExceeded("Extra", _ExtraSize, 16)
  89. }
  90. o.Extra = make([]Device, _ExtraSize)
  91. for i := range o.Extra {
  92. (&o.Extra[i]).DecodeXDRFrom(xr)
  93. }
  94. return xr.Error()
  95. }
  96. /*
  97. Device Structure:
  98. 0 1 2 3
  99. 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
  100. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  101. | Length of ID |
  102. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  103. / /
  104. \ ID (variable length) \
  105. / /
  106. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  107. | Number of Addresses |
  108. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  109. / /
  110. \ Zero or more Address Structures \
  111. / /
  112. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  113. | Number of Relays |
  114. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  115. / /
  116. \ Zero or more Relay Structures \
  117. / /
  118. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  119. struct Device {
  120. opaque ID<32>;
  121. Address Addresses<16>;
  122. Relay Relays<16>;
  123. }
  124. */
  125. func (o Device) EncodeXDR(w io.Writer) (int, error) {
  126. var xw = xdr.NewWriter(w)
  127. return o.EncodeXDRInto(xw)
  128. }
  129. func (o Device) MarshalXDR() ([]byte, error) {
  130. return o.AppendXDR(make([]byte, 0, 128))
  131. }
  132. func (o Device) MustMarshalXDR() []byte {
  133. bs, err := o.MarshalXDR()
  134. if err != nil {
  135. panic(err)
  136. }
  137. return bs
  138. }
  139. func (o Device) AppendXDR(bs []byte) ([]byte, error) {
  140. var aw = xdr.AppendWriter(bs)
  141. var xw = xdr.NewWriter(&aw)
  142. _, err := o.EncodeXDRInto(xw)
  143. return []byte(aw), err
  144. }
  145. func (o Device) EncodeXDRInto(xw *xdr.Writer) (int, error) {
  146. if l := len(o.ID); l > 32 {
  147. return xw.Tot(), xdr.ElementSizeExceeded("ID", l, 32)
  148. }
  149. xw.WriteBytes(o.ID)
  150. if l := len(o.Addresses); l > 16 {
  151. return xw.Tot(), xdr.ElementSizeExceeded("Addresses", l, 16)
  152. }
  153. xw.WriteUint32(uint32(len(o.Addresses)))
  154. for i := range o.Addresses {
  155. _, err := o.Addresses[i].EncodeXDRInto(xw)
  156. if err != nil {
  157. return xw.Tot(), err
  158. }
  159. }
  160. if l := len(o.Relays); l > 16 {
  161. return xw.Tot(), xdr.ElementSizeExceeded("Relays", l, 16)
  162. }
  163. xw.WriteUint32(uint32(len(o.Relays)))
  164. for i := range o.Relays {
  165. _, err := o.Relays[i].EncodeXDRInto(xw)
  166. if err != nil {
  167. return xw.Tot(), err
  168. }
  169. }
  170. return xw.Tot(), xw.Error()
  171. }
  172. func (o *Device) DecodeXDR(r io.Reader) error {
  173. xr := xdr.NewReader(r)
  174. return o.DecodeXDRFrom(xr)
  175. }
  176. func (o *Device) UnmarshalXDR(bs []byte) error {
  177. var br = bytes.NewReader(bs)
  178. var xr = xdr.NewReader(br)
  179. return o.DecodeXDRFrom(xr)
  180. }
  181. func (o *Device) DecodeXDRFrom(xr *xdr.Reader) error {
  182. o.ID = xr.ReadBytesMax(32)
  183. _AddressesSize := int(xr.ReadUint32())
  184. if _AddressesSize < 0 {
  185. return xdr.ElementSizeExceeded("Addresses", _AddressesSize, 16)
  186. }
  187. if _AddressesSize > 16 {
  188. return xdr.ElementSizeExceeded("Addresses", _AddressesSize, 16)
  189. }
  190. o.Addresses = make([]Address, _AddressesSize)
  191. for i := range o.Addresses {
  192. (&o.Addresses[i]).DecodeXDRFrom(xr)
  193. }
  194. _RelaysSize := int(xr.ReadUint32())
  195. if _RelaysSize < 0 {
  196. return xdr.ElementSizeExceeded("Relays", _RelaysSize, 16)
  197. }
  198. if _RelaysSize > 16 {
  199. return xdr.ElementSizeExceeded("Relays", _RelaysSize, 16)
  200. }
  201. o.Relays = make([]Relay, _RelaysSize)
  202. for i := range o.Relays {
  203. (&o.Relays[i]).DecodeXDRFrom(xr)
  204. }
  205. return xr.Error()
  206. }
  207. /*
  208. Address Structure:
  209. 0 1 2 3
  210. 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
  211. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  212. | Length of URL |
  213. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  214. / /
  215. \ URL (variable length) \
  216. / /
  217. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  218. struct Address {
  219. string URL<2083>;
  220. }
  221. */
  222. func (o Address) EncodeXDR(w io.Writer) (int, error) {
  223. var xw = xdr.NewWriter(w)
  224. return o.EncodeXDRInto(xw)
  225. }
  226. func (o Address) MarshalXDR() ([]byte, error) {
  227. return o.AppendXDR(make([]byte, 0, 128))
  228. }
  229. func (o Address) MustMarshalXDR() []byte {
  230. bs, err := o.MarshalXDR()
  231. if err != nil {
  232. panic(err)
  233. }
  234. return bs
  235. }
  236. func (o Address) AppendXDR(bs []byte) ([]byte, error) {
  237. var aw = xdr.AppendWriter(bs)
  238. var xw = xdr.NewWriter(&aw)
  239. _, err := o.EncodeXDRInto(xw)
  240. return []byte(aw), err
  241. }
  242. func (o Address) EncodeXDRInto(xw *xdr.Writer) (int, error) {
  243. if l := len(o.URL); l > 2083 {
  244. return xw.Tot(), xdr.ElementSizeExceeded("URL", l, 2083)
  245. }
  246. xw.WriteString(o.URL)
  247. return xw.Tot(), xw.Error()
  248. }
  249. func (o *Address) DecodeXDR(r io.Reader) error {
  250. xr := xdr.NewReader(r)
  251. return o.DecodeXDRFrom(xr)
  252. }
  253. func (o *Address) UnmarshalXDR(bs []byte) error {
  254. var br = bytes.NewReader(bs)
  255. var xr = xdr.NewReader(br)
  256. return o.DecodeXDRFrom(xr)
  257. }
  258. func (o *Address) DecodeXDRFrom(xr *xdr.Reader) error {
  259. o.URL = xr.ReadStringMax(2083)
  260. return xr.Error()
  261. }
  262. /*
  263. Relay Structure:
  264. 0 1 2 3
  265. 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
  266. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  267. | Length of URL |
  268. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  269. / /
  270. \ URL (variable length) \
  271. / /
  272. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  273. | Latency |
  274. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  275. struct Relay {
  276. string URL<2083>;
  277. int Latency;
  278. }
  279. */
  280. func (o Relay) EncodeXDR(w io.Writer) (int, error) {
  281. var xw = xdr.NewWriter(w)
  282. return o.EncodeXDRInto(xw)
  283. }
  284. func (o Relay) MarshalXDR() ([]byte, error) {
  285. return o.AppendXDR(make([]byte, 0, 128))
  286. }
  287. func (o Relay) MustMarshalXDR() []byte {
  288. bs, err := o.MarshalXDR()
  289. if err != nil {
  290. panic(err)
  291. }
  292. return bs
  293. }
  294. func (o Relay) AppendXDR(bs []byte) ([]byte, error) {
  295. var aw = xdr.AppendWriter(bs)
  296. var xw = xdr.NewWriter(&aw)
  297. _, err := o.EncodeXDRInto(xw)
  298. return []byte(aw), err
  299. }
  300. func (o Relay) EncodeXDRInto(xw *xdr.Writer) (int, error) {
  301. if l := len(o.URL); l > 2083 {
  302. return xw.Tot(), xdr.ElementSizeExceeded("URL", l, 2083)
  303. }
  304. xw.WriteString(o.URL)
  305. xw.WriteUint32(uint32(o.Latency))
  306. return xw.Tot(), xw.Error()
  307. }
  308. func (o *Relay) DecodeXDR(r io.Reader) error {
  309. xr := xdr.NewReader(r)
  310. return o.DecodeXDRFrom(xr)
  311. }
  312. func (o *Relay) UnmarshalXDR(bs []byte) error {
  313. var br = bytes.NewReader(bs)
  314. var xr = xdr.NewReader(br)
  315. return o.DecodeXDRFrom(xr)
  316. }
  317. func (o *Relay) DecodeXDRFrom(xr *xdr.Reader) error {
  318. o.URL = xr.ReadStringMax(2083)
  319. o.Latency = int32(xr.ReadUint32())
  320. return xr.Error()
  321. }