5 #ifndef __XDR_XDRPP_RPCB_PROT_HH_INCLUDED__ 6 #define __XDR_XDRPP_RPCB_PROT_HH_INCLUDED__ 1 12 Constexpr
const std::uint32_t RPCB_PORT = 111;
15 std::uint32_t r_prog{};
16 std::uint32_t r_vers{};
22 template<
typename _r_prog_T,
28 std::enable_if<std::is_constructible<std::uint32_t, _r_prog_T>::value
29 && std::is_constructible<std::uint32_t, _r_vers_T>::value
30 && std::is_constructible<xdr::xstring<>, _r_netid_T>::value
31 && std::is_constructible<xdr::xstring<>, _r_addr_T>::value
32 && std::is_constructible<xdr::xstring<>, _r_owner_T>::value
34 explicit rpcb(_r_prog_T &&_r_prog,
36 _r_netid_T &&_r_netid,
38 _r_owner_T &&_r_owner)
39 : r_prog(std::forward<_r_prog_T>(_r_prog)),
40 r_vers(std::forward<_r_vers_T>(_r_vers)),
41 r_netid(std::forward<_r_netid_T>(_r_netid)),
42 r_addr(std::forward<_r_addr_T>(_r_addr)),
43 r_owner(std::forward<_r_owner_T>(_r_owner)) {}
48 decltype(::xdr::rpcb::r_prog),
49 &::xdr::rpcb::r_prog>,
50 field_ptr<::xdr::rpcb,
51 decltype(::xdr::rpcb::r_vers),
52 &::xdr::rpcb::r_vers>,
53 field_ptr<::xdr::rpcb,
54 decltype(::xdr::rpcb::r_netid),
55 &::xdr::rpcb::r_netid>,
56 field_ptr<::xdr::rpcb,
57 decltype(::xdr::rpcb::r_addr),
58 &::xdr::rpcb::r_addr>,
59 field_ptr<::xdr::rpcb,
60 decltype(::xdr::rpcb::r_owner),
61 &::xdr::rpcb::r_owner>> {
62 template<
typename Archive>
static void 63 save(Archive &ar, const ::xdr::rpcb &obj) {
64 archive(ar, obj.r_prog,
"r_prog");
65 archive(ar, obj.r_vers,
"r_vers");
66 archive(ar, obj.r_netid,
"r_netid");
67 archive(ar, obj.r_addr,
"r_addr");
68 archive(ar, obj.r_owner,
"r_owner");
70 template<
typename Archive>
static void 72 archive(ar, obj.r_prog,
"r_prog");
73 archive(ar, obj.r_vers,
"r_vers");
74 archive(ar, obj.r_netid,
"r_netid");
75 archive(ar, obj.r_addr,
"r_addr");
76 archive(ar, obj.r_owner,
"r_owner");
87 template<
typename _rpcb_map_T,
88 typename _rpcb_next_T,
90 std::enable_if<std::is_constructible<rpcb, _rpcb_map_T>::value
91 && std::is_constructible<xdr::pointer<rp__list>, _rpcb_next_T>::value
93 explicit rp__list(_rpcb_map_T &&_rpcb_map,
94 _rpcb_next_T &&_rpcb_next)
95 : rpcb_map(std::forward<_rpcb_map_T>(_rpcb_map)),
96 rpcb_next(std::forward<_rpcb_next_T>(_rpcb_next)) {}
101 decltype(::xdr::rp__list::rpcb_map),
102 &::xdr::rp__list::rpcb_map>,
103 field_ptr<::xdr::rp__list,
104 decltype(::xdr::rp__list::rpcb_next),
105 &::xdr::rp__list::rpcb_next>> {
106 template<
typename Archive>
static void 107 save(Archive &ar, const ::xdr::rp__list &obj) {
108 archive(ar, obj.rpcb_map,
"rpcb_map");
109 archive(ar, obj.rpcb_next,
"rpcb_next");
111 template<
typename Archive>
static void 113 archive(ar, obj.rpcb_map,
"rpcb_map");
114 archive(ar, obj.rpcb_next,
"rpcb_next");
123 std::uint32_t prog{};
124 std::uint32_t vers{};
125 std::uint32_t proc{};
129 template<
typename _prog_T,
134 std::enable_if<std::is_constructible<std::uint32_t, _prog_T>::value
135 && std::is_constructible<std::uint32_t, _vers_T>::value
136 && std::is_constructible<std::uint32_t, _proc_T>::value
137 && std::is_constructible<xdr::opaque_vec<>, _args_T>::value
143 : prog(std::forward<_prog_T>(_prog)),
144 vers(std::forward<_vers_T>(_vers)),
145 proc(std::forward<_proc_T>(_proc)),
146 args(std::forward<_args_T>(_args)) {}
151 decltype(::xdr::rpcb_rmtcallargs::prog),
152 &::xdr::rpcb_rmtcallargs::prog>,
153 field_ptr<::xdr::rpcb_rmtcallargs,
154 decltype(::xdr::rpcb_rmtcallargs::vers),
155 &::xdr::rpcb_rmtcallargs::vers>,
156 field_ptr<::xdr::rpcb_rmtcallargs,
157 decltype(::xdr::rpcb_rmtcallargs::proc),
158 &::xdr::rpcb_rmtcallargs::proc>,
159 field_ptr<::xdr::rpcb_rmtcallargs,
160 decltype(::xdr::rpcb_rmtcallargs::args),
161 &::xdr::rpcb_rmtcallargs::args>> {
162 template<
typename Archive>
static void 163 save(Archive &ar, const ::xdr::rpcb_rmtcallargs &obj) {
164 archive(ar, obj.prog,
"prog");
165 archive(ar, obj.vers,
"vers");
166 archive(ar, obj.proc,
"proc");
167 archive(ar, obj.args,
"args");
169 template<
typename Archive>
static void 171 archive(ar, obj.prog,
"prog");
172 archive(ar, obj.vers,
"vers");
173 archive(ar, obj.proc,
"proc");
174 archive(ar, obj.args,
"args");
185 template<
typename _addr_T,
188 std::enable_if<std::is_constructible<xdr::xstring<>, _addr_T>::value
189 && std::is_constructible<xdr::opaque_vec<>, _results_T>::value
192 _results_T &&_results)
193 : addr(std::forward<_addr_T>(_addr)),
194 results(std::forward<_results_T>(_results)) {}
199 decltype(::xdr::rpcb_rmtcallres::addr),
200 &::xdr::rpcb_rmtcallres::addr>,
201 field_ptr<::xdr::rpcb_rmtcallres,
202 decltype(::xdr::rpcb_rmtcallres::results),
203 &::xdr::rpcb_rmtcallres::results>> {
204 template<
typename Archive>
static void 205 save(Archive &ar, const ::xdr::rpcb_rmtcallres &obj) {
206 archive(ar, obj.addr,
"addr");
207 archive(ar, obj.results,
"results");
209 template<
typename Archive>
static void 211 archive(ar, obj.addr,
"addr");
212 archive(ar, obj.results,
"results");
221 std::uint32_t r_nc_semantics{};
226 template<
typename _r_maddr_T,
227 typename _r_nc_netid_T,
228 typename _r_nc_semantics_T,
229 typename _r_nc_protofmly_T,
230 typename _r_nc_proto_T,
232 std::enable_if<std::is_constructible<xdr::xstring<>, _r_maddr_T>::value
233 && std::is_constructible<xdr::xstring<>, _r_nc_netid_T>::value
234 && std::is_constructible<std::uint32_t, _r_nc_semantics_T>::value
235 && std::is_constructible<xdr::xstring<>, _r_nc_protofmly_T>::value
236 && std::is_constructible<xdr::xstring<>, _r_nc_proto_T>::value
239 _r_nc_netid_T &&_r_nc_netid,
240 _r_nc_semantics_T &&_r_nc_semantics,
241 _r_nc_protofmly_T &&_r_nc_protofmly,
242 _r_nc_proto_T &&_r_nc_proto)
243 : r_maddr(std::forward<_r_maddr_T>(_r_maddr)),
244 r_nc_netid(std::forward<_r_nc_netid_T>(_r_nc_netid)),
245 r_nc_semantics(std::forward<_r_nc_semantics_T>(_r_nc_semantics)),
246 r_nc_protofmly(std::forward<_r_nc_protofmly_T>(_r_nc_protofmly)),
247 r_nc_proto(std::forward<_r_nc_proto_T>(_r_nc_proto)) {}
252 decltype(::xdr::rpcb_entry::r_maddr),
253 &::xdr::rpcb_entry::r_maddr>,
254 field_ptr<::xdr::rpcb_entry,
255 decltype(::xdr::rpcb_entry::r_nc_netid),
256 &::xdr::rpcb_entry::r_nc_netid>,
257 field_ptr<::xdr::rpcb_entry,
258 decltype(::xdr::rpcb_entry::r_nc_semantics),
259 &::xdr::rpcb_entry::r_nc_semantics>,
260 field_ptr<::xdr::rpcb_entry,
261 decltype(::xdr::rpcb_entry::r_nc_protofmly),
262 &::xdr::rpcb_entry::r_nc_protofmly>,
263 field_ptr<::xdr::rpcb_entry,
264 decltype(::xdr::rpcb_entry::r_nc_proto),
265 &::xdr::rpcb_entry::r_nc_proto>> {
266 template<
typename Archive>
static void 267 save(Archive &ar, const ::xdr::rpcb_entry &obj) {
268 archive(ar, obj.r_maddr,
"r_maddr");
269 archive(ar, obj.r_nc_netid,
"r_nc_netid");
270 archive(ar, obj.r_nc_semantics,
"r_nc_semantics");
271 archive(ar, obj.r_nc_protofmly,
"r_nc_protofmly");
272 archive(ar, obj.r_nc_proto,
"r_nc_proto");
274 template<
typename Archive>
static void 276 archive(ar, obj.r_maddr,
"r_maddr");
277 archive(ar, obj.r_nc_netid,
"r_nc_netid");
278 archive(ar, obj.r_nc_semantics,
"r_nc_semantics");
279 archive(ar, obj.r_nc_protofmly,
"r_nc_protofmly");
280 archive(ar, obj.r_nc_proto,
"r_nc_proto");
291 template<
typename _rpcb_entry_map_T,
292 typename _rpcb_entry_next_T,
294 std::enable_if<std::is_constructible<rpcb_entry, _rpcb_entry_map_T>::value
295 && std::is_constructible<xdr::pointer<rpcb_entry_list>, _rpcb_entry_next_T>::value
298 _rpcb_entry_next_T &&_rpcb_entry_next)
299 : rpcb_entry_map(std::forward<_rpcb_entry_map_T>(_rpcb_entry_map)),
300 rpcb_entry_next(std::forward<_rpcb_entry_next_T>(_rpcb_entry_next)) {}
305 decltype(::xdr::rpcb_entry_list::rpcb_entry_map),
306 &::xdr::rpcb_entry_list::rpcb_entry_map>,
307 field_ptr<::xdr::rpcb_entry_list,
308 decltype(::xdr::rpcb_entry_list::rpcb_entry_next),
309 &::xdr::rpcb_entry_list::rpcb_entry_next>> {
310 template<
typename Archive>
static void 311 save(Archive &ar, const ::xdr::rpcb_entry_list &obj) {
312 archive(ar, obj.rpcb_entry_map,
"rpcb_entry_map");
313 archive(ar, obj.rpcb_entry_next,
"rpcb_entry_next");
315 template<
typename Archive>
static void 317 archive(ar, obj.rpcb_entry_map,
"rpcb_entry_map");
318 archive(ar, obj.rpcb_entry_next,
"rpcb_entry_next");
326 Constexpr
const std::uint32_t rpcb_highproc_2 = 5;
327 Constexpr
const std::uint32_t rpcb_highproc_3 = 8;
328 Constexpr
const std::uint32_t rpcb_highproc_4 = 12;
329 Constexpr
const std::uint32_t RPCBSTAT_HIGHPROC = 13;
330 Constexpr
const std::uint32_t RPCBVERS_STAT = 3;
331 Constexpr
const std::uint32_t RPCBVERS_4_STAT = 2;
332 Constexpr
const std::uint32_t RPCBVERS_3_STAT = 1;
333 Constexpr
const std::uint32_t RPCBVERS_2_STAT = 0;
336 std::uint32_t prog{};
337 std::uint32_t vers{};
338 std::int32_t success{};
339 std::int32_t failure{};
344 template<
typename _prog_T,
351 std::enable_if<std::is_constructible<std::uint32_t, _prog_T>::value
352 && std::is_constructible<std::uint32_t, _vers_T>::value
353 && std::is_constructible<std::int32_t, _success_T>::value
354 && std::is_constructible<std::int32_t, _failure_T>::value
355 && std::is_constructible<xdr::xstring<>, _netid_T>::value
356 && std::is_constructible<xdr::pointer<rpcbs_addrlist>, _next_T>::value
360 _success_T &&_success,
361 _failure_T &&_failure,
364 : prog(std::forward<_prog_T>(_prog)),
365 vers(std::forward<_vers_T>(_vers)),
366 success(std::forward<_success_T>(_success)),
367 failure(std::forward<_failure_T>(_failure)),
368 netid(std::forward<_netid_T>(_netid)),
369 next(std::forward<_next_T>(_next)) {}
374 decltype(::xdr::rpcbs_addrlist::prog),
375 &::xdr::rpcbs_addrlist::prog>,
376 field_ptr<::xdr::rpcbs_addrlist,
377 decltype(::xdr::rpcbs_addrlist::vers),
378 &::xdr::rpcbs_addrlist::vers>,
379 field_ptr<::xdr::rpcbs_addrlist,
380 decltype(::xdr::rpcbs_addrlist::success),
381 &::xdr::rpcbs_addrlist::success>,
382 field_ptr<::xdr::rpcbs_addrlist,
383 decltype(::xdr::rpcbs_addrlist::failure),
384 &::xdr::rpcbs_addrlist::failure>,
385 field_ptr<::xdr::rpcbs_addrlist,
386 decltype(::xdr::rpcbs_addrlist::netid),
387 &::xdr::rpcbs_addrlist::netid>,
388 field_ptr<::xdr::rpcbs_addrlist,
389 decltype(::xdr::rpcbs_addrlist::next),
390 &::xdr::rpcbs_addrlist::next>> {
391 template<
typename Archive>
static void 392 save(Archive &ar, const ::xdr::rpcbs_addrlist &obj) {
393 archive(ar, obj.prog,
"prog");
394 archive(ar, obj.vers,
"vers");
395 archive(ar, obj.success,
"success");
396 archive(ar, obj.failure,
"failure");
397 archive(ar, obj.netid,
"netid");
398 archive(ar, obj.next,
"next");
400 template<
typename Archive>
static void 402 archive(ar, obj.prog,
"prog");
403 archive(ar, obj.vers,
"vers");
404 archive(ar, obj.success,
"success");
405 archive(ar, obj.failure,
"failure");
406 archive(ar, obj.netid,
"netid");
407 archive(ar, obj.next,
"next");
414 std::uint32_t prog{};
415 std::uint32_t vers{};
416 std::uint32_t proc{};
417 std::int32_t success{};
418 std::int32_t failure{};
419 std::int32_t indirect{};
424 template<
typename _prog_T,
429 typename _indirect_T,
433 std::enable_if<std::is_constructible<std::uint32_t, _prog_T>::value
434 && std::is_constructible<std::uint32_t, _vers_T>::value
435 && std::is_constructible<std::uint32_t, _proc_T>::value
436 && std::is_constructible<std::int32_t, _success_T>::value
437 && std::is_constructible<std::int32_t, _failure_T>::value
438 && std::is_constructible<std::int32_t, _indirect_T>::value
439 && std::is_constructible<xdr::xstring<>, _netid_T>::value
440 && std::is_constructible<xdr::pointer<rpcbs_rmtcalllist>, _next_T>::value
445 _success_T &&_success,
446 _failure_T &&_failure,
447 _indirect_T &&_indirect,
450 : prog(std::forward<_prog_T>(_prog)),
451 vers(std::forward<_vers_T>(_vers)),
452 proc(std::forward<_proc_T>(_proc)),
453 success(std::forward<_success_T>(_success)),
454 failure(std::forward<_failure_T>(_failure)),
455 indirect(std::forward<_indirect_T>(_indirect)),
456 netid(std::forward<_netid_T>(_netid)),
457 next(std::forward<_next_T>(_next)) {}
462 decltype(::xdr::rpcbs_rmtcalllist::prog),
463 &::xdr::rpcbs_rmtcalllist::prog>,
464 field_ptr<::xdr::rpcbs_rmtcalllist,
465 decltype(::xdr::rpcbs_rmtcalllist::vers),
466 &::xdr::rpcbs_rmtcalllist::vers>,
467 field_ptr<::xdr::rpcbs_rmtcalllist,
468 decltype(::xdr::rpcbs_rmtcalllist::proc),
469 &::xdr::rpcbs_rmtcalllist::proc>,
470 field_ptr<::xdr::rpcbs_rmtcalllist,
471 decltype(::xdr::rpcbs_rmtcalllist::success),
472 &::xdr::rpcbs_rmtcalllist::success>,
473 field_ptr<::xdr::rpcbs_rmtcalllist,
474 decltype(::xdr::rpcbs_rmtcalllist::failure),
475 &::xdr::rpcbs_rmtcalllist::failure>,
476 field_ptr<::xdr::rpcbs_rmtcalllist,
477 decltype(::xdr::rpcbs_rmtcalllist::indirect),
478 &::xdr::rpcbs_rmtcalllist::indirect>,
479 field_ptr<::xdr::rpcbs_rmtcalllist,
480 decltype(::xdr::rpcbs_rmtcalllist::netid),
481 &::xdr::rpcbs_rmtcalllist::netid>,
482 field_ptr<::xdr::rpcbs_rmtcalllist,
483 decltype(::xdr::rpcbs_rmtcalllist::next),
484 &::xdr::rpcbs_rmtcalllist::next>> {
485 template<
typename Archive>
static void 486 save(Archive &ar, const ::xdr::rpcbs_rmtcalllist &obj) {
487 archive(ar, obj.prog,
"prog");
488 archive(ar, obj.vers,
"vers");
489 archive(ar, obj.proc,
"proc");
490 archive(ar, obj.success,
"success");
491 archive(ar, obj.failure,
"failure");
492 archive(ar, obj.indirect,
"indirect");
493 archive(ar, obj.netid,
"netid");
494 archive(ar, obj.next,
"next");
496 template<
typename Archive>
static void 498 archive(ar, obj.prog,
"prog");
499 archive(ar, obj.vers,
"vers");
500 archive(ar, obj.proc,
"proc");
501 archive(ar, obj.success,
"success");
502 archive(ar, obj.failure,
"failure");
503 archive(ar, obj.indirect,
"indirect");
504 archive(ar, obj.netid,
"netid");
505 archive(ar, obj.next,
"next");
517 std::int32_t setinfo{};
518 std::int32_t unsetinfo{};
523 template<
typename _info_T,
525 typename _unsetinfo_T,
526 typename _addrinfo_T,
529 std::enable_if<std::is_constructible<rpcbs_proc, _info_T>::value
530 && std::is_constructible<std::int32_t, _setinfo_T>::value
531 && std::is_constructible<std::int32_t, _unsetinfo_T>::value
532 && std::is_constructible<rpcbs_addrlist_ptr, _addrinfo_T>::value
533 && std::is_constructible<rpcbs_rmtcalllist_ptr, _rmtinfo_T>::value
536 _setinfo_T &&_setinfo,
537 _unsetinfo_T &&_unsetinfo,
538 _addrinfo_T &&_addrinfo,
539 _rmtinfo_T &&_rmtinfo)
540 : info(std::forward<_info_T>(_info)),
541 setinfo(std::forward<_setinfo_T>(_setinfo)),
542 unsetinfo(std::forward<_unsetinfo_T>(_unsetinfo)),
543 addrinfo(std::forward<_addrinfo_T>(_addrinfo)),
544 rmtinfo(std::forward<_rmtinfo_T>(_rmtinfo)) {}
549 decltype(::xdr::rpcb_stat::info),
550 &::xdr::rpcb_stat::info>,
551 field_ptr<::xdr::rpcb_stat,
552 decltype(::xdr::rpcb_stat::setinfo),
553 &::xdr::rpcb_stat::setinfo>,
554 field_ptr<::xdr::rpcb_stat,
555 decltype(::xdr::rpcb_stat::unsetinfo),
556 &::xdr::rpcb_stat::unsetinfo>,
557 field_ptr<::xdr::rpcb_stat,
558 decltype(::xdr::rpcb_stat::addrinfo),
559 &::xdr::rpcb_stat::addrinfo>,
560 field_ptr<::xdr::rpcb_stat,
561 decltype(::xdr::rpcb_stat::rmtinfo),
562 &::xdr::rpcb_stat::rmtinfo>> {
563 template<
typename Archive>
static void 564 save(Archive &ar, const ::xdr::rpcb_stat &obj) {
565 archive(ar, obj.info,
"info");
566 archive(ar, obj.setinfo,
"setinfo");
567 archive(ar, obj.unsetinfo,
"unsetinfo");
568 archive(ar, obj.addrinfo,
"addrinfo");
569 archive(ar, obj.rmtinfo,
"rmtinfo");
571 template<
typename Archive>
static void 573 archive(ar, obj.info,
"info");
574 archive(ar, obj.setinfo,
"setinfo");
575 archive(ar, obj.unsetinfo,
"unsetinfo");
576 archive(ar, obj.addrinfo,
"addrinfo");
577 archive(ar, obj.rmtinfo,
"rmtinfo");
586 std::uint32_t maxlen{};
590 template<
typename _maxlen_T,
593 std::enable_if<std::is_constructible<std::uint32_t, _maxlen_T>::value
594 && std::is_constructible<xdr::opaque_vec<>, _buf_T>::value
596 explicit netbuf(_maxlen_T &&_maxlen,
598 : maxlen(std::forward<_maxlen_T>(_maxlen)),
599 buf(std::forward<_buf_T>(_buf)) {}
604 decltype(::xdr::netbuf::maxlen),
605 &::xdr::netbuf::maxlen>,
606 field_ptr<::xdr::netbuf,
607 decltype(::xdr::netbuf::buf),
608 &::xdr::netbuf::buf>> {
609 template<
typename Archive>
static void 610 save(Archive &ar, const ::xdr::netbuf &obj) {
611 archive(ar, obj.maxlen,
"maxlen");
612 archive(ar, obj.buf,
"buf");
614 template<
typename Archive>
static void 616 archive(ar, obj.maxlen,
"maxlen");
617 archive(ar, obj.buf,
"buf");
626 static Constexpr
const std::uint32_t program = 100000;
627 static Constexpr
const char *program_name() {
return "RPCBPROG"; }
628 static Constexpr
const std::uint32_t version = 3;
629 static Constexpr
const char *version_name() {
return "RPCBVERS"; }
633 static Constexpr
const std::uint32_t proc = 1;
634 static Constexpr
const char *proc_name() {
return "RPCBPROC3_SET"; }
636 using arg_tuple_type = std::tuple<rpcb>;
637 using res_type = bool;
638 using res_wire_type = bool;
640 template<
typename C,
typename...A>
static auto 641 dispatch(C &&c, A &&...a) ->
642 decltype(c.RPCBPROC3_SET(std::forward<A>(a)...)) {
643 return c.RPCBPROC3_SET(std::forward<A>(a)...);
649 static Constexpr
const std::uint32_t proc = 2;
650 static Constexpr
const char *proc_name() {
return "RPCBPROC3_UNSET"; }
652 using arg_tuple_type = std::tuple<rpcb>;
653 using res_type = bool;
654 using res_wire_type = bool;
656 template<
typename C,
typename...A>
static auto 657 dispatch(C &&c, A &&...a) ->
658 decltype(c.RPCBPROC3_UNSET(std::forward<A>(a)...)) {
659 return c.RPCBPROC3_UNSET(std::forward<A>(a)...);
665 static Constexpr
const std::uint32_t proc = 3;
666 static Constexpr
const char *proc_name() {
return "RPCBPROC3_GETADDR"; }
668 using arg_tuple_type = std::tuple<rpcb>;
672 template<
typename C,
typename...A>
static auto 673 dispatch(C &&c, A &&...a) ->
674 decltype(c.RPCBPROC3_GETADDR(std::forward<A>(a)...)) {
675 return c.RPCBPROC3_GETADDR(std::forward<A>(a)...);
681 static Constexpr
const std::uint32_t proc = 4;
682 static Constexpr
const char *proc_name() {
return "RPCBPROC3_DUMP"; }
683 using arg_type = void;
684 using arg_tuple_type = std::tuple<>;
688 template<
typename C,
typename...A>
static auto 689 dispatch(C &&c, A &&...a) ->
690 decltype(c.RPCBPROC3_DUMP(std::forward<A>(a)...)) {
691 return c.RPCBPROC3_DUMP(std::forward<A>(a)...);
697 static Constexpr
const std::uint32_t proc = 5;
698 static Constexpr
const char *proc_name() {
return "RPCBPROC3_CALLIT"; }
700 using arg_tuple_type = std::tuple<rpcb_rmtcallargs>;
704 template<
typename C,
typename...A>
static auto 705 dispatch(C &&c, A &&...a) ->
706 decltype(c.RPCBPROC3_CALLIT(std::forward<A>(a)...)) {
707 return c.RPCBPROC3_CALLIT(std::forward<A>(a)...);
713 static Constexpr
const std::uint32_t proc = 6;
714 static Constexpr
const char *proc_name() {
return "RPCBPROC3_GETTIME"; }
715 using arg_type = void;
716 using arg_tuple_type = std::tuple<>;
717 using res_type = unsigned;
718 using res_wire_type = unsigned;
720 template<
typename C,
typename...A>
static auto 721 dispatch(C &&c, A &&...a) ->
722 decltype(c.RPCBPROC3_GETTIME(std::forward<A>(a)...)) {
723 return c.RPCBPROC3_GETTIME(std::forward<A>(a)...);
729 static Constexpr
const std::uint32_t proc = 7;
730 static Constexpr
const char *proc_name() {
return "RPCBPROC3_UADDR2TADDR"; }
732 using arg_tuple_type = std::tuple<rpcb_string>;
736 template<
typename C,
typename...A>
static auto 737 dispatch(C &&c, A &&...a) ->
738 decltype(c.RPCBPROC3_UADDR2TADDR(std::forward<A>(a)...)) {
739 return c.RPCBPROC3_UADDR2TADDR(std::forward<A>(a)...);
745 static Constexpr
const std::uint32_t proc = 8;
746 static Constexpr
const char *proc_name() {
return "RPCBPROC3_TADDR2UADDR"; }
748 using arg_tuple_type = std::tuple<netbuf>;
752 template<
typename C,
typename...A>
static auto 753 dispatch(C &&c, A &&...a) ->
754 decltype(c.RPCBPROC3_TADDR2UADDR(std::forward<A>(a)...)) {
755 return c.RPCBPROC3_TADDR2UADDR(std::forward<A>(a)...);
759 template<
typename T,
typename...A>
static bool 760 call_dispatch(T &&t, std::uint32_t proc, A &&...a) {
763 t.template dispatch<RPCBPROC3_SET_t>(std::forward<A>(a)...);
766 t.template dispatch<RPCBPROC3_UNSET_t>(std::forward<A>(a)...);
769 t.template dispatch<RPCBPROC3_GETADDR_t>(std::forward<A>(a)...);
772 t.template dispatch<RPCBPROC3_DUMP_t>(std::forward<A>(a)...);
775 t.template dispatch<RPCBPROC3_CALLIT_t>(std::forward<A>(a)...);
778 t.template dispatch<RPCBPROC3_GETTIME_t>(std::forward<A>(a)...);
781 t.template dispatch<RPCBPROC3_UADDR2TADDR_t>(std::forward<A>(a)...);
784 t.template dispatch<RPCBPROC3_TADDR2UADDR_t>(std::forward<A>(a)...);
791 _XDR_INVOKER _xdr_invoker_;
792 template<
typename...ARGS>
_xdr_client(ARGS &&...args)
793 : _xdr_invoker_(std::forward<ARGS>(args)...) {}
795 template<
typename..._XDR_ARGS>
auto 796 RPCBPROC3_SET(_XDR_ARGS &&..._xdr_args) ->
799 std::forward<_XDR_ARGS>(_xdr_args)...)) {
802 std::forward<_XDR_ARGS>(_xdr_args)...);
805 template<
typename..._XDR_ARGS>
auto 806 RPCBPROC3_UNSET(_XDR_ARGS &&..._xdr_args) ->
809 std::forward<_XDR_ARGS>(_xdr_args)...)) {
812 std::forward<_XDR_ARGS>(_xdr_args)...);
815 template<
typename..._XDR_ARGS>
auto 816 RPCBPROC3_GETADDR(_XDR_ARGS &&..._xdr_args) ->
819 std::forward<_XDR_ARGS>(_xdr_args)...)) {
822 std::forward<_XDR_ARGS>(_xdr_args)...);
825 template<
typename..._XDR_ARGS>
auto 826 RPCBPROC3_DUMP(_XDR_ARGS &&..._xdr_args) ->
827 decltype(_xdr_invoker_->template invoke<RPCBPROC3_DUMP_t>(
828 std::forward<_XDR_ARGS>(_xdr_args)...)) {
829 return _xdr_invoker_->template invoke<RPCBPROC3_DUMP_t>(
830 std::forward<_XDR_ARGS>(_xdr_args)...);
833 template<
typename..._XDR_ARGS>
auto 834 RPCBPROC3_CALLIT(_XDR_ARGS &&..._xdr_args) ->
837 std::forward<_XDR_ARGS>(_xdr_args)...)) {
840 std::forward<_XDR_ARGS>(_xdr_args)...);
843 template<
typename..._XDR_ARGS>
auto 844 RPCBPROC3_GETTIME(_XDR_ARGS &&..._xdr_args) ->
845 decltype(_xdr_invoker_->template invoke<RPCBPROC3_GETTIME_t>(
846 std::forward<_XDR_ARGS>(_xdr_args)...)) {
847 return _xdr_invoker_->template invoke<RPCBPROC3_GETTIME_t>(
848 std::forward<_XDR_ARGS>(_xdr_args)...);
851 template<
typename..._XDR_ARGS>
auto 852 RPCBPROC3_UADDR2TADDR(_XDR_ARGS &&..._xdr_args) ->
855 std::forward<_XDR_ARGS>(_xdr_args)...)) {
858 std::forward<_XDR_ARGS>(_xdr_args)...);
861 template<
typename..._XDR_ARGS>
auto 862 RPCBPROC3_TADDR2UADDR(_XDR_ARGS &&..._xdr_args) ->
865 std::forward<_XDR_ARGS>(_xdr_args)...)) {
868 std::forward<_XDR_ARGS>(_xdr_args)...);
874 static Constexpr
const std::uint32_t program = 100000;
875 static Constexpr
const char *program_name() {
return "RPCBPROG"; }
876 static Constexpr
const std::uint32_t version = 4;
877 static Constexpr
const char *version_name() {
return "RPCBVERS4"; }
881 static Constexpr
const std::uint32_t proc = 1;
882 static Constexpr
const char *proc_name() {
return "RPCBPROC_SET"; }
884 using arg_tuple_type = std::tuple<rpcb>;
885 using res_type = bool;
886 using res_wire_type = bool;
888 template<
typename C,
typename...A>
static auto 889 dispatch(C &&c, A &&...a) ->
890 decltype(c.RPCBPROC_SET(std::forward<A>(a)...)) {
891 return c.RPCBPROC_SET(std::forward<A>(a)...);
897 static Constexpr
const std::uint32_t proc = 2;
898 static Constexpr
const char *proc_name() {
return "RPCBPROC_UNSET"; }
900 using arg_tuple_type = std::tuple<rpcb>;
901 using res_type = bool;
902 using res_wire_type = bool;
904 template<
typename C,
typename...A>
static auto 905 dispatch(C &&c, A &&...a) ->
906 decltype(c.RPCBPROC_UNSET(std::forward<A>(a)...)) {
907 return c.RPCBPROC_UNSET(std::forward<A>(a)...);
913 static Constexpr
const std::uint32_t proc = 3;
914 static Constexpr
const char *proc_name() {
return "RPCBPROC_GETADDR"; }
916 using arg_tuple_type = std::tuple<rpcb>;
920 template<
typename C,
typename...A>
static auto 921 dispatch(C &&c, A &&...a) ->
922 decltype(c.RPCBPROC_GETADDR(std::forward<A>(a)...)) {
923 return c.RPCBPROC_GETADDR(std::forward<A>(a)...);
929 static Constexpr
const std::uint32_t proc = 4;
930 static Constexpr
const char *proc_name() {
return "RPCBPROC_DUMP"; }
931 using arg_type = void;
932 using arg_tuple_type = std::tuple<>;
936 template<
typename C,
typename...A>
static auto 937 dispatch(C &&c, A &&...a) ->
938 decltype(c.RPCBPROC_DUMP(std::forward<A>(a)...)) {
939 return c.RPCBPROC_DUMP(std::forward<A>(a)...);
945 static Constexpr
const std::uint32_t proc = 5;
946 static Constexpr
const char *proc_name() {
return "RPCBPROC_BCAST"; }
948 using arg_tuple_type = std::tuple<rpcb_rmtcallargs>;
952 template<
typename C,
typename...A>
static auto 953 dispatch(C &&c, A &&...a) ->
954 decltype(c.RPCBPROC_BCAST(std::forward<A>(a)...)) {
955 return c.RPCBPROC_BCAST(std::forward<A>(a)...);
961 static Constexpr
const std::uint32_t proc = 6;
962 static Constexpr
const char *proc_name() {
return "RPCBPROC_GETTIME"; }
963 using arg_type = void;
964 using arg_tuple_type = std::tuple<>;
965 using res_type = unsigned;
966 using res_wire_type = unsigned;
968 template<
typename C,
typename...A>
static auto 969 dispatch(C &&c, A &&...a) ->
970 decltype(c.RPCBPROC_GETTIME(std::forward<A>(a)...)) {
971 return c.RPCBPROC_GETTIME(std::forward<A>(a)...);
977 static Constexpr
const std::uint32_t proc = 7;
978 static Constexpr
const char *proc_name() {
return "RPCBPROC_UADDR2TADDR"; }
980 using arg_tuple_type = std::tuple<rpcb_string>;
984 template<
typename C,
typename...A>
static auto 985 dispatch(C &&c, A &&...a) ->
986 decltype(c.RPCBPROC_UADDR2TADDR(std::forward<A>(a)...)) {
987 return c.RPCBPROC_UADDR2TADDR(std::forward<A>(a)...);
993 static Constexpr
const std::uint32_t proc = 8;
994 static Constexpr
const char *proc_name() {
return "RPCBPROC_TADDR2UADDR"; }
996 using arg_tuple_type = std::tuple<netbuf>;
1000 template<
typename C,
typename...A>
static auto 1001 dispatch(C &&c, A &&...a) ->
1002 decltype(c.RPCBPROC_TADDR2UADDR(std::forward<A>(a)...)) {
1003 return c.RPCBPROC_TADDR2UADDR(std::forward<A>(a)...);
1009 static Constexpr
const std::uint32_t proc = 9;
1010 static Constexpr
const char *proc_name() {
return "RPCBPROC_GETVERSADDR"; }
1012 using arg_tuple_type = std::tuple<rpcb>;
1016 template<
typename C,
typename...A>
static auto 1017 dispatch(C &&c, A &&...a) ->
1018 decltype(c.RPCBPROC_GETVERSADDR(std::forward<A>(a)...)) {
1019 return c.RPCBPROC_GETVERSADDR(std::forward<A>(a)...);
1025 static Constexpr
const std::uint32_t proc = 10;
1026 static Constexpr
const char *proc_name() {
return "RPCBPROC_INDIRECT"; }
1028 using arg_tuple_type = std::tuple<rpcb_rmtcallargs>;
1032 template<
typename C,
typename...A>
static auto 1033 dispatch(C &&c, A &&...a) ->
1034 decltype(c.RPCBPROC_INDIRECT(std::forward<A>(a)...)) {
1035 return c.RPCBPROC_INDIRECT(std::forward<A>(a)...);
1041 static Constexpr
const std::uint32_t proc = 11;
1042 static Constexpr
const char *proc_name() {
return "RPCBPROC_GETADDRLIST"; }
1044 using arg_tuple_type = std::tuple<rpcb>;
1048 template<
typename C,
typename...A>
static auto 1049 dispatch(C &&c, A &&...a) ->
1050 decltype(c.RPCBPROC_GETADDRLIST(std::forward<A>(a)...)) {
1051 return c.RPCBPROC_GETADDRLIST(std::forward<A>(a)...);
1057 static Constexpr
const std::uint32_t proc = 12;
1058 static Constexpr
const char *proc_name() {
return "RPCBPROC_GETSTAT"; }
1059 using arg_type = void;
1060 using arg_tuple_type = std::tuple<>;
1064 template<
typename C,
typename...A>
static auto 1065 dispatch(C &&c, A &&...a) ->
1066 decltype(c.RPCBPROC_GETSTAT(std::forward<A>(a)...)) {
1067 return c.RPCBPROC_GETSTAT(std::forward<A>(a)...);
1071 template<
typename T,
typename...A>
static bool 1072 call_dispatch(T &&t, std::uint32_t proc, A &&...a) {
1075 t.template dispatch<RPCBPROC_SET_t>(std::forward<A>(a)...);
1078 t.template dispatch<RPCBPROC_UNSET_t>(std::forward<A>(a)...);
1081 t.template dispatch<RPCBPROC_GETADDR_t>(std::forward<A>(a)...);
1084 t.template dispatch<RPCBPROC_DUMP_t>(std::forward<A>(a)...);
1087 t.template dispatch<RPCBPROC_BCAST_t>(std::forward<A>(a)...);
1090 t.template dispatch<RPCBPROC_GETTIME_t>(std::forward<A>(a)...);
1093 t.template dispatch<RPCBPROC_UADDR2TADDR_t>(std::forward<A>(a)...);
1096 t.template dispatch<RPCBPROC_TADDR2UADDR_t>(std::forward<A>(a)...);
1099 t.template dispatch<RPCBPROC_GETVERSADDR_t>(std::forward<A>(a)...);
1102 t.template dispatch<RPCBPROC_INDIRECT_t>(std::forward<A>(a)...);
1105 t.template dispatch<RPCBPROC_GETADDRLIST_t>(std::forward<A>(a)...);
1108 t.template dispatch<RPCBPROC_GETSTAT_t>(std::forward<A>(a)...);
1115 _XDR_INVOKER _xdr_invoker_;
1116 template<
typename...ARGS>
_xdr_client(ARGS &&...args)
1117 : _xdr_invoker_(std::forward<ARGS>(args)...) {}
1119 template<
typename..._XDR_ARGS>
auto 1120 RPCBPROC_SET(_XDR_ARGS &&..._xdr_args) ->
1123 std::forward<_XDR_ARGS>(_xdr_args)...)) {
1126 std::forward<_XDR_ARGS>(_xdr_args)...);
1129 template<
typename..._XDR_ARGS>
auto 1130 RPCBPROC_UNSET(_XDR_ARGS &&..._xdr_args) ->
1133 std::forward<_XDR_ARGS>(_xdr_args)...)) {
1136 std::forward<_XDR_ARGS>(_xdr_args)...);
1139 template<
typename..._XDR_ARGS>
auto 1140 RPCBPROC_GETADDR(_XDR_ARGS &&..._xdr_args) ->
1143 std::forward<_XDR_ARGS>(_xdr_args)...)) {
1146 std::forward<_XDR_ARGS>(_xdr_args)...);
1149 template<
typename..._XDR_ARGS>
auto 1150 RPCBPROC_DUMP(_XDR_ARGS &&..._xdr_args) ->
1151 decltype(_xdr_invoker_->template invoke<RPCBPROC_DUMP_t>(
1152 std::forward<_XDR_ARGS>(_xdr_args)...)) {
1153 return _xdr_invoker_->template invoke<RPCBPROC_DUMP_t>(
1154 std::forward<_XDR_ARGS>(_xdr_args)...);
1157 template<
typename..._XDR_ARGS>
auto 1158 RPCBPROC_BCAST(_XDR_ARGS &&..._xdr_args) ->
1161 std::forward<_XDR_ARGS>(_xdr_args)...)) {
1164 std::forward<_XDR_ARGS>(_xdr_args)...);
1167 template<
typename..._XDR_ARGS>
auto 1168 RPCBPROC_GETTIME(_XDR_ARGS &&..._xdr_args) ->
1169 decltype(_xdr_invoker_->template invoke<RPCBPROC_GETTIME_t>(
1170 std::forward<_XDR_ARGS>(_xdr_args)...)) {
1171 return _xdr_invoker_->template invoke<RPCBPROC_GETTIME_t>(
1172 std::forward<_XDR_ARGS>(_xdr_args)...);
1175 template<
typename..._XDR_ARGS>
auto 1176 RPCBPROC_UADDR2TADDR(_XDR_ARGS &&..._xdr_args) ->
1179 std::forward<_XDR_ARGS>(_xdr_args)...)) {
1182 std::forward<_XDR_ARGS>(_xdr_args)...);
1185 template<
typename..._XDR_ARGS>
auto 1186 RPCBPROC_TADDR2UADDR(_XDR_ARGS &&..._xdr_args) ->
1189 std::forward<_XDR_ARGS>(_xdr_args)...)) {
1192 std::forward<_XDR_ARGS>(_xdr_args)...);
1195 template<
typename..._XDR_ARGS>
auto 1196 RPCBPROC_GETVERSADDR(_XDR_ARGS &&..._xdr_args) ->
1199 std::forward<_XDR_ARGS>(_xdr_args)...)) {
1202 std::forward<_XDR_ARGS>(_xdr_args)...);
1205 template<
typename..._XDR_ARGS>
auto 1206 RPCBPROC_INDIRECT(_XDR_ARGS &&..._xdr_args) ->
1209 std::forward<_XDR_ARGS>(_xdr_args)...)) {
1212 std::forward<_XDR_ARGS>(_xdr_args)...);
1215 template<
typename..._XDR_ARGS>
auto 1216 RPCBPROC_GETADDRLIST(_XDR_ARGS &&..._xdr_args) ->
1219 std::forward<_XDR_ARGS>(_xdr_args)...)) {
1222 std::forward<_XDR_ARGS>(_xdr_args)...);
1225 template<
typename..._XDR_ARGS>
auto 1226 RPCBPROC_GETSTAT(_XDR_ARGS &&..._xdr_args) ->
1227 decltype(_xdr_invoker_->template invoke<RPCBPROC_GETSTAT_t>(
1228 std::forward<_XDR_ARGS>(_xdr_args)...)) {
1229 return _xdr_invoker_->template invoke<RPCBPROC_GETSTAT_t>(
1230 std::forward<_XDR_ARGS>(_xdr_args)...);
1235 Constexpr
const std::uint32_t PMAP_PORT = 111;
1238 std::uint32_t prog{};
1239 std::uint32_t vers{};
1240 std::uint32_t prot{};
1241 std::uint32_t port{};
1244 template<
typename _prog_T,
1249 std::enable_if<std::is_constructible<std::uint32_t, _prog_T>::value
1250 && std::is_constructible<std::uint32_t, _vers_T>::value
1251 && std::is_constructible<std::uint32_t, _prot_T>::value
1252 && std::is_constructible<std::uint32_t, _port_T>::value
1254 explicit mapping(_prog_T &&_prog,
1258 : prog(std::forward<_prog_T>(_prog)),
1259 vers(std::forward<_vers_T>(_vers)),
1260 prot(std::forward<_prot_T>(_prot)),
1261 port(std::forward<_port_T>(_port)) {}
1266 decltype(::xdr::mapping::prog),
1267 &::xdr::mapping::prog>,
1268 field_ptr<::xdr::mapping,
1269 decltype(::xdr::mapping::vers),
1270 &::xdr::mapping::vers>,
1271 field_ptr<::xdr::mapping,
1272 decltype(::xdr::mapping::prot),
1273 &::xdr::mapping::prot>,
1274 field_ptr<::xdr::mapping,
1275 decltype(::xdr::mapping::port),
1276 &::xdr::mapping::port>> {
1277 template<
typename Archive>
static void 1278 save(Archive &ar, const ::xdr::mapping &obj) {
1279 archive(ar, obj.prog,
"prog");
1280 archive(ar, obj.vers,
"vers");
1281 archive(ar, obj.prot,
"prot");
1282 archive(ar, obj.port,
"port");
1284 template<
typename Archive>
static void 1286 archive(ar, obj.prog,
"prog");
1287 archive(ar, obj.vers,
"vers");
1288 archive(ar, obj.prot,
"prot");
1289 archive(ar, obj.port,
"port");
1300 template<
typename _map_T,
1303 std::enable_if<std::is_constructible<mapping, _map_T>::value
1304 && std::is_constructible<xdr::pointer<pmaplist_entry>, _next_T>::value
1308 : map(std::forward<_map_T>(_map)),
1309 next(std::forward<_next_T>(_next)) {}
1314 decltype(::xdr::pmaplist_entry::map),
1315 &::xdr::pmaplist_entry::map>,
1316 field_ptr<::xdr::pmaplist_entry,
1317 decltype(::xdr::pmaplist_entry::next),
1318 &::xdr::pmaplist_entry::next>> {
1319 template<
typename Archive>
static void 1320 save(Archive &ar, const ::xdr::pmaplist_entry &obj) {
1321 archive(ar, obj.map,
"map");
1322 archive(ar, obj.next,
"next");
1324 template<
typename Archive>
static void 1326 archive(ar, obj.map,
"map");
1327 archive(ar, obj.next,
"next");
1336 std::uint32_t prog{};
1337 std::uint32_t vers{};
1338 std::uint32_t proc{};
1342 template<
typename _prog_T,
1347 std::enable_if<std::is_constructible<std::uint32_t, _prog_T>::value
1348 && std::is_constructible<std::uint32_t, _vers_T>::value
1349 && std::is_constructible<std::uint32_t, _proc_T>::value
1350 && std::is_constructible<xdr::opaque_vec<>, _args_T>::value
1356 : prog(std::forward<_prog_T>(_prog)),
1357 vers(std::forward<_vers_T>(_vers)),
1358 proc(std::forward<_proc_T>(_proc)),
1359 args(std::forward<_args_T>(_args)) {}
1364 decltype(::xdr::call_args::prog),
1365 &::xdr::call_args::prog>,
1366 field_ptr<::xdr::call_args,
1367 decltype(::xdr::call_args::vers),
1368 &::xdr::call_args::vers>,
1369 field_ptr<::xdr::call_args,
1370 decltype(::xdr::call_args::proc),
1371 &::xdr::call_args::proc>,
1372 field_ptr<::xdr::call_args,
1373 decltype(::xdr::call_args::args),
1374 &::xdr::call_args::args>> {
1375 template<
typename Archive>
static void 1376 save(Archive &ar, const ::xdr::call_args &obj) {
1377 archive(ar, obj.prog,
"prog");
1378 archive(ar, obj.vers,
"vers");
1379 archive(ar, obj.proc,
"proc");
1380 archive(ar, obj.args,
"args");
1382 template<
typename Archive>
static void 1384 archive(ar, obj.prog,
"prog");
1385 archive(ar, obj.vers,
"vers");
1386 archive(ar, obj.proc,
"proc");
1387 archive(ar, obj.args,
"args");
1394 std::uint32_t port{};
1398 template<
typename _port_T,
1401 std::enable_if<std::is_constructible<std::uint32_t, _port_T>::value
1402 && std::is_constructible<xdr::opaque_vec<>, _res_T>::value
1406 : port(std::forward<_port_T>(_port)),
1407 res(std::forward<_res_T>(_res)) {}
1412 decltype(::xdr::call_result::port),
1413 &::xdr::call_result::port>,
1414 field_ptr<::xdr::call_result,
1415 decltype(::xdr::call_result::res),
1416 &::xdr::call_result::res>> {
1417 template<
typename Archive>
static void 1418 save(Archive &ar, const ::xdr::call_result &obj) {
1419 archive(ar, obj.port,
"port");
1420 archive(ar, obj.res,
"res");
1422 template<
typename Archive>
static void 1424 archive(ar, obj.port,
"port");
1425 archive(ar, obj.res,
"res");
1432 static Constexpr
const std::uint32_t program = 100000;
1433 static Constexpr
const char *program_name() {
return "PMAP_PROG"; }
1434 static Constexpr
const std::uint32_t version = 2;
1435 static Constexpr
const char *version_name() {
return "PMAP_VERS"; }
1439 static Constexpr
const std::uint32_t proc = 0;
1440 static Constexpr
const char *proc_name() {
return "PMAPPROC_NULL"; }
1441 using arg_type = void;
1442 using arg_tuple_type = std::tuple<>;
1443 using res_type = void;
1446 template<
typename C,
typename...A>
static auto 1447 dispatch(C &&c, A &&...a) ->
1448 decltype(c.PMAPPROC_NULL(std::forward<A>(a)...)) {
1449 return c.PMAPPROC_NULL(std::forward<A>(a)...);
1455 static Constexpr
const std::uint32_t proc = 1;
1456 static Constexpr
const char *proc_name() {
return "PMAPPROC_SET"; }
1458 using arg_tuple_type = std::tuple<mapping>;
1459 using res_type = bool;
1460 using res_wire_type = bool;
1462 template<
typename C,
typename...A>
static auto 1463 dispatch(C &&c, A &&...a) ->
1464 decltype(c.PMAPPROC_SET(std::forward<A>(a)...)) {
1465 return c.PMAPPROC_SET(std::forward<A>(a)...);
1471 static Constexpr
const std::uint32_t proc = 2;
1472 static Constexpr
const char *proc_name() {
return "PMAPPROC_UNSET"; }
1474 using arg_tuple_type = std::tuple<mapping>;
1475 using res_type = bool;
1476 using res_wire_type = bool;
1478 template<
typename C,
typename...A>
static auto 1479 dispatch(C &&c, A &&...a) ->
1480 decltype(c.PMAPPROC_UNSET(std::forward<A>(a)...)) {
1481 return c.PMAPPROC_UNSET(std::forward<A>(a)...);
1487 static Constexpr
const std::uint32_t proc = 3;
1488 static Constexpr
const char *proc_name() {
return "PMAPPROC_GETPORT"; }
1490 using arg_tuple_type = std::tuple<mapping>;
1491 using res_type = unsigned;
1492 using res_wire_type = unsigned;
1494 template<
typename C,
typename...A>
static auto 1495 dispatch(C &&c, A &&...a) ->
1496 decltype(c.PMAPPROC_GETPORT(std::forward<A>(a)...)) {
1497 return c.PMAPPROC_GETPORT(std::forward<A>(a)...);
1503 static Constexpr
const std::uint32_t proc = 4;
1504 static Constexpr
const char *proc_name() {
return "PMAPPROC_DUMP"; }
1505 using arg_type = void;
1506 using arg_tuple_type = std::tuple<>;
1510 template<
typename C,
typename...A>
static auto 1511 dispatch(C &&c, A &&...a) ->
1512 decltype(c.PMAPPROC_DUMP(std::forward<A>(a)...)) {
1513 return c.PMAPPROC_DUMP(std::forward<A>(a)...);
1519 static Constexpr
const std::uint32_t proc = 5;
1520 static Constexpr
const char *proc_name() {
return "PMAPPROC_CALLIT"; }
1522 using arg_tuple_type = std::tuple<call_args>;
1526 template<
typename C,
typename...A>
static auto 1527 dispatch(C &&c, A &&...a) ->
1528 decltype(c.PMAPPROC_CALLIT(std::forward<A>(a)...)) {
1529 return c.PMAPPROC_CALLIT(std::forward<A>(a)...);
1533 template<
typename T,
typename...A>
static bool 1534 call_dispatch(T &&t, std::uint32_t proc, A &&...a) {
1537 t.template dispatch<PMAPPROC_NULL_t>(std::forward<A>(a)...);
1540 t.template dispatch<PMAPPROC_SET_t>(std::forward<A>(a)...);
1543 t.template dispatch<PMAPPROC_UNSET_t>(std::forward<A>(a)...);
1546 t.template dispatch<PMAPPROC_GETPORT_t>(std::forward<A>(a)...);
1549 t.template dispatch<PMAPPROC_DUMP_t>(std::forward<A>(a)...);
1552 t.template dispatch<PMAPPROC_CALLIT_t>(std::forward<A>(a)...);
1559 _XDR_INVOKER _xdr_invoker_;
1560 template<
typename...ARGS>
_xdr_client(ARGS &&...args)
1561 : _xdr_invoker_(std::forward<ARGS>(args)...) {}
1563 template<
typename..._XDR_ARGS>
auto 1564 PMAPPROC_NULL(_XDR_ARGS &&..._xdr_args) ->
1565 decltype(_xdr_invoker_->template invoke<PMAPPROC_NULL_t>(
1566 std::forward<_XDR_ARGS>(_xdr_args)...)) {
1567 return _xdr_invoker_->template invoke<PMAPPROC_NULL_t>(
1568 std::forward<_XDR_ARGS>(_xdr_args)...);
1571 template<
typename..._XDR_ARGS>
auto 1572 PMAPPROC_SET(_XDR_ARGS &&..._xdr_args) ->
1575 std::forward<_XDR_ARGS>(_xdr_args)...)) {
1578 std::forward<_XDR_ARGS>(_xdr_args)...);
1581 template<
typename..._XDR_ARGS>
auto 1582 PMAPPROC_UNSET(_XDR_ARGS &&..._xdr_args) ->
1585 std::forward<_XDR_ARGS>(_xdr_args)...)) {
1588 std::forward<_XDR_ARGS>(_xdr_args)...);
1591 template<
typename..._XDR_ARGS>
auto 1592 PMAPPROC_GETPORT(_XDR_ARGS &&..._xdr_args) ->
1595 std::forward<_XDR_ARGS>(_xdr_args)...)) {
1598 std::forward<_XDR_ARGS>(_xdr_args)...);
1601 template<
typename..._XDR_ARGS>
auto 1602 PMAPPROC_DUMP(_XDR_ARGS &&..._xdr_args) ->
1603 decltype(_xdr_invoker_->template invoke<PMAPPROC_DUMP_t>(
1604 std::forward<_XDR_ARGS>(_xdr_args)...)) {
1605 return _xdr_invoker_->template invoke<PMAPPROC_DUMP_t>(
1606 std::forward<_XDR_ARGS>(_xdr_args)...);
1609 template<
typename..._XDR_ARGS>
auto 1610 PMAPPROC_CALLIT(_XDR_ARGS &&..._xdr_args) ->
1613 std::forward<_XDR_ARGS>(_xdr_args)...)) {
1616 std::forward<_XDR_ARGS>(_xdr_args)...);
1623 #endif // !__XDR_XDRPP_RPCB_PROT_HH_INCLUDED__
Type definitions for xdrc compiler output.
std::tuple<> xdr_void
Placehoder type representing void values marshaled as 0 bytes.
A unique_ptr to a call result, or NULL if the call failed (in which case message returns an error mes...
Most of the xdrpp library is encapsulated in the xdr namespace.
A string with a maximum length (returned by xstring::max_size()).
Optional data (represented with pointer notation in XDR source).
Metadata for all marshalable XDR types.
void validate(const T &t)
If this function template is specialized, it provides a means of placing extra restrictions on XDR da...