xorp

pim_base.hh

00001 /*
00002  * obj/i686-pc-linux-gnu/xrl/targets/pim_base.hh
00003  * vim:set sts=4 ts=8 ft=cpp:
00004  *
00005  * Copyright (c) 2001-2011 XORP, Inc and Others
00006  * See the XORP LICENSE.lgpl file for licensing, conditions, and warranties
00007  * on use.
00008  *
00009  * DO NOT EDIT THIS FILE - IT IS PROGRAMMATICALLY GENERATED
00010  *
00011  * Generated by 'tgt-gen'.
00012  */
00013 
00014 
00015 #ifndef __XRL_TARGETS_PIM_BASE_HH__
00016 #define __XRL_TARGETS_PIM_BASE_HH__
00017 
00018 #undef XORP_LIBRARY_NAME
00019 #define XORP_LIBRARY_NAME "XrlPimTarget"
00020 
00021 #include "libxorp/xlog.h"
00022 #include "libxipc/xrl_cmd_map.hh"
00023 
00024 class XrlPimTargetBase {
00025 protected:
00026     XrlCmdMap* _cmds;
00027 
00028 public:
00036     XrlPimTargetBase(XrlCmdMap* cmds = 0);
00037 
00043     virtual ~XrlPimTargetBase();
00044 
00055     bool set_command_map(XrlCmdMap* cmds);
00056 
00060     const string& get_name() const { return _cmds->name(); }
00061 
00065     const char* version() const { return "pim/0.0"; }
00066 
00067 protected:
00068 
00074     virtual XrlCmdError common_0_1_get_target_name(
00075     // Output values,
00076     string& name) = 0;
00077 #ifdef XORP_ENABLE_ASYNC_SERVER
00078     typedef
00079     XorpCallback2<void, const XrlCmdError &,
00080     const string*>::RefPtr
00081     Common01GetTargetNameRF;
00082 
00083     class Common01GetTargetNameCB {
00084         Common01GetTargetNameRF cb;
00085 
00086     public:
00087         operator const Common01GetTargetNameRF& () const { return cb; }
00088         const Common01GetTargetNameRF& operator ->() const { return cb; }
00089         Common01GetTargetNameCB(const Common01GetTargetNameRF& cb)
00090           : cb(cb) { }
00091 
00092         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
00093 
00094         void respond(const string& arg_name) const {
00095             cb->dispatch(XrlCmdError::OKAY(),
00096                          &arg_name);
00097         }
00098     };
00099 
00100     struct Common01GetTargetNameRsp :
00101       public Common01GetTargetNameCB {
00102         struct args_str {
00103             string name;
00104         };
00105 
00106     private:
00107         args_str args;
00108 
00109     public:
00110         Common01GetTargetNameRsp(const Common01GetTargetNameRF& cb)
00111           : Common01GetTargetNameCB(cb) { }
00112 
00113         void respond() const {
00114             Common01GetTargetNameCB::
00115             respond(args.name);
00116         }
00117 
00118         args_str* operator ->() {
00119             return &args;
00120         }
00121     };
00122 
00123     virtual void async_common_0_1_get_target_name
00124        (
00125     Common01GetTargetNameCB);
00126 #endif
00127 
00133     virtual XrlCmdError common_0_1_get_version(
00134     // Output values,
00135     string& version) = 0;
00136 #ifdef XORP_ENABLE_ASYNC_SERVER
00137     typedef
00138     XorpCallback2<void, const XrlCmdError &,
00139     const string*>::RefPtr
00140     Common01GetVersionRF;
00141 
00142     class Common01GetVersionCB {
00143         Common01GetVersionRF cb;
00144 
00145     public:
00146         operator const Common01GetVersionRF& () const { return cb; }
00147         const Common01GetVersionRF& operator ->() const { return cb; }
00148         Common01GetVersionCB(const Common01GetVersionRF& cb)
00149           : cb(cb) { }
00150 
00151         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
00152 
00153         void respond(const string& arg_version) const {
00154             cb->dispatch(XrlCmdError::OKAY(),
00155                          &arg_version);
00156         }
00157     };
00158 
00159     struct Common01GetVersionRsp :
00160       public Common01GetVersionCB {
00161         struct args_str {
00162             string version;
00163         };
00164 
00165     private:
00166         args_str args;
00167 
00168     public:
00169         Common01GetVersionRsp(const Common01GetVersionRF& cb)
00170           : Common01GetVersionCB(cb) { }
00171 
00172         void respond() const {
00173             Common01GetVersionCB::
00174             respond(args.version);
00175         }
00176 
00177         args_str* operator ->() {
00178             return &args;
00179         }
00180     };
00181 
00182     virtual void async_common_0_1_get_version
00183        (
00184     Common01GetVersionCB);
00185 #endif
00186 
00192     virtual XrlCmdError common_0_1_get_status(
00193     // Output values,
00194     uint32_t&   status,
00195     string& reason) = 0;
00196 #ifdef XORP_ENABLE_ASYNC_SERVER
00197     typedef
00198     XorpCallback3<void, const XrlCmdError &,
00199     const uint32_t*,
00200     const string*>::RefPtr
00201     Common01GetStatusRF;
00202 
00203     class Common01GetStatusCB {
00204         Common01GetStatusRF cb;
00205 
00206     public:
00207         operator const Common01GetStatusRF& () const { return cb; }
00208         const Common01GetStatusRF& operator ->() const { return cb; }
00209         Common01GetStatusCB(const Common01GetStatusRF& cb)
00210           : cb(cb) { }
00211 
00212         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL, NULL); }
00213 
00214         void respond(const uint32_t& arg_status,
00215                      const string& arg_reason) const {
00216             cb->dispatch(XrlCmdError::OKAY(),
00217                          &arg_status,
00218                          &arg_reason);
00219         }
00220     };
00221 
00222     struct Common01GetStatusRsp :
00223       public Common01GetStatusCB {
00224         struct args_str {
00225             uint32_t status;
00226             string reason;
00227         };
00228 
00229     private:
00230         args_str args;
00231 
00232     public:
00233         Common01GetStatusRsp(const Common01GetStatusRF& cb)
00234           : Common01GetStatusCB(cb) { }
00235 
00236         void respond() const {
00237             Common01GetStatusCB::
00238             respond(args.status,
00239                         args.reason);
00240         }
00241 
00242         args_str* operator ->() {
00243             return &args;
00244         }
00245     };
00246 
00247     virtual void async_common_0_1_get_status
00248        (
00249     Common01GetStatusCB);
00250 #endif
00251 
00257     virtual XrlCmdError common_0_1_shutdown() = 0;
00258 #ifdef XORP_ENABLE_ASYNC_SERVER
00259     typedef
00260     XorpCallback1<void, const XrlCmdError &>::RefPtr
00261     Common01ShutdownRF;
00262 
00263     class Common01ShutdownCB {
00264         Common01ShutdownRF cb;
00265 
00266     public:
00267         operator const Common01ShutdownRF& () const { return cb; }
00268         const Common01ShutdownRF& operator ->() const { return cb; }
00269         Common01ShutdownCB(const Common01ShutdownRF& cb)
00270           : cb(cb) { }
00271 
00272         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
00273 
00274         void respond() const {
00275             cb->dispatch(XrlCmdError::OKAY());
00276         }
00277     };
00278 
00279     struct Common01ShutdownRsp :
00280       public Common01ShutdownCB {
00281         Common01ShutdownRsp(const Common01ShutdownRF& cb)
00282           : Common01ShutdownCB(cb) { }
00283 
00284     };
00285 
00286     virtual void async_common_0_1_shutdown
00287        (
00288     Common01ShutdownCB);
00289 #endif
00290 
00296     virtual XrlCmdError common_0_1_startup() = 0;
00297 #ifdef XORP_ENABLE_ASYNC_SERVER
00298     typedef
00299     XorpCallback1<void, const XrlCmdError &>::RefPtr
00300     Common01StartupRF;
00301 
00302     class Common01StartupCB {
00303         Common01StartupRF cb;
00304 
00305     public:
00306         operator const Common01StartupRF& () const { return cb; }
00307         const Common01StartupRF& operator ->() const { return cb; }
00308         Common01StartupCB(const Common01StartupRF& cb)
00309           : cb(cb) { }
00310 
00311         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
00312 
00313         void respond() const {
00314             cb->dispatch(XrlCmdError::OKAY());
00315         }
00316     };
00317 
00318     struct Common01StartupRsp :
00319       public Common01StartupCB {
00320         Common01StartupRsp(const Common01StartupRF& cb)
00321           : Common01StartupCB(cb) { }
00322 
00323     };
00324 
00325     virtual void async_common_0_1_startup
00326        (
00327     Common01StartupCB);
00328 #endif
00329 
00353     virtual XrlCmdError cli_processor_0_1_process_command(
00354     // Input values,
00355     const string&   processor_name,
00356     const string&   cli_term_name,
00357     const uint32_t& cli_session_id,
00358     const string&   command_name,
00359     const string&   command_args,
00360     // Output values,
00361     string& ret_processor_name,
00362     string& ret_cli_term_name,
00363     uint32_t&   ret_cli_session_id,
00364     string& ret_command_output) = 0;
00365 #ifdef XORP_ENABLE_ASYNC_SERVER
00366     typedef
00367     XorpCallback5<void, const XrlCmdError &,
00368     const string*,
00369     const string*,
00370     const uint32_t*,
00371     const string*>::RefPtr
00372     CliProcessor01ProcessCommandRF;
00373 
00374     class CliProcessor01ProcessCommandCB {
00375         CliProcessor01ProcessCommandRF cb;
00376 
00377     public:
00378         operator const CliProcessor01ProcessCommandRF& () const { return cb; }
00379         const CliProcessor01ProcessCommandRF& operator ->() const { return cb; }
00380         CliProcessor01ProcessCommandCB(const CliProcessor01ProcessCommandRF& cb)
00381           : cb(cb) { }
00382 
00383         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL, NULL, NULL, NULL); }
00384 
00385         void respond(const string& arg_ret_processor_name,
00386                      const string& arg_ret_cli_term_name,
00387                      const uint32_t& arg_ret_cli_session_id,
00388                      const string& arg_ret_command_output) const {
00389             cb->dispatch(XrlCmdError::OKAY(),
00390                          &arg_ret_processor_name,
00391                          &arg_ret_cli_term_name,
00392                          &arg_ret_cli_session_id,
00393                          &arg_ret_command_output);
00394         }
00395     };
00396 
00397     struct CliProcessor01ProcessCommandRsp :
00398       public CliProcessor01ProcessCommandCB {
00399         struct args_str {
00400             string ret_processor_name;
00401             string ret_cli_term_name;
00402             uint32_t ret_cli_session_id;
00403             string ret_command_output;
00404         };
00405 
00406     private:
00407         args_str args;
00408 
00409     public:
00410         CliProcessor01ProcessCommandRsp(const CliProcessor01ProcessCommandRF& cb)
00411           : CliProcessor01ProcessCommandCB(cb) { }
00412 
00413         void respond() const {
00414             CliProcessor01ProcessCommandCB::
00415             respond(args.ret_processor_name,
00416                         args.ret_cli_term_name,
00417                         args.ret_cli_session_id,
00418                         args.ret_command_output);
00419         }
00420 
00421         args_str* operator ->() {
00422             return &args;
00423         }
00424     };
00425 
00426     virtual void async_cli_processor_0_1_process_command
00427        (
00428     const string&   processor_name,
00429     const string&   cli_term_name,
00430     const uint32_t& cli_session_id,
00431     const string&   command_name,
00432     const string&   command_args,
00433     CliProcessor01ProcessCommandCB);
00434 #endif
00435 
00445     virtual XrlCmdError finder_event_observer_0_1_xrl_target_birth(
00446     // Input values,
00447     const string&   target_class,
00448     const string&   target_instance) = 0;
00449 #ifdef XORP_ENABLE_ASYNC_SERVER
00450     typedef
00451     XorpCallback1<void, const XrlCmdError &>::RefPtr
00452     FinderEventObserver01XrlTargetBirthRF;
00453 
00454     class FinderEventObserver01XrlTargetBirthCB {
00455         FinderEventObserver01XrlTargetBirthRF cb;
00456 
00457     public:
00458         operator const FinderEventObserver01XrlTargetBirthRF& () const { return cb; }
00459         const FinderEventObserver01XrlTargetBirthRF& operator ->() const { return cb; }
00460         FinderEventObserver01XrlTargetBirthCB(const FinderEventObserver01XrlTargetBirthRF& cb)
00461           : cb(cb) { }
00462 
00463         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
00464 
00465         void respond() const {
00466             cb->dispatch(XrlCmdError::OKAY());
00467         }
00468     };
00469 
00470     struct FinderEventObserver01XrlTargetBirthRsp :
00471       public FinderEventObserver01XrlTargetBirthCB {
00472         FinderEventObserver01XrlTargetBirthRsp(const FinderEventObserver01XrlTargetBirthRF& cb)
00473           : FinderEventObserver01XrlTargetBirthCB(cb) { }
00474 
00475     };
00476 
00477     virtual void async_finder_event_observer_0_1_xrl_target_birth
00478        (
00479     const string&   target_class,
00480     const string&   target_instance,
00481     FinderEventObserver01XrlTargetBirthCB);
00482 #endif
00483 
00493     virtual XrlCmdError finder_event_observer_0_1_xrl_target_death(
00494     // Input values,
00495     const string&   target_class,
00496     const string&   target_instance) = 0;
00497 #ifdef XORP_ENABLE_ASYNC_SERVER
00498     typedef
00499     XorpCallback1<void, const XrlCmdError &>::RefPtr
00500     FinderEventObserver01XrlTargetDeathRF;
00501 
00502     class FinderEventObserver01XrlTargetDeathCB {
00503         FinderEventObserver01XrlTargetDeathRF cb;
00504 
00505     public:
00506         operator const FinderEventObserver01XrlTargetDeathRF& () const { return cb; }
00507         const FinderEventObserver01XrlTargetDeathRF& operator ->() const { return cb; }
00508         FinderEventObserver01XrlTargetDeathCB(const FinderEventObserver01XrlTargetDeathRF& cb)
00509           : cb(cb) { }
00510 
00511         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
00512 
00513         void respond() const {
00514             cb->dispatch(XrlCmdError::OKAY());
00515         }
00516     };
00517 
00518     struct FinderEventObserver01XrlTargetDeathRsp :
00519       public FinderEventObserver01XrlTargetDeathCB {
00520         FinderEventObserver01XrlTargetDeathRsp(const FinderEventObserver01XrlTargetDeathRF& cb)
00521           : FinderEventObserver01XrlTargetDeathCB(cb) { }
00522 
00523     };
00524 
00525     virtual void async_finder_event_observer_0_1_xrl_target_death
00526        (
00527     const string&   target_class,
00528     const string&   target_instance,
00529     FinderEventObserver01XrlTargetDeathCB);
00530 #endif
00531 
00560     virtual XrlCmdError raw_packet4_client_0_1_recv(
00561     // Input values,
00562     const string&   if_name,
00563     const string&   vif_name,
00564     const IPv4& src_address,
00565     const IPv4& dst_address,
00566     const uint32_t& ip_protocol,
00567     const int32_t&  ip_ttl,
00568     const int32_t&  ip_tos,
00569     const bool& ip_router_alert,
00570     const bool& ip_internet_control,
00571     const vector<uint8_t>&  payload) = 0;
00572 #ifdef XORP_ENABLE_ASYNC_SERVER
00573     typedef
00574     XorpCallback1<void, const XrlCmdError &>::RefPtr
00575     RawPacket4Client01RecvRF;
00576 
00577     class RawPacket4Client01RecvCB {
00578         RawPacket4Client01RecvRF cb;
00579 
00580     public:
00581         operator const RawPacket4Client01RecvRF& () const { return cb; }
00582         const RawPacket4Client01RecvRF& operator ->() const { return cb; }
00583         RawPacket4Client01RecvCB(const RawPacket4Client01RecvRF& cb)
00584           : cb(cb) { }
00585 
00586         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
00587 
00588         void respond() const {
00589             cb->dispatch(XrlCmdError::OKAY());
00590         }
00591     };
00592 
00593     struct RawPacket4Client01RecvRsp :
00594       public RawPacket4Client01RecvCB {
00595         RawPacket4Client01RecvRsp(const RawPacket4Client01RecvRF& cb)
00596           : RawPacket4Client01RecvCB(cb) { }
00597 
00598     };
00599 
00600     virtual void async_raw_packet4_client_0_1_recv
00601        (
00602     const string&   if_name,
00603     const string&   vif_name,
00604     const IPv4& src_address,
00605     const IPv4& dst_address,
00606     const uint32_t& ip_protocol,
00607     const int32_t&  ip_ttl,
00608     const int32_t&  ip_tos,
00609     const bool& ip_router_alert,
00610     const bool& ip_internet_control,
00611     const vector<uint8_t>&  payload,
00612     RawPacket4Client01RecvCB);
00613 #endif
00614 
00650     virtual XrlCmdError raw_packet6_client_0_1_recv(
00651     // Input values,
00652     const string&   if_name,
00653     const string&   vif_name,
00654     const IPv6& src_address,
00655     const IPv6& dst_address,
00656     const uint32_t& ip_protocol,
00657     const int32_t&  ip_ttl,
00658     const int32_t&  ip_tos,
00659     const bool& ip_router_alert,
00660     const bool& ip_internet_control,
00661     const XrlAtomList&  ext_headers_type,
00662     const XrlAtomList&  ext_headers_payload,
00663     const vector<uint8_t>&  payload) = 0;
00664 #ifdef XORP_ENABLE_ASYNC_SERVER
00665     typedef
00666     XorpCallback1<void, const XrlCmdError &>::RefPtr
00667     RawPacket6Client01RecvRF;
00668 
00669     class RawPacket6Client01RecvCB {
00670         RawPacket6Client01RecvRF cb;
00671 
00672     public:
00673         operator const RawPacket6Client01RecvRF& () const { return cb; }
00674         const RawPacket6Client01RecvRF& operator ->() const { return cb; }
00675         RawPacket6Client01RecvCB(const RawPacket6Client01RecvRF& cb)
00676           : cb(cb) { }
00677 
00678         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
00679 
00680         void respond() const {
00681             cb->dispatch(XrlCmdError::OKAY());
00682         }
00683     };
00684 
00685     struct RawPacket6Client01RecvRsp :
00686       public RawPacket6Client01RecvCB {
00687         RawPacket6Client01RecvRsp(const RawPacket6Client01RecvRF& cb)
00688           : RawPacket6Client01RecvCB(cb) { }
00689 
00690     };
00691 
00692     virtual void async_raw_packet6_client_0_1_recv
00693        (
00694     const string&   if_name,
00695     const string&   vif_name,
00696     const IPv6& src_address,
00697     const IPv6& dst_address,
00698     const uint32_t& ip_protocol,
00699     const int32_t&  ip_ttl,
00700     const int32_t&  ip_tos,
00701     const bool& ip_router_alert,
00702     const bool& ip_internet_control,
00703     const XrlAtomList&  ext_headers_type,
00704     const XrlAtomList&  ext_headers_payload,
00705     const vector<uint8_t>&  payload,
00706     RawPacket6Client01RecvCB);
00707 #endif
00708 
00716     virtual XrlCmdError redist_transaction6_0_1_start_transaction(
00717     // Output values,
00718     uint32_t&   tid) = 0;
00719 #ifdef XORP_ENABLE_ASYNC_SERVER
00720     typedef
00721     XorpCallback2<void, const XrlCmdError &,
00722     const uint32_t*>::RefPtr
00723     RedistTransaction601StartTransactionRF;
00724 
00725     class RedistTransaction601StartTransactionCB {
00726         RedistTransaction601StartTransactionRF cb;
00727 
00728     public:
00729         operator const RedistTransaction601StartTransactionRF& () const { return cb; }
00730         const RedistTransaction601StartTransactionRF& operator ->() const { return cb; }
00731         RedistTransaction601StartTransactionCB(const RedistTransaction601StartTransactionRF& cb)
00732           : cb(cb) { }
00733 
00734         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
00735 
00736         void respond(const uint32_t& arg_tid) const {
00737             cb->dispatch(XrlCmdError::OKAY(),
00738                          &arg_tid);
00739         }
00740     };
00741 
00742     struct RedistTransaction601StartTransactionRsp :
00743       public RedistTransaction601StartTransactionCB {
00744         struct args_str {
00745             uint32_t tid;
00746         };
00747 
00748     private:
00749         args_str args;
00750 
00751     public:
00752         RedistTransaction601StartTransactionRsp(const RedistTransaction601StartTransactionRF& cb)
00753           : RedistTransaction601StartTransactionCB(cb) { }
00754 
00755         void respond() const {
00756             RedistTransaction601StartTransactionCB::
00757             respond(args.tid);
00758         }
00759 
00760         args_str* operator ->() {
00761             return &args;
00762         }
00763     };
00764 
00765     virtual void async_redist_transaction6_0_1_start_transaction
00766        (
00767     RedistTransaction601StartTransactionCB);
00768 #endif
00769 
00777     virtual XrlCmdError redist_transaction6_0_1_commit_transaction(
00778     // Input values,
00779     const uint32_t& tid) = 0;
00780 #ifdef XORP_ENABLE_ASYNC_SERVER
00781     typedef
00782     XorpCallback1<void, const XrlCmdError &>::RefPtr
00783     RedistTransaction601CommitTransactionRF;
00784 
00785     class RedistTransaction601CommitTransactionCB {
00786         RedistTransaction601CommitTransactionRF cb;
00787 
00788     public:
00789         operator const RedistTransaction601CommitTransactionRF& () const { return cb; }
00790         const RedistTransaction601CommitTransactionRF& operator ->() const { return cb; }
00791         RedistTransaction601CommitTransactionCB(const RedistTransaction601CommitTransactionRF& cb)
00792           : cb(cb) { }
00793 
00794         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
00795 
00796         void respond() const {
00797             cb->dispatch(XrlCmdError::OKAY());
00798         }
00799     };
00800 
00801     struct RedistTransaction601CommitTransactionRsp :
00802       public RedistTransaction601CommitTransactionCB {
00803         RedistTransaction601CommitTransactionRsp(const RedistTransaction601CommitTransactionRF& cb)
00804           : RedistTransaction601CommitTransactionCB(cb) { }
00805 
00806     };
00807 
00808     virtual void async_redist_transaction6_0_1_commit_transaction
00809        (
00810     const uint32_t& tid,
00811     RedistTransaction601CommitTransactionCB);
00812 #endif
00813 
00821     virtual XrlCmdError redist_transaction6_0_1_abort_transaction(
00822     // Input values,
00823     const uint32_t& tid) = 0;
00824 #ifdef XORP_ENABLE_ASYNC_SERVER
00825     typedef
00826     XorpCallback1<void, const XrlCmdError &>::RefPtr
00827     RedistTransaction601AbortTransactionRF;
00828 
00829     class RedistTransaction601AbortTransactionCB {
00830         RedistTransaction601AbortTransactionRF cb;
00831 
00832     public:
00833         operator const RedistTransaction601AbortTransactionRF& () const { return cb; }
00834         const RedistTransaction601AbortTransactionRF& operator ->() const { return cb; }
00835         RedistTransaction601AbortTransactionCB(const RedistTransaction601AbortTransactionRF& cb)
00836           : cb(cb) { }
00837 
00838         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
00839 
00840         void respond() const {
00841             cb->dispatch(XrlCmdError::OKAY());
00842         }
00843     };
00844 
00845     struct RedistTransaction601AbortTransactionRsp :
00846       public RedistTransaction601AbortTransactionCB {
00847         RedistTransaction601AbortTransactionRsp(const RedistTransaction601AbortTransactionRF& cb)
00848           : RedistTransaction601AbortTransactionCB(cb) { }
00849 
00850     };
00851 
00852     virtual void async_redist_transaction6_0_1_abort_transaction
00853        (
00854     const uint32_t& tid,
00855     RedistTransaction601AbortTransactionCB);
00856 #endif
00857 
00884     virtual XrlCmdError redist_transaction6_0_1_add_route(
00885     // Input values,
00886     const uint32_t& tid,
00887     const IPv6Net&  dst,
00888     const IPv6& nexthop,
00889     const string&   ifname,
00890     const string&   vifname,
00891     const uint32_t& metric,
00892     const uint32_t& admin_distance,
00893     const string&   cookie,
00894     const string&   protocol_origin) = 0;
00895 #ifdef XORP_ENABLE_ASYNC_SERVER
00896     typedef
00897     XorpCallback1<void, const XrlCmdError &>::RefPtr
00898     RedistTransaction601AddRouteRF;
00899 
00900     class RedistTransaction601AddRouteCB {
00901         RedistTransaction601AddRouteRF cb;
00902 
00903     public:
00904         operator const RedistTransaction601AddRouteRF& () const { return cb; }
00905         const RedistTransaction601AddRouteRF& operator ->() const { return cb; }
00906         RedistTransaction601AddRouteCB(const RedistTransaction601AddRouteRF& cb)
00907           : cb(cb) { }
00908 
00909         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
00910 
00911         void respond() const {
00912             cb->dispatch(XrlCmdError::OKAY());
00913         }
00914     };
00915 
00916     struct RedistTransaction601AddRouteRsp :
00917       public RedistTransaction601AddRouteCB {
00918         RedistTransaction601AddRouteRsp(const RedistTransaction601AddRouteRF& cb)
00919           : RedistTransaction601AddRouteCB(cb) { }
00920 
00921     };
00922 
00923     virtual void async_redist_transaction6_0_1_add_route
00924        (
00925     const uint32_t& tid,
00926     const IPv6Net&  dst,
00927     const IPv6& nexthop,
00928     const string&   ifname,
00929     const string&   vifname,
00930     const uint32_t& metric,
00931     const uint32_t& admin_distance,
00932     const string&   cookie,
00933     const string&   protocol_origin,
00934     RedistTransaction601AddRouteCB);
00935 #endif
00936 
00937     virtual XrlCmdError redist_transaction6_0_1_delete_route(
00938     // Input values,
00939     const uint32_t& tid,
00940     const IPv6Net&  dst,
00941     const IPv6& nexthop,
00942     const string&   ifname,
00943     const string&   vifname,
00944     const uint32_t& metric,
00945     const uint32_t& admin_distance,
00946     const string&   cookie,
00947     const string&   protocol_origin) = 0;
00948 #ifdef XORP_ENABLE_ASYNC_SERVER
00949     typedef
00950     XorpCallback1<void, const XrlCmdError &>::RefPtr
00951     RedistTransaction601DeleteRouteRF;
00952 
00953     class RedistTransaction601DeleteRouteCB {
00954         RedistTransaction601DeleteRouteRF cb;
00955 
00956     public:
00957         operator const RedistTransaction601DeleteRouteRF& () const { return cb; }
00958         const RedistTransaction601DeleteRouteRF& operator ->() const { return cb; }
00959         RedistTransaction601DeleteRouteCB(const RedistTransaction601DeleteRouteRF& cb)
00960           : cb(cb) { }
00961 
00962         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
00963 
00964         void respond() const {
00965             cb->dispatch(XrlCmdError::OKAY());
00966         }
00967     };
00968 
00969     struct RedistTransaction601DeleteRouteRsp :
00970       public RedistTransaction601DeleteRouteCB {
00971         RedistTransaction601DeleteRouteRsp(const RedistTransaction601DeleteRouteRF& cb)
00972           : RedistTransaction601DeleteRouteCB(cb) { }
00973 
00974     };
00975 
00976     virtual void async_redist_transaction6_0_1_delete_route
00977        (
00978     const uint32_t& tid,
00979     const IPv6Net&  dst,
00980     const IPv6& nexthop,
00981     const string&   ifname,
00982     const string&   vifname,
00983     const uint32_t& metric,
00984     const uint32_t& admin_distance,
00985     const string&   cookie,
00986     const string&   protocol_origin,
00987     RedistTransaction601DeleteRouteCB);
00988 #endif
00989 
01000     virtual XrlCmdError redist_transaction6_0_1_delete_all_routes(
01001     // Input values,
01002     const uint32_t& tid,
01003     const string&   cookie) = 0;
01004 #ifdef XORP_ENABLE_ASYNC_SERVER
01005     typedef
01006     XorpCallback1<void, const XrlCmdError &>::RefPtr
01007     RedistTransaction601DeleteAllRoutesRF;
01008 
01009     class RedistTransaction601DeleteAllRoutesCB {
01010         RedistTransaction601DeleteAllRoutesRF cb;
01011 
01012     public:
01013         operator const RedistTransaction601DeleteAllRoutesRF& () const { return cb; }
01014         const RedistTransaction601DeleteAllRoutesRF& operator ->() const { return cb; }
01015         RedistTransaction601DeleteAllRoutesCB(const RedistTransaction601DeleteAllRoutesRF& cb)
01016           : cb(cb) { }
01017 
01018         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
01019 
01020         void respond() const {
01021             cb->dispatch(XrlCmdError::OKAY());
01022         }
01023     };
01024 
01025     struct RedistTransaction601DeleteAllRoutesRsp :
01026       public RedistTransaction601DeleteAllRoutesCB {
01027         RedistTransaction601DeleteAllRoutesRsp(const RedistTransaction601DeleteAllRoutesRF& cb)
01028           : RedistTransaction601DeleteAllRoutesCB(cb) { }
01029 
01030     };
01031 
01032     virtual void async_redist_transaction6_0_1_delete_all_routes
01033        (
01034     const uint32_t& tid,
01035     const string&   cookie,
01036     RedistTransaction601DeleteAllRoutesCB);
01037 #endif
01038 
01060     virtual XrlCmdError mfea_client_0_1_recv_kernel_signal_message4(
01061     // Input values,
01062     const string&   xrl_sender_name,
01063     const uint32_t& message_type,
01064     const string&   vif_name,
01065     const uint32_t& vif_index,
01066     const IPv4& source_address,
01067     const IPv4& dest_address,
01068     const vector<uint8_t>&  protocol_message) = 0;
01069 #ifdef XORP_ENABLE_ASYNC_SERVER
01070     typedef
01071     XorpCallback1<void, const XrlCmdError &>::RefPtr
01072     MfeaClient01RecvKernelSignalMessage4RF;
01073 
01074     class MfeaClient01RecvKernelSignalMessage4CB {
01075         MfeaClient01RecvKernelSignalMessage4RF cb;
01076 
01077     public:
01078         operator const MfeaClient01RecvKernelSignalMessage4RF& () const { return cb; }
01079         const MfeaClient01RecvKernelSignalMessage4RF& operator ->() const { return cb; }
01080         MfeaClient01RecvKernelSignalMessage4CB(const MfeaClient01RecvKernelSignalMessage4RF& cb)
01081           : cb(cb) { }
01082 
01083         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
01084 
01085         void respond() const {
01086             cb->dispatch(XrlCmdError::OKAY());
01087         }
01088     };
01089 
01090     struct MfeaClient01RecvKernelSignalMessage4Rsp :
01091       public MfeaClient01RecvKernelSignalMessage4CB {
01092         MfeaClient01RecvKernelSignalMessage4Rsp(const MfeaClient01RecvKernelSignalMessage4RF& cb)
01093           : MfeaClient01RecvKernelSignalMessage4CB(cb) { }
01094 
01095     };
01096 
01097     virtual void async_mfea_client_0_1_recv_kernel_signal_message4
01098        (
01099     const string&   xrl_sender_name,
01100     const uint32_t& message_type,
01101     const string&   vif_name,
01102     const uint32_t& vif_index,
01103     const IPv4& source_address,
01104     const IPv4& dest_address,
01105     const vector<uint8_t>&  protocol_message,
01106     MfeaClient01RecvKernelSignalMessage4CB);
01107 #endif
01108 
01152     virtual XrlCmdError mfea_client_0_1_recv_dataflow_signal4(
01153     // Input values,
01154     const string&   xrl_sender_name,
01155     const IPv4& source_address,
01156     const IPv4& group_address,
01157     const uint32_t& threshold_interval_sec,
01158     const uint32_t& threshold_interval_usec,
01159     const uint32_t& measured_interval_sec,
01160     const uint32_t& measured_interval_usec,
01161     const uint32_t& threshold_packets,
01162     const uint32_t& threshold_bytes,
01163     const uint32_t& measured_packets,
01164     const uint32_t& measured_bytes,
01165     const bool& is_threshold_in_packets,
01166     const bool& is_threshold_in_bytes,
01167     const bool& is_geq_upcall,
01168     const bool& is_leq_upcall) = 0;
01169 #ifdef XORP_ENABLE_ASYNC_SERVER
01170     typedef
01171     XorpCallback1<void, const XrlCmdError &>::RefPtr
01172     MfeaClient01RecvDataflowSignal4RF;
01173 
01174     class MfeaClient01RecvDataflowSignal4CB {
01175         MfeaClient01RecvDataflowSignal4RF cb;
01176 
01177     public:
01178         operator const MfeaClient01RecvDataflowSignal4RF& () const { return cb; }
01179         const MfeaClient01RecvDataflowSignal4RF& operator ->() const { return cb; }
01180         MfeaClient01RecvDataflowSignal4CB(const MfeaClient01RecvDataflowSignal4RF& cb)
01181           : cb(cb) { }
01182 
01183         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
01184 
01185         void respond() const {
01186             cb->dispatch(XrlCmdError::OKAY());
01187         }
01188     };
01189 
01190     struct MfeaClient01RecvDataflowSignal4Rsp :
01191       public MfeaClient01RecvDataflowSignal4CB {
01192         MfeaClient01RecvDataflowSignal4Rsp(const MfeaClient01RecvDataflowSignal4RF& cb)
01193           : MfeaClient01RecvDataflowSignal4CB(cb) { }
01194 
01195     };
01196 
01197     virtual void async_mfea_client_0_1_recv_dataflow_signal4
01198        (
01199     const string&   xrl_sender_name,
01200     const IPv4& source_address,
01201     const IPv4& group_address,
01202     const uint32_t& threshold_interval_sec,
01203     const uint32_t& threshold_interval_usec,
01204     const uint32_t& measured_interval_sec,
01205     const uint32_t& measured_interval_usec,
01206     const uint32_t& threshold_packets,
01207     const uint32_t& threshold_bytes,
01208     const uint32_t& measured_packets,
01209     const uint32_t& measured_bytes,
01210     const bool& is_threshold_in_packets,
01211     const bool& is_threshold_in_bytes,
01212     const bool& is_geq_upcall,
01213     const bool& is_leq_upcall,
01214     MfeaClient01RecvDataflowSignal4CB);
01215 #endif
01216 
01217     virtual XrlCmdError mfea_client_0_1_recv_kernel_signal_message6(
01218     // Input values,
01219     const string&   xrl_sender_name,
01220     const uint32_t& message_type,
01221     const string&   vif_name,
01222     const uint32_t& vif_index,
01223     const IPv6& source_address,
01224     const IPv6& dest_address,
01225     const vector<uint8_t>&  protocol_message) = 0;
01226 #ifdef XORP_ENABLE_ASYNC_SERVER
01227     typedef
01228     XorpCallback1<void, const XrlCmdError &>::RefPtr
01229     MfeaClient01RecvKernelSignalMessage6RF;
01230 
01231     class MfeaClient01RecvKernelSignalMessage6CB {
01232         MfeaClient01RecvKernelSignalMessage6RF cb;
01233 
01234     public:
01235         operator const MfeaClient01RecvKernelSignalMessage6RF& () const { return cb; }
01236         const MfeaClient01RecvKernelSignalMessage6RF& operator ->() const { return cb; }
01237         MfeaClient01RecvKernelSignalMessage6CB(const MfeaClient01RecvKernelSignalMessage6RF& cb)
01238           : cb(cb) { }
01239 
01240         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
01241 
01242         void respond() const {
01243             cb->dispatch(XrlCmdError::OKAY());
01244         }
01245     };
01246 
01247     struct MfeaClient01RecvKernelSignalMessage6Rsp :
01248       public MfeaClient01RecvKernelSignalMessage6CB {
01249         MfeaClient01RecvKernelSignalMessage6Rsp(const MfeaClient01RecvKernelSignalMessage6RF& cb)
01250           : MfeaClient01RecvKernelSignalMessage6CB(cb) { }
01251 
01252     };
01253 
01254     virtual void async_mfea_client_0_1_recv_kernel_signal_message6
01255        (
01256     const string&   xrl_sender_name,
01257     const uint32_t& message_type,
01258     const string&   vif_name,
01259     const uint32_t& vif_index,
01260     const IPv6& source_address,
01261     const IPv6& dest_address,
01262     const vector<uint8_t>&  protocol_message,
01263     MfeaClient01RecvKernelSignalMessage6CB);
01264 #endif
01265 
01266     virtual XrlCmdError mfea_client_0_1_recv_dataflow_signal6(
01267     // Input values,
01268     const string&   xrl_sender_name,
01269     const IPv6& source_address,
01270     const IPv6& group_address,
01271     const uint32_t& threshold_interval_sec,
01272     const uint32_t& threshold_interval_usec,
01273     const uint32_t& measured_interval_sec,
01274     const uint32_t& measured_interval_usec,
01275     const uint32_t& threshold_packets,
01276     const uint32_t& threshold_bytes,
01277     const uint32_t& measured_packets,
01278     const uint32_t& measured_bytes,
01279     const bool& is_threshold_in_packets,
01280     const bool& is_threshold_in_bytes,
01281     const bool& is_geq_upcall,
01282     const bool& is_leq_upcall) = 0;
01283 #ifdef XORP_ENABLE_ASYNC_SERVER
01284     typedef
01285     XorpCallback1<void, const XrlCmdError &>::RefPtr
01286     MfeaClient01RecvDataflowSignal6RF;
01287 
01288     class MfeaClient01RecvDataflowSignal6CB {
01289         MfeaClient01RecvDataflowSignal6RF cb;
01290 
01291     public:
01292         operator const MfeaClient01RecvDataflowSignal6RF& () const { return cb; }
01293         const MfeaClient01RecvDataflowSignal6RF& operator ->() const { return cb; }
01294         MfeaClient01RecvDataflowSignal6CB(const MfeaClient01RecvDataflowSignal6RF& cb)
01295           : cb(cb) { }
01296 
01297         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
01298 
01299         void respond() const {
01300             cb->dispatch(XrlCmdError::OKAY());
01301         }
01302     };
01303 
01304     struct MfeaClient01RecvDataflowSignal6Rsp :
01305       public MfeaClient01RecvDataflowSignal6CB {
01306         MfeaClient01RecvDataflowSignal6Rsp(const MfeaClient01RecvDataflowSignal6RF& cb)
01307           : MfeaClient01RecvDataflowSignal6CB(cb) { }
01308 
01309     };
01310 
01311     virtual void async_mfea_client_0_1_recv_dataflow_signal6
01312        (
01313     const string&   xrl_sender_name,
01314     const IPv6& source_address,
01315     const IPv6& group_address,
01316     const uint32_t& threshold_interval_sec,
01317     const uint32_t& threshold_interval_usec,
01318     const uint32_t& measured_interval_sec,
01319     const uint32_t& measured_interval_usec,
01320     const uint32_t& threshold_packets,
01321     const uint32_t& threshold_bytes,
01322     const uint32_t& measured_packets,
01323     const uint32_t& measured_bytes,
01324     const bool& is_threshold_in_packets,
01325     const bool& is_threshold_in_bytes,
01326     const bool& is_geq_upcall,
01327     const bool& is_leq_upcall,
01328     MfeaClient01RecvDataflowSignal6CB);
01329 #endif
01330 
01338     virtual XrlCmdError redist_transaction4_0_1_start_transaction(
01339     // Output values,
01340     uint32_t&   tid) = 0;
01341 #ifdef XORP_ENABLE_ASYNC_SERVER
01342     typedef
01343     XorpCallback2<void, const XrlCmdError &,
01344     const uint32_t*>::RefPtr
01345     RedistTransaction401StartTransactionRF;
01346 
01347     class RedistTransaction401StartTransactionCB {
01348         RedistTransaction401StartTransactionRF cb;
01349 
01350     public:
01351         operator const RedistTransaction401StartTransactionRF& () const { return cb; }
01352         const RedistTransaction401StartTransactionRF& operator ->() const { return cb; }
01353         RedistTransaction401StartTransactionCB(const RedistTransaction401StartTransactionRF& cb)
01354           : cb(cb) { }
01355 
01356         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
01357 
01358         void respond(const uint32_t& arg_tid) const {
01359             cb->dispatch(XrlCmdError::OKAY(),
01360                          &arg_tid);
01361         }
01362     };
01363 
01364     struct RedistTransaction401StartTransactionRsp :
01365       public RedistTransaction401StartTransactionCB {
01366         struct args_str {
01367             uint32_t tid;
01368         };
01369 
01370     private:
01371         args_str args;
01372 
01373     public:
01374         RedistTransaction401StartTransactionRsp(const RedistTransaction401StartTransactionRF& cb)
01375           : RedistTransaction401StartTransactionCB(cb) { }
01376 
01377         void respond() const {
01378             RedistTransaction401StartTransactionCB::
01379             respond(args.tid);
01380         }
01381 
01382         args_str* operator ->() {
01383             return &args;
01384         }
01385     };
01386 
01387     virtual void async_redist_transaction4_0_1_start_transaction
01388        (
01389     RedistTransaction401StartTransactionCB);
01390 #endif
01391 
01399     virtual XrlCmdError redist_transaction4_0_1_commit_transaction(
01400     // Input values,
01401     const uint32_t& tid) = 0;
01402 #ifdef XORP_ENABLE_ASYNC_SERVER
01403     typedef
01404     XorpCallback1<void, const XrlCmdError &>::RefPtr
01405     RedistTransaction401CommitTransactionRF;
01406 
01407     class RedistTransaction401CommitTransactionCB {
01408         RedistTransaction401CommitTransactionRF cb;
01409 
01410     public:
01411         operator const RedistTransaction401CommitTransactionRF& () const { return cb; }
01412         const RedistTransaction401CommitTransactionRF& operator ->() const { return cb; }
01413         RedistTransaction401CommitTransactionCB(const RedistTransaction401CommitTransactionRF& cb)
01414           : cb(cb) { }
01415 
01416         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
01417 
01418         void respond() const {
01419             cb->dispatch(XrlCmdError::OKAY());
01420         }
01421     };
01422 
01423     struct RedistTransaction401CommitTransactionRsp :
01424       public RedistTransaction401CommitTransactionCB {
01425         RedistTransaction401CommitTransactionRsp(const RedistTransaction401CommitTransactionRF& cb)
01426           : RedistTransaction401CommitTransactionCB(cb) { }
01427 
01428     };
01429 
01430     virtual void async_redist_transaction4_0_1_commit_transaction
01431        (
01432     const uint32_t& tid,
01433     RedistTransaction401CommitTransactionCB);
01434 #endif
01435 
01443     virtual XrlCmdError redist_transaction4_0_1_abort_transaction(
01444     // Input values,
01445     const uint32_t& tid) = 0;
01446 #ifdef XORP_ENABLE_ASYNC_SERVER
01447     typedef
01448     XorpCallback1<void, const XrlCmdError &>::RefPtr
01449     RedistTransaction401AbortTransactionRF;
01450 
01451     class RedistTransaction401AbortTransactionCB {
01452         RedistTransaction401AbortTransactionRF cb;
01453 
01454     public:
01455         operator const RedistTransaction401AbortTransactionRF& () const { return cb; }
01456         const RedistTransaction401AbortTransactionRF& operator ->() const { return cb; }
01457         RedistTransaction401AbortTransactionCB(const RedistTransaction401AbortTransactionRF& cb)
01458           : cb(cb) { }
01459 
01460         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
01461 
01462         void respond() const {
01463             cb->dispatch(XrlCmdError::OKAY());
01464         }
01465     };
01466 
01467     struct RedistTransaction401AbortTransactionRsp :
01468       public RedistTransaction401AbortTransactionCB {
01469         RedistTransaction401AbortTransactionRsp(const RedistTransaction401AbortTransactionRF& cb)
01470           : RedistTransaction401AbortTransactionCB(cb) { }
01471 
01472     };
01473 
01474     virtual void async_redist_transaction4_0_1_abort_transaction
01475        (
01476     const uint32_t& tid,
01477     RedistTransaction401AbortTransactionCB);
01478 #endif
01479 
01506     virtual XrlCmdError redist_transaction4_0_1_add_route(
01507     // Input values,
01508     const uint32_t& tid,
01509     const IPv4Net&  dst,
01510     const IPv4& nexthop,
01511     const string&   ifname,
01512     const string&   vifname,
01513     const uint32_t& metric,
01514     const uint32_t& admin_distance,
01515     const string&   cookie,
01516     const string&   protocol_origin) = 0;
01517 #ifdef XORP_ENABLE_ASYNC_SERVER
01518     typedef
01519     XorpCallback1<void, const XrlCmdError &>::RefPtr
01520     RedistTransaction401AddRouteRF;
01521 
01522     class RedistTransaction401AddRouteCB {
01523         RedistTransaction401AddRouteRF cb;
01524 
01525     public:
01526         operator const RedistTransaction401AddRouteRF& () const { return cb; }
01527         const RedistTransaction401AddRouteRF& operator ->() const { return cb; }
01528         RedistTransaction401AddRouteCB(const RedistTransaction401AddRouteRF& cb)
01529           : cb(cb) { }
01530 
01531         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
01532 
01533         void respond() const {
01534             cb->dispatch(XrlCmdError::OKAY());
01535         }
01536     };
01537 
01538     struct RedistTransaction401AddRouteRsp :
01539       public RedistTransaction401AddRouteCB {
01540         RedistTransaction401AddRouteRsp(const RedistTransaction401AddRouteRF& cb)
01541           : RedistTransaction401AddRouteCB(cb) { }
01542 
01543     };
01544 
01545     virtual void async_redist_transaction4_0_1_add_route
01546        (
01547     const uint32_t& tid,
01548     const IPv4Net&  dst,
01549     const IPv4& nexthop,
01550     const string&   ifname,
01551     const string&   vifname,
01552     const uint32_t& metric,
01553     const uint32_t& admin_distance,
01554     const string&   cookie,
01555     const string&   protocol_origin,
01556     RedistTransaction401AddRouteCB);
01557 #endif
01558 
01559     virtual XrlCmdError redist_transaction4_0_1_delete_route(
01560     // Input values,
01561     const uint32_t& tid,
01562     const IPv4Net&  dst,
01563     const IPv4& nexthop,
01564     const string&   ifname,
01565     const string&   vifname,
01566     const uint32_t& metric,
01567     const uint32_t& admin_distance,
01568     const string&   cookie,
01569     const string&   protocol_origin) = 0;
01570 #ifdef XORP_ENABLE_ASYNC_SERVER
01571     typedef
01572     XorpCallback1<void, const XrlCmdError &>::RefPtr
01573     RedistTransaction401DeleteRouteRF;
01574 
01575     class RedistTransaction401DeleteRouteCB {
01576         RedistTransaction401DeleteRouteRF cb;
01577 
01578     public:
01579         operator const RedistTransaction401DeleteRouteRF& () const { return cb; }
01580         const RedistTransaction401DeleteRouteRF& operator ->() const { return cb; }
01581         RedistTransaction401DeleteRouteCB(const RedistTransaction401DeleteRouteRF& cb)
01582           : cb(cb) { }
01583 
01584         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
01585 
01586         void respond() const {
01587             cb->dispatch(XrlCmdError::OKAY());
01588         }
01589     };
01590 
01591     struct RedistTransaction401DeleteRouteRsp :
01592       public RedistTransaction401DeleteRouteCB {
01593         RedistTransaction401DeleteRouteRsp(const RedistTransaction401DeleteRouteRF& cb)
01594           : RedistTransaction401DeleteRouteCB(cb) { }
01595 
01596     };
01597 
01598     virtual void async_redist_transaction4_0_1_delete_route
01599        (
01600     const uint32_t& tid,
01601     const IPv4Net&  dst,
01602     const IPv4& nexthop,
01603     const string&   ifname,
01604     const string&   vifname,
01605     const uint32_t& metric,
01606     const uint32_t& admin_distance,
01607     const string&   cookie,
01608     const string&   protocol_origin,
01609     RedistTransaction401DeleteRouteCB);
01610 #endif
01611 
01622     virtual XrlCmdError redist_transaction4_0_1_delete_all_routes(
01623     // Input values,
01624     const uint32_t& tid,
01625     const string&   cookie) = 0;
01626 #ifdef XORP_ENABLE_ASYNC_SERVER
01627     typedef
01628     XorpCallback1<void, const XrlCmdError &>::RefPtr
01629     RedistTransaction401DeleteAllRoutesRF;
01630 
01631     class RedistTransaction401DeleteAllRoutesCB {
01632         RedistTransaction401DeleteAllRoutesRF cb;
01633 
01634     public:
01635         operator const RedistTransaction401DeleteAllRoutesRF& () const { return cb; }
01636         const RedistTransaction401DeleteAllRoutesRF& operator ->() const { return cb; }
01637         RedistTransaction401DeleteAllRoutesCB(const RedistTransaction401DeleteAllRoutesRF& cb)
01638           : cb(cb) { }
01639 
01640         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
01641 
01642         void respond() const {
01643             cb->dispatch(XrlCmdError::OKAY());
01644         }
01645     };
01646 
01647     struct RedistTransaction401DeleteAllRoutesRsp :
01648       public RedistTransaction401DeleteAllRoutesCB {
01649         RedistTransaction401DeleteAllRoutesRsp(const RedistTransaction401DeleteAllRoutesRF& cb)
01650           : RedistTransaction401DeleteAllRoutesCB(cb) { }
01651 
01652     };
01653 
01654     virtual void async_redist_transaction4_0_1_delete_all_routes
01655        (
01656     const uint32_t& tid,
01657     const string&   cookie,
01658     RedistTransaction401DeleteAllRoutesCB);
01659 #endif
01660 
01676     virtual XrlCmdError mld6igmp_client_0_1_add_membership4(
01677     // Input values,
01678     const string&   xrl_sender_name,
01679     const string&   vif_name,
01680     const uint32_t& vif_index,
01681     const IPv4& source,
01682     const IPv4& group) = 0;
01683 #ifdef XORP_ENABLE_ASYNC_SERVER
01684     typedef
01685     XorpCallback1<void, const XrlCmdError &>::RefPtr
01686     Mld6IgmpClient01AddMembership4RF;
01687 
01688     class Mld6IgmpClient01AddMembership4CB {
01689         Mld6IgmpClient01AddMembership4RF cb;
01690 
01691     public:
01692         operator const Mld6IgmpClient01AddMembership4RF& () const { return cb; }
01693         const Mld6IgmpClient01AddMembership4RF& operator ->() const { return cb; }
01694         Mld6IgmpClient01AddMembership4CB(const Mld6IgmpClient01AddMembership4RF& cb)
01695           : cb(cb) { }
01696 
01697         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
01698 
01699         void respond() const {
01700             cb->dispatch(XrlCmdError::OKAY());
01701         }
01702     };
01703 
01704     struct Mld6IgmpClient01AddMembership4Rsp :
01705       public Mld6IgmpClient01AddMembership4CB {
01706         Mld6IgmpClient01AddMembership4Rsp(const Mld6IgmpClient01AddMembership4RF& cb)
01707           : Mld6IgmpClient01AddMembership4CB(cb) { }
01708 
01709     };
01710 
01711     virtual void async_mld6igmp_client_0_1_add_membership4
01712        (
01713     const string&   xrl_sender_name,
01714     const string&   vif_name,
01715     const uint32_t& vif_index,
01716     const IPv4& source,
01717     const IPv4& group,
01718     Mld6IgmpClient01AddMembership4CB);
01719 #endif
01720 
01721     virtual XrlCmdError mld6igmp_client_0_1_add_membership6(
01722     // Input values,
01723     const string&   xrl_sender_name,
01724     const string&   vif_name,
01725     const uint32_t& vif_index,
01726     const IPv6& source,
01727     const IPv6& group) = 0;
01728 #ifdef XORP_ENABLE_ASYNC_SERVER
01729     typedef
01730     XorpCallback1<void, const XrlCmdError &>::RefPtr
01731     Mld6IgmpClient01AddMembership6RF;
01732 
01733     class Mld6IgmpClient01AddMembership6CB {
01734         Mld6IgmpClient01AddMembership6RF cb;
01735 
01736     public:
01737         operator const Mld6IgmpClient01AddMembership6RF& () const { return cb; }
01738         const Mld6IgmpClient01AddMembership6RF& operator ->() const { return cb; }
01739         Mld6IgmpClient01AddMembership6CB(const Mld6IgmpClient01AddMembership6RF& cb)
01740           : cb(cb) { }
01741 
01742         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
01743 
01744         void respond() const {
01745             cb->dispatch(XrlCmdError::OKAY());
01746         }
01747     };
01748 
01749     struct Mld6IgmpClient01AddMembership6Rsp :
01750       public Mld6IgmpClient01AddMembership6CB {
01751         Mld6IgmpClient01AddMembership6Rsp(const Mld6IgmpClient01AddMembership6RF& cb)
01752           : Mld6IgmpClient01AddMembership6CB(cb) { }
01753 
01754     };
01755 
01756     virtual void async_mld6igmp_client_0_1_add_membership6
01757        (
01758     const string&   xrl_sender_name,
01759     const string&   vif_name,
01760     const uint32_t& vif_index,
01761     const IPv6& source,
01762     const IPv6& group,
01763     Mld6IgmpClient01AddMembership6CB);
01764 #endif
01765 
01766     virtual XrlCmdError mld6igmp_client_0_1_delete_membership4(
01767     // Input values,
01768     const string&   xrl_sender_name,
01769     const string&   vif_name,
01770     const uint32_t& vif_index,
01771     const IPv4& source,
01772     const IPv4& group) = 0;
01773 #ifdef XORP_ENABLE_ASYNC_SERVER
01774     typedef
01775     XorpCallback1<void, const XrlCmdError &>::RefPtr
01776     Mld6IgmpClient01DeleteMembership4RF;
01777 
01778     class Mld6IgmpClient01DeleteMembership4CB {
01779         Mld6IgmpClient01DeleteMembership4RF cb;
01780 
01781     public:
01782         operator const Mld6IgmpClient01DeleteMembership4RF& () const { return cb; }
01783         const Mld6IgmpClient01DeleteMembership4RF& operator ->() const { return cb; }
01784         Mld6IgmpClient01DeleteMembership4CB(const Mld6IgmpClient01DeleteMembership4RF& cb)
01785           : cb(cb) { }
01786 
01787         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
01788 
01789         void respond() const {
01790             cb->dispatch(XrlCmdError::OKAY());
01791         }
01792     };
01793 
01794     struct Mld6IgmpClient01DeleteMembership4Rsp :
01795       public Mld6IgmpClient01DeleteMembership4CB {
01796         Mld6IgmpClient01DeleteMembership4Rsp(const Mld6IgmpClient01DeleteMembership4RF& cb)
01797           : Mld6IgmpClient01DeleteMembership4CB(cb) { }
01798 
01799     };
01800 
01801     virtual void async_mld6igmp_client_0_1_delete_membership4
01802        (
01803     const string&   xrl_sender_name,
01804     const string&   vif_name,
01805     const uint32_t& vif_index,
01806     const IPv4& source,
01807     const IPv4& group,
01808     Mld6IgmpClient01DeleteMembership4CB);
01809 #endif
01810 
01811     virtual XrlCmdError mld6igmp_client_0_1_delete_membership6(
01812     // Input values,
01813     const string&   xrl_sender_name,
01814     const string&   vif_name,
01815     const uint32_t& vif_index,
01816     const IPv6& source,
01817     const IPv6& group) = 0;
01818 #ifdef XORP_ENABLE_ASYNC_SERVER
01819     typedef
01820     XorpCallback1<void, const XrlCmdError &>::RefPtr
01821     Mld6IgmpClient01DeleteMembership6RF;
01822 
01823     class Mld6IgmpClient01DeleteMembership6CB {
01824         Mld6IgmpClient01DeleteMembership6RF cb;
01825 
01826     public:
01827         operator const Mld6IgmpClient01DeleteMembership6RF& () const { return cb; }
01828         const Mld6IgmpClient01DeleteMembership6RF& operator ->() const { return cb; }
01829         Mld6IgmpClient01DeleteMembership6CB(const Mld6IgmpClient01DeleteMembership6RF& cb)
01830           : cb(cb) { }
01831 
01832         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
01833 
01834         void respond() const {
01835             cb->dispatch(XrlCmdError::OKAY());
01836         }
01837     };
01838 
01839     struct Mld6IgmpClient01DeleteMembership6Rsp :
01840       public Mld6IgmpClient01DeleteMembership6CB {
01841         Mld6IgmpClient01DeleteMembership6Rsp(const Mld6IgmpClient01DeleteMembership6RF& cb)
01842           : Mld6IgmpClient01DeleteMembership6CB(cb) { }
01843 
01844     };
01845 
01846     virtual void async_mld6igmp_client_0_1_delete_membership6
01847        (
01848     const string&   xrl_sender_name,
01849     const string&   vif_name,
01850     const uint32_t& vif_index,
01851     const IPv6& source,
01852     const IPv6& group,
01853     Mld6IgmpClient01DeleteMembership6CB);
01854 #endif
01855 
01865     virtual XrlCmdError pim_0_1_enable_vif(
01866     // Input values,
01867     const string&   vif_name,
01868     const bool& enable) = 0;
01869 #ifdef XORP_ENABLE_ASYNC_SERVER
01870     typedef
01871     XorpCallback1<void, const XrlCmdError &>::RefPtr
01872     Pim01EnableVifRF;
01873 
01874     class Pim01EnableVifCB {
01875         Pim01EnableVifRF cb;
01876 
01877     public:
01878         operator const Pim01EnableVifRF& () const { return cb; }
01879         const Pim01EnableVifRF& operator ->() const { return cb; }
01880         Pim01EnableVifCB(const Pim01EnableVifRF& cb)
01881           : cb(cb) { }
01882 
01883         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
01884 
01885         void respond() const {
01886             cb->dispatch(XrlCmdError::OKAY());
01887         }
01888     };
01889 
01890     struct Pim01EnableVifRsp :
01891       public Pim01EnableVifCB {
01892         Pim01EnableVifRsp(const Pim01EnableVifRF& cb)
01893           : Pim01EnableVifCB(cb) { }
01894 
01895     };
01896 
01897     virtual void async_pim_0_1_enable_vif
01898        (
01899     const string&   vif_name,
01900     const bool& enable,
01901     Pim01EnableVifCB);
01902 #endif
01903 
01904     virtual XrlCmdError pim_0_1_start_vif(
01905     // Input values,
01906     const string&   vif_name) = 0;
01907 #ifdef XORP_ENABLE_ASYNC_SERVER
01908     typedef
01909     XorpCallback1<void, const XrlCmdError &>::RefPtr
01910     Pim01StartVifRF;
01911 
01912     class Pim01StartVifCB {
01913         Pim01StartVifRF cb;
01914 
01915     public:
01916         operator const Pim01StartVifRF& () const { return cb; }
01917         const Pim01StartVifRF& operator ->() const { return cb; }
01918         Pim01StartVifCB(const Pim01StartVifRF& cb)
01919           : cb(cb) { }
01920 
01921         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
01922 
01923         void respond() const {
01924             cb->dispatch(XrlCmdError::OKAY());
01925         }
01926     };
01927 
01928     struct Pim01StartVifRsp :
01929       public Pim01StartVifCB {
01930         Pim01StartVifRsp(const Pim01StartVifRF& cb)
01931           : Pim01StartVifCB(cb) { }
01932 
01933     };
01934 
01935     virtual void async_pim_0_1_start_vif
01936        (
01937     const string&   vif_name,
01938     Pim01StartVifCB);
01939 #endif
01940 
01941     virtual XrlCmdError pim_0_1_stop_vif(
01942     // Input values,
01943     const string&   vif_name) = 0;
01944 #ifdef XORP_ENABLE_ASYNC_SERVER
01945     typedef
01946     XorpCallback1<void, const XrlCmdError &>::RefPtr
01947     Pim01StopVifRF;
01948 
01949     class Pim01StopVifCB {
01950         Pim01StopVifRF cb;
01951 
01952     public:
01953         operator const Pim01StopVifRF& () const { return cb; }
01954         const Pim01StopVifRF& operator ->() const { return cb; }
01955         Pim01StopVifCB(const Pim01StopVifRF& cb)
01956           : cb(cb) { }
01957 
01958         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
01959 
01960         void respond() const {
01961             cb->dispatch(XrlCmdError::OKAY());
01962         }
01963     };
01964 
01965     struct Pim01StopVifRsp :
01966       public Pim01StopVifCB {
01967         Pim01StopVifRsp(const Pim01StopVifRF& cb)
01968           : Pim01StopVifCB(cb) { }
01969 
01970     };
01971 
01972     virtual void async_pim_0_1_stop_vif
01973        (
01974     const string&   vif_name,
01975     Pim01StopVifCB);
01976 #endif
01977 
01985     virtual XrlCmdError pim_0_1_enable_all_vifs(
01986     // Input values,
01987     const bool& enable) = 0;
01988 #ifdef XORP_ENABLE_ASYNC_SERVER
01989     typedef
01990     XorpCallback1<void, const XrlCmdError &>::RefPtr
01991     Pim01EnableAllVifsRF;
01992 
01993     class Pim01EnableAllVifsCB {
01994         Pim01EnableAllVifsRF cb;
01995 
01996     public:
01997         operator const Pim01EnableAllVifsRF& () const { return cb; }
01998         const Pim01EnableAllVifsRF& operator ->() const { return cb; }
01999         Pim01EnableAllVifsCB(const Pim01EnableAllVifsRF& cb)
02000           : cb(cb) { }
02001 
02002         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
02003 
02004         void respond() const {
02005             cb->dispatch(XrlCmdError::OKAY());
02006         }
02007     };
02008 
02009     struct Pim01EnableAllVifsRsp :
02010       public Pim01EnableAllVifsCB {
02011         Pim01EnableAllVifsRsp(const Pim01EnableAllVifsRF& cb)
02012           : Pim01EnableAllVifsCB(cb) { }
02013 
02014     };
02015 
02016     virtual void async_pim_0_1_enable_all_vifs
02017        (
02018     const bool& enable,
02019     Pim01EnableAllVifsCB);
02020 #endif
02021 
02022     virtual XrlCmdError pim_0_1_start_all_vifs() = 0;
02023 #ifdef XORP_ENABLE_ASYNC_SERVER
02024     typedef
02025     XorpCallback1<void, const XrlCmdError &>::RefPtr
02026     Pim01StartAllVifsRF;
02027 
02028     class Pim01StartAllVifsCB {
02029         Pim01StartAllVifsRF cb;
02030 
02031     public:
02032         operator const Pim01StartAllVifsRF& () const { return cb; }
02033         const Pim01StartAllVifsRF& operator ->() const { return cb; }
02034         Pim01StartAllVifsCB(const Pim01StartAllVifsRF& cb)
02035           : cb(cb) { }
02036 
02037         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
02038 
02039         void respond() const {
02040             cb->dispatch(XrlCmdError::OKAY());
02041         }
02042     };
02043 
02044     struct Pim01StartAllVifsRsp :
02045       public Pim01StartAllVifsCB {
02046         Pim01StartAllVifsRsp(const Pim01StartAllVifsRF& cb)
02047           : Pim01StartAllVifsCB(cb) { }
02048 
02049     };
02050 
02051     virtual void async_pim_0_1_start_all_vifs
02052        (
02053     Pim01StartAllVifsCB);
02054 #endif
02055 
02056     virtual XrlCmdError pim_0_1_stop_all_vifs() = 0;
02057 #ifdef XORP_ENABLE_ASYNC_SERVER
02058     typedef
02059     XorpCallback1<void, const XrlCmdError &>::RefPtr
02060     Pim01StopAllVifsRF;
02061 
02062     class Pim01StopAllVifsCB {
02063         Pim01StopAllVifsRF cb;
02064 
02065     public:
02066         operator const Pim01StopAllVifsRF& () const { return cb; }
02067         const Pim01StopAllVifsRF& operator ->() const { return cb; }
02068         Pim01StopAllVifsCB(const Pim01StopAllVifsRF& cb)
02069           : cb(cb) { }
02070 
02071         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
02072 
02073         void respond() const {
02074             cb->dispatch(XrlCmdError::OKAY());
02075         }
02076     };
02077 
02078     struct Pim01StopAllVifsRsp :
02079       public Pim01StopAllVifsCB {
02080         Pim01StopAllVifsRsp(const Pim01StopAllVifsRF& cb)
02081           : Pim01StopAllVifsCB(cb) { }
02082 
02083     };
02084 
02085     virtual void async_pim_0_1_stop_all_vifs
02086        (
02087     Pim01StopAllVifsCB);
02088 #endif
02089 
02098     virtual XrlCmdError pim_0_1_enable_pim(
02099     // Input values,
02100     const bool& enable) = 0;
02101 #ifdef XORP_ENABLE_ASYNC_SERVER
02102     typedef
02103     XorpCallback1<void, const XrlCmdError &>::RefPtr
02104     Pim01EnablePimRF;
02105 
02106     class Pim01EnablePimCB {
02107         Pim01EnablePimRF cb;
02108 
02109     public:
02110         operator const Pim01EnablePimRF& () const { return cb; }
02111         const Pim01EnablePimRF& operator ->() const { return cb; }
02112         Pim01EnablePimCB(const Pim01EnablePimRF& cb)
02113           : cb(cb) { }
02114 
02115         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
02116 
02117         void respond() const {
02118             cb->dispatch(XrlCmdError::OKAY());
02119         }
02120     };
02121 
02122     struct Pim01EnablePimRsp :
02123       public Pim01EnablePimCB {
02124         Pim01EnablePimRsp(const Pim01EnablePimRF& cb)
02125           : Pim01EnablePimCB(cb) { }
02126 
02127     };
02128 
02129     virtual void async_pim_0_1_enable_pim
02130        (
02131     const bool& enable,
02132     Pim01EnablePimCB);
02133 #endif
02134 
02135     virtual XrlCmdError pim_0_1_start_pim() = 0;
02136 #ifdef XORP_ENABLE_ASYNC_SERVER
02137     typedef
02138     XorpCallback1<void, const XrlCmdError &>::RefPtr
02139     Pim01StartPimRF;
02140 
02141     class Pim01StartPimCB {
02142         Pim01StartPimRF cb;
02143 
02144     public:
02145         operator const Pim01StartPimRF& () const { return cb; }
02146         const Pim01StartPimRF& operator ->() const { return cb; }
02147         Pim01StartPimCB(const Pim01StartPimRF& cb)
02148           : cb(cb) { }
02149 
02150         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
02151 
02152         void respond() const {
02153             cb->dispatch(XrlCmdError::OKAY());
02154         }
02155     };
02156 
02157     struct Pim01StartPimRsp :
02158       public Pim01StartPimCB {
02159         Pim01StartPimRsp(const Pim01StartPimRF& cb)
02160           : Pim01StartPimCB(cb) { }
02161 
02162     };
02163 
02164     virtual void async_pim_0_1_start_pim
02165        (
02166     Pim01StartPimCB);
02167 #endif
02168 
02169     virtual XrlCmdError pim_0_1_stop_pim() = 0;
02170 #ifdef XORP_ENABLE_ASYNC_SERVER
02171     typedef
02172     XorpCallback1<void, const XrlCmdError &>::RefPtr
02173     Pim01StopPimRF;
02174 
02175     class Pim01StopPimCB {
02176         Pim01StopPimRF cb;
02177 
02178     public:
02179         operator const Pim01StopPimRF& () const { return cb; }
02180         const Pim01StopPimRF& operator ->() const { return cb; }
02181         Pim01StopPimCB(const Pim01StopPimRF& cb)
02182           : cb(cb) { }
02183 
02184         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
02185 
02186         void respond() const {
02187             cb->dispatch(XrlCmdError::OKAY());
02188         }
02189     };
02190 
02191     struct Pim01StopPimRsp :
02192       public Pim01StopPimCB {
02193         Pim01StopPimRsp(const Pim01StopPimRF& cb)
02194           : Pim01StopPimCB(cb) { }
02195 
02196     };
02197 
02198     virtual void async_pim_0_1_stop_pim
02199        (
02200     Pim01StopPimCB);
02201 #endif
02202 
02211     virtual XrlCmdError pim_0_1_enable_cli(
02212     // Input values,
02213     const bool& enable) = 0;
02214 #ifdef XORP_ENABLE_ASYNC_SERVER
02215     typedef
02216     XorpCallback1<void, const XrlCmdError &>::RefPtr
02217     Pim01EnableCliRF;
02218 
02219     class Pim01EnableCliCB {
02220         Pim01EnableCliRF cb;
02221 
02222     public:
02223         operator const Pim01EnableCliRF& () const { return cb; }
02224         const Pim01EnableCliRF& operator ->() const { return cb; }
02225         Pim01EnableCliCB(const Pim01EnableCliRF& cb)
02226           : cb(cb) { }
02227 
02228         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
02229 
02230         void respond() const {
02231             cb->dispatch(XrlCmdError::OKAY());
02232         }
02233     };
02234 
02235     struct Pim01EnableCliRsp :
02236       public Pim01EnableCliCB {
02237         Pim01EnableCliRsp(const Pim01EnableCliRF& cb)
02238           : Pim01EnableCliCB(cb) { }
02239 
02240     };
02241 
02242     virtual void async_pim_0_1_enable_cli
02243        (
02244     const bool& enable,
02245     Pim01EnableCliCB);
02246 #endif
02247 
02248     virtual XrlCmdError pim_0_1_start_cli() = 0;
02249 #ifdef XORP_ENABLE_ASYNC_SERVER
02250     typedef
02251     XorpCallback1<void, const XrlCmdError &>::RefPtr
02252     Pim01StartCliRF;
02253 
02254     class Pim01StartCliCB {
02255         Pim01StartCliRF cb;
02256 
02257     public:
02258         operator const Pim01StartCliRF& () const { return cb; }
02259         const Pim01StartCliRF& operator ->() const { return cb; }
02260         Pim01StartCliCB(const Pim01StartCliRF& cb)
02261           : cb(cb) { }
02262 
02263         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
02264 
02265         void respond() const {
02266             cb->dispatch(XrlCmdError::OKAY());
02267         }
02268     };
02269 
02270     struct Pim01StartCliRsp :
02271       public Pim01StartCliCB {
02272         Pim01StartCliRsp(const Pim01StartCliRF& cb)
02273           : Pim01StartCliCB(cb) { }
02274 
02275     };
02276 
02277     virtual void async_pim_0_1_start_cli
02278        (
02279     Pim01StartCliCB);
02280 #endif
02281 
02282     virtual XrlCmdError pim_0_1_stop_cli() = 0;
02283 #ifdef XORP_ENABLE_ASYNC_SERVER
02284     typedef
02285     XorpCallback1<void, const XrlCmdError &>::RefPtr
02286     Pim01StopCliRF;
02287 
02288     class Pim01StopCliCB {
02289         Pim01StopCliRF cb;
02290 
02291     public:
02292         operator const Pim01StopCliRF& () const { return cb; }
02293         const Pim01StopCliRF& operator ->() const { return cb; }
02294         Pim01StopCliCB(const Pim01StopCliRF& cb)
02295           : cb(cb) { }
02296 
02297         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
02298 
02299         void respond() const {
02300             cb->dispatch(XrlCmdError::OKAY());
02301         }
02302     };
02303 
02304     struct Pim01StopCliRsp :
02305       public Pim01StopCliCB {
02306         Pim01StopCliRsp(const Pim01StopCliRF& cb)
02307           : Pim01StopCliCB(cb) { }
02308 
02309     };
02310 
02311     virtual void async_pim_0_1_stop_cli
02312        (
02313     Pim01StopCliCB);
02314 #endif
02315 
02323     virtual XrlCmdError pim_0_1_enable_bsr(
02324     // Input values,
02325     const bool& enable) = 0;
02326 #ifdef XORP_ENABLE_ASYNC_SERVER
02327     typedef
02328     XorpCallback1<void, const XrlCmdError &>::RefPtr
02329     Pim01EnableBsrRF;
02330 
02331     class Pim01EnableBsrCB {
02332         Pim01EnableBsrRF cb;
02333 
02334     public:
02335         operator const Pim01EnableBsrRF& () const { return cb; }
02336         const Pim01EnableBsrRF& operator ->() const { return cb; }
02337         Pim01EnableBsrCB(const Pim01EnableBsrRF& cb)
02338           : cb(cb) { }
02339 
02340         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
02341 
02342         void respond() const {
02343             cb->dispatch(XrlCmdError::OKAY());
02344         }
02345     };
02346 
02347     struct Pim01EnableBsrRsp :
02348       public Pim01EnableBsrCB {
02349         Pim01EnableBsrRsp(const Pim01EnableBsrRF& cb)
02350           : Pim01EnableBsrCB(cb) { }
02351 
02352     };
02353 
02354     virtual void async_pim_0_1_enable_bsr
02355        (
02356     const bool& enable,
02357     Pim01EnableBsrCB);
02358 #endif
02359 
02360     virtual XrlCmdError pim_0_1_start_bsr() = 0;
02361 #ifdef XORP_ENABLE_ASYNC_SERVER
02362     typedef
02363     XorpCallback1<void, const XrlCmdError &>::RefPtr
02364     Pim01StartBsrRF;
02365 
02366     class Pim01StartBsrCB {
02367         Pim01StartBsrRF cb;
02368 
02369     public:
02370         operator const Pim01StartBsrRF& () const { return cb; }
02371         const Pim01StartBsrRF& operator ->() const { return cb; }
02372         Pim01StartBsrCB(const Pim01StartBsrRF& cb)
02373           : cb(cb) { }
02374 
02375         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
02376 
02377         void respond() const {
02378             cb->dispatch(XrlCmdError::OKAY());
02379         }
02380     };
02381 
02382     struct Pim01StartBsrRsp :
02383       public Pim01StartBsrCB {
02384         Pim01StartBsrRsp(const Pim01StartBsrRF& cb)
02385           : Pim01StartBsrCB(cb) { }
02386 
02387     };
02388 
02389     virtual void async_pim_0_1_start_bsr
02390        (
02391     Pim01StartBsrCB);
02392 #endif
02393 
02394     virtual XrlCmdError pim_0_1_stop_bsr() = 0;
02395 #ifdef XORP_ENABLE_ASYNC_SERVER
02396     typedef
02397     XorpCallback1<void, const XrlCmdError &>::RefPtr
02398     Pim01StopBsrRF;
02399 
02400     class Pim01StopBsrCB {
02401         Pim01StopBsrRF cb;
02402 
02403     public:
02404         operator const Pim01StopBsrRF& () const { return cb; }
02405         const Pim01StopBsrRF& operator ->() const { return cb; }
02406         Pim01StopBsrCB(const Pim01StopBsrRF& cb)
02407           : cb(cb) { }
02408 
02409         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
02410 
02411         void respond() const {
02412             cb->dispatch(XrlCmdError::OKAY());
02413         }
02414     };
02415 
02416     struct Pim01StopBsrRsp :
02417       public Pim01StopBsrCB {
02418         Pim01StopBsrRsp(const Pim01StopBsrRF& cb)
02419           : Pim01StopBsrCB(cb) { }
02420 
02421     };
02422 
02423     virtual void async_pim_0_1_stop_bsr
02424        (
02425     Pim01StopBsrCB);
02426 #endif
02427 
02433     virtual XrlCmdError pim_0_1_apply_bsr_changes() = 0;
02434 #ifdef XORP_ENABLE_ASYNC_SERVER
02435     typedef
02436     XorpCallback1<void, const XrlCmdError &>::RefPtr
02437     Pim01ApplyBsrChangesRF;
02438 
02439     class Pim01ApplyBsrChangesCB {
02440         Pim01ApplyBsrChangesRF cb;
02441 
02442     public:
02443         operator const Pim01ApplyBsrChangesRF& () const { return cb; }
02444         const Pim01ApplyBsrChangesRF& operator ->() const { return cb; }
02445         Pim01ApplyBsrChangesCB(const Pim01ApplyBsrChangesRF& cb)
02446           : cb(cb) { }
02447 
02448         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
02449 
02450         void respond() const {
02451             cb->dispatch(XrlCmdError::OKAY());
02452         }
02453     };
02454 
02455     struct Pim01ApplyBsrChangesRsp :
02456       public Pim01ApplyBsrChangesCB {
02457         Pim01ApplyBsrChangesRsp(const Pim01ApplyBsrChangesRF& cb)
02458           : Pim01ApplyBsrChangesCB(cb) { }
02459 
02460     };
02461 
02462     virtual void async_pim_0_1_apply_bsr_changes
02463        (
02464     Pim01ApplyBsrChangesCB);
02465 #endif
02466 
02477     virtual XrlCmdError pim_0_1_add_config_scope_zone_by_vif_name4(
02478     // Input values,
02479     const IPv4Net&  scope_zone_id,
02480     const string&   vif_name) = 0;
02481 #ifdef XORP_ENABLE_ASYNC_SERVER
02482     typedef
02483     XorpCallback1<void, const XrlCmdError &>::RefPtr
02484     Pim01AddConfigScopeZoneByVifName4RF;
02485 
02486     class Pim01AddConfigScopeZoneByVifName4CB {
02487         Pim01AddConfigScopeZoneByVifName4RF cb;
02488 
02489     public:
02490         operator const Pim01AddConfigScopeZoneByVifName4RF& () const { return cb; }
02491         const Pim01AddConfigScopeZoneByVifName4RF& operator ->() const { return cb; }
02492         Pim01AddConfigScopeZoneByVifName4CB(const Pim01AddConfigScopeZoneByVifName4RF& cb)
02493           : cb(cb) { }
02494 
02495         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
02496 
02497         void respond() const {
02498             cb->dispatch(XrlCmdError::OKAY());
02499         }
02500     };
02501 
02502     struct Pim01AddConfigScopeZoneByVifName4Rsp :
02503       public Pim01AddConfigScopeZoneByVifName4CB {
02504         Pim01AddConfigScopeZoneByVifName4Rsp(const Pim01AddConfigScopeZoneByVifName4RF& cb)
02505           : Pim01AddConfigScopeZoneByVifName4CB(cb) { }
02506 
02507     };
02508 
02509     virtual void async_pim_0_1_add_config_scope_zone_by_vif_name4
02510        (
02511     const IPv4Net&  scope_zone_id,
02512     const string&   vif_name,
02513     Pim01AddConfigScopeZoneByVifName4CB);
02514 #endif
02515 
02516     virtual XrlCmdError pim_0_1_add_config_scope_zone_by_vif_name6(
02517     // Input values,
02518     const IPv6Net&  scope_zone_id,
02519     const string&   vif_name) = 0;
02520 #ifdef XORP_ENABLE_ASYNC_SERVER
02521     typedef
02522     XorpCallback1<void, const XrlCmdError &>::RefPtr
02523     Pim01AddConfigScopeZoneByVifName6RF;
02524 
02525     class Pim01AddConfigScopeZoneByVifName6CB {
02526         Pim01AddConfigScopeZoneByVifName6RF cb;
02527 
02528     public:
02529         operator const Pim01AddConfigScopeZoneByVifName6RF& () const { return cb; }
02530         const Pim01AddConfigScopeZoneByVifName6RF& operator ->() const { return cb; }
02531         Pim01AddConfigScopeZoneByVifName6CB(const Pim01AddConfigScopeZoneByVifName6RF& cb)
02532           : cb(cb) { }
02533 
02534         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
02535 
02536         void respond() const {
02537             cb->dispatch(XrlCmdError::OKAY());
02538         }
02539     };
02540 
02541     struct Pim01AddConfigScopeZoneByVifName6Rsp :
02542       public Pim01AddConfigScopeZoneByVifName6CB {
02543         Pim01AddConfigScopeZoneByVifName6Rsp(const Pim01AddConfigScopeZoneByVifName6RF& cb)
02544           : Pim01AddConfigScopeZoneByVifName6CB(cb) { }
02545 
02546     };
02547 
02548     virtual void async_pim_0_1_add_config_scope_zone_by_vif_name6
02549        (
02550     const IPv6Net&  scope_zone_id,
02551     const string&   vif_name,
02552     Pim01AddConfigScopeZoneByVifName6CB);
02553 #endif
02554 
02555     virtual XrlCmdError pim_0_1_add_config_scope_zone_by_vif_addr6(
02556     // Input values,
02557     const IPv6Net&  scope_zone_id,
02558     const IPv6& vif_addr) = 0;
02559 #ifdef XORP_ENABLE_ASYNC_SERVER
02560     typedef
02561     XorpCallback1<void, const XrlCmdError &>::RefPtr
02562     Pim01AddConfigScopeZoneByVifAddr6RF;
02563 
02564     class Pim01AddConfigScopeZoneByVifAddr6CB {
02565         Pim01AddConfigScopeZoneByVifAddr6RF cb;
02566 
02567     public:
02568         operator const Pim01AddConfigScopeZoneByVifAddr6RF& () const { return cb; }
02569         const Pim01AddConfigScopeZoneByVifAddr6RF& operator ->() const { return cb; }
02570         Pim01AddConfigScopeZoneByVifAddr6CB(const Pim01AddConfigScopeZoneByVifAddr6RF& cb)
02571           : cb(cb) { }
02572 
02573         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
02574 
02575         void respond() const {
02576             cb->dispatch(XrlCmdError::OKAY());
02577         }
02578     };
02579 
02580     struct Pim01AddConfigScopeZoneByVifAddr6Rsp :
02581       public Pim01AddConfigScopeZoneByVifAddr6CB {
02582         Pim01AddConfigScopeZoneByVifAddr6Rsp(const Pim01AddConfigScopeZoneByVifAddr6RF& cb)
02583           : Pim01AddConfigScopeZoneByVifAddr6CB(cb) { }
02584 
02585     };
02586 
02587     virtual void async_pim_0_1_add_config_scope_zone_by_vif_addr6
02588        (
02589     const IPv6Net&  scope_zone_id,
02590     const IPv6& vif_addr,
02591     Pim01AddConfigScopeZoneByVifAddr6CB);
02592 #endif
02593 
02594     virtual XrlCmdError pim_0_1_delete_config_scope_zone_by_vif_name6(
02595     // Input values,
02596     const IPv6Net&  scope_zone_id,
02597     const string&   vif_name) = 0;
02598 #ifdef XORP_ENABLE_ASYNC_SERVER
02599     typedef
02600     XorpCallback1<void, const XrlCmdError &>::RefPtr
02601     Pim01DeleteConfigScopeZoneByVifName6RF;
02602 
02603     class Pim01DeleteConfigScopeZoneByVifName6CB {
02604         Pim01DeleteConfigScopeZoneByVifName6RF cb;
02605 
02606     public:
02607         operator const Pim01DeleteConfigScopeZoneByVifName6RF& () const { return cb; }
02608         const Pim01DeleteConfigScopeZoneByVifName6RF& operator ->() const { return cb; }
02609         Pim01DeleteConfigScopeZoneByVifName6CB(const Pim01DeleteConfigScopeZoneByVifName6RF& cb)
02610           : cb(cb) { }
02611 
02612         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
02613 
02614         void respond() const {
02615             cb->dispatch(XrlCmdError::OKAY());
02616         }
02617     };
02618 
02619     struct Pim01DeleteConfigScopeZoneByVifName6Rsp :
02620       public Pim01DeleteConfigScopeZoneByVifName6CB {
02621         Pim01DeleteConfigScopeZoneByVifName6Rsp(const Pim01DeleteConfigScopeZoneByVifName6RF& cb)
02622           : Pim01DeleteConfigScopeZoneByVifName6CB(cb) { }
02623 
02624     };
02625 
02626     virtual void async_pim_0_1_delete_config_scope_zone_by_vif_name6
02627        (
02628     const IPv6Net&  scope_zone_id,
02629     const string&   vif_name,
02630     Pim01DeleteConfigScopeZoneByVifName6CB);
02631 #endif
02632 
02633     virtual XrlCmdError pim_0_1_delete_config_scope_zone_by_vif_addr6(
02634     // Input values,
02635     const IPv6Net&  scope_zone_id,
02636     const IPv6& vif_addr) = 0;
02637 #ifdef XORP_ENABLE_ASYNC_SERVER
02638     typedef
02639     XorpCallback1<void, const XrlCmdError &>::RefPtr
02640     Pim01DeleteConfigScopeZoneByVifAddr6RF;
02641 
02642     class Pim01DeleteConfigScopeZoneByVifAddr6CB {
02643         Pim01DeleteConfigScopeZoneByVifAddr6RF cb;
02644 
02645     public:
02646         operator const Pim01DeleteConfigScopeZoneByVifAddr6RF& () const { return cb; }
02647         const Pim01DeleteConfigScopeZoneByVifAddr6RF& operator ->() const { return cb; }
02648         Pim01DeleteConfigScopeZoneByVifAddr6CB(const Pim01DeleteConfigScopeZoneByVifAddr6RF& cb)
02649           : cb(cb) { }
02650 
02651         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
02652 
02653         void respond() const {
02654             cb->dispatch(XrlCmdError::OKAY());
02655         }
02656     };
02657 
02658     struct Pim01DeleteConfigScopeZoneByVifAddr6Rsp :
02659       public Pim01DeleteConfigScopeZoneByVifAddr6CB {
02660         Pim01DeleteConfigScopeZoneByVifAddr6Rsp(const Pim01DeleteConfigScopeZoneByVifAddr6RF& cb)
02661           : Pim01DeleteConfigScopeZoneByVifAddr6CB(cb) { }
02662 
02663     };
02664 
02665     virtual void async_pim_0_1_delete_config_scope_zone_by_vif_addr6
02666        (
02667     const IPv6Net&  scope_zone_id,
02668     const IPv6& vif_addr,
02669     Pim01DeleteConfigScopeZoneByVifAddr6CB);
02670 #endif
02671 
02672     virtual XrlCmdError pim_0_1_add_config_scope_zone_by_vif_addr4(
02673     // Input values,
02674     const IPv4Net&  scope_zone_id,
02675     const IPv4& vif_addr) = 0;
02676 #ifdef XORP_ENABLE_ASYNC_SERVER
02677     typedef
02678     XorpCallback1<void, const XrlCmdError &>::RefPtr
02679     Pim01AddConfigScopeZoneByVifAddr4RF;
02680 
02681     class Pim01AddConfigScopeZoneByVifAddr4CB {
02682         Pim01AddConfigScopeZoneByVifAddr4RF cb;
02683 
02684     public:
02685         operator const Pim01AddConfigScopeZoneByVifAddr4RF& () const { return cb; }
02686         const Pim01AddConfigScopeZoneByVifAddr4RF& operator ->() const { return cb; }
02687         Pim01AddConfigScopeZoneByVifAddr4CB(const Pim01AddConfigScopeZoneByVifAddr4RF& cb)
02688           : cb(cb) { }
02689 
02690         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
02691 
02692         void respond() const {
02693             cb->dispatch(XrlCmdError::OKAY());
02694         }
02695     };
02696 
02697     struct Pim01AddConfigScopeZoneByVifAddr4Rsp :
02698       public Pim01AddConfigScopeZoneByVifAddr4CB {
02699         Pim01AddConfigScopeZoneByVifAddr4Rsp(const Pim01AddConfigScopeZoneByVifAddr4RF& cb)
02700           : Pim01AddConfigScopeZoneByVifAddr4CB(cb) { }
02701 
02702     };
02703 
02704     virtual void async_pim_0_1_add_config_scope_zone_by_vif_addr4
02705        (
02706     const IPv4Net&  scope_zone_id,
02707     const IPv4& vif_addr,
02708     Pim01AddConfigScopeZoneByVifAddr4CB);
02709 #endif
02710 
02711     virtual XrlCmdError pim_0_1_delete_config_scope_zone_by_vif_name4(
02712     // Input values,
02713     const IPv4Net&  scope_zone_id,
02714     const string&   vif_name) = 0;
02715 #ifdef XORP_ENABLE_ASYNC_SERVER
02716     typedef
02717     XorpCallback1<void, const XrlCmdError &>::RefPtr
02718     Pim01DeleteConfigScopeZoneByVifName4RF;
02719 
02720     class Pim01DeleteConfigScopeZoneByVifName4CB {
02721         Pim01DeleteConfigScopeZoneByVifName4RF cb;
02722 
02723     public:
02724         operator const Pim01DeleteConfigScopeZoneByVifName4RF& () const { return cb; }
02725         const Pim01DeleteConfigScopeZoneByVifName4RF& operator ->() const { return cb; }
02726         Pim01DeleteConfigScopeZoneByVifName4CB(const Pim01DeleteConfigScopeZoneByVifName4RF& cb)
02727           : cb(cb) { }
02728 
02729         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
02730 
02731         void respond() const {
02732             cb->dispatch(XrlCmdError::OKAY());
02733         }
02734     };
02735 
02736     struct Pim01DeleteConfigScopeZoneByVifName4Rsp :
02737       public Pim01DeleteConfigScopeZoneByVifName4CB {
02738         Pim01DeleteConfigScopeZoneByVifName4Rsp(const Pim01DeleteConfigScopeZoneByVifName4RF& cb)
02739           : Pim01DeleteConfigScopeZoneByVifName4CB(cb) { }
02740 
02741     };
02742 
02743     virtual void async_pim_0_1_delete_config_scope_zone_by_vif_name4
02744        (
02745     const IPv4Net&  scope_zone_id,
02746     const string&   vif_name,
02747     Pim01DeleteConfigScopeZoneByVifName4CB);
02748 #endif
02749 
02750     virtual XrlCmdError pim_0_1_delete_config_scope_zone_by_vif_addr4(
02751     // Input values,
02752     const IPv4Net&  scope_zone_id,
02753     const IPv4& vif_addr) = 0;
02754 #ifdef XORP_ENABLE_ASYNC_SERVER
02755     typedef
02756     XorpCallback1<void, const XrlCmdError &>::RefPtr
02757     Pim01DeleteConfigScopeZoneByVifAddr4RF;
02758 
02759     class Pim01DeleteConfigScopeZoneByVifAddr4CB {
02760         Pim01DeleteConfigScopeZoneByVifAddr4RF cb;
02761 
02762     public:
02763         operator const Pim01DeleteConfigScopeZoneByVifAddr4RF& () const { return cb; }
02764         const Pim01DeleteConfigScopeZoneByVifAddr4RF& operator ->() const { return cb; }
02765         Pim01DeleteConfigScopeZoneByVifAddr4CB(const Pim01DeleteConfigScopeZoneByVifAddr4RF& cb)
02766           : cb(cb) { }
02767 
02768         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
02769 
02770         void respond() const {
02771             cb->dispatch(XrlCmdError::OKAY());
02772         }
02773     };
02774 
02775     struct Pim01DeleteConfigScopeZoneByVifAddr4Rsp :
02776       public Pim01DeleteConfigScopeZoneByVifAddr4CB {
02777         Pim01DeleteConfigScopeZoneByVifAddr4Rsp(const Pim01DeleteConfigScopeZoneByVifAddr4RF& cb)
02778           : Pim01DeleteConfigScopeZoneByVifAddr4CB(cb) { }
02779 
02780     };
02781 
02782     virtual void async_pim_0_1_delete_config_scope_zone_by_vif_addr4
02783        (
02784     const IPv4Net&  scope_zone_id,
02785     const IPv4& vif_addr,
02786     Pim01DeleteConfigScopeZoneByVifAddr4CB);
02787 #endif
02788 
02807     virtual XrlCmdError pim_0_1_add_config_cand_bsr4(
02808     // Input values,
02809     const IPv4Net&  scope_zone_id,
02810     const bool& is_scope_zone,
02811     const string&   vif_name,
02812     const IPv4& vif_addr,
02813     const uint32_t& bsr_priority,
02814     const uint32_t& hash_mask_len) = 0;
02815 #ifdef XORP_ENABLE_ASYNC_SERVER
02816     typedef
02817     XorpCallback1<void, const XrlCmdError &>::RefPtr
02818     Pim01AddConfigCandBsr4RF;
02819 
02820     class Pim01AddConfigCandBsr4CB {
02821         Pim01AddConfigCandBsr4RF cb;
02822 
02823     public:
02824         operator const Pim01AddConfigCandBsr4RF& () const { return cb; }
02825         const Pim01AddConfigCandBsr4RF& operator ->() const { return cb; }
02826         Pim01AddConfigCandBsr4CB(const Pim01AddConfigCandBsr4RF& cb)
02827           : cb(cb) { }
02828 
02829         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
02830 
02831         void respond() const {
02832             cb->dispatch(XrlCmdError::OKAY());
02833         }
02834     };
02835 
02836     struct Pim01AddConfigCandBsr4Rsp :
02837       public Pim01AddConfigCandBsr4CB {
02838         Pim01AddConfigCandBsr4Rsp(const Pim01AddConfigCandBsr4RF& cb)
02839           : Pim01AddConfigCandBsr4CB(cb) { }
02840 
02841     };
02842 
02843     virtual void async_pim_0_1_add_config_cand_bsr4
02844        (
02845     const IPv4Net&  scope_zone_id,
02846     const bool& is_scope_zone,
02847     const string&   vif_name,
02848     const IPv4& vif_addr,
02849     const uint32_t& bsr_priority,
02850     const uint32_t& hash_mask_len,
02851     Pim01AddConfigCandBsr4CB);
02852 #endif
02853 
02854     virtual XrlCmdError pim_0_1_add_config_cand_bsr6(
02855     // Input values,
02856     const IPv6Net&  scope_zone_id,
02857     const bool& is_scope_zone,
02858     const string&   vif_name,
02859     const IPv6& vif_addr,
02860     const uint32_t& bsr_priority,
02861     const uint32_t& hash_mask_len) = 0;
02862 #ifdef XORP_ENABLE_ASYNC_SERVER
02863     typedef
02864     XorpCallback1<void, const XrlCmdError &>::RefPtr
02865     Pim01AddConfigCandBsr6RF;
02866 
02867     class Pim01AddConfigCandBsr6CB {
02868         Pim01AddConfigCandBsr6RF cb;
02869 
02870     public:
02871         operator const Pim01AddConfigCandBsr6RF& () const { return cb; }
02872         const Pim01AddConfigCandBsr6RF& operator ->() const { return cb; }
02873         Pim01AddConfigCandBsr6CB(const Pim01AddConfigCandBsr6RF& cb)
02874           : cb(cb) { }
02875 
02876         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
02877 
02878         void respond() const {
02879             cb->dispatch(XrlCmdError::OKAY());
02880         }
02881     };
02882 
02883     struct Pim01AddConfigCandBsr6Rsp :
02884       public Pim01AddConfigCandBsr6CB {
02885         Pim01AddConfigCandBsr6Rsp(const Pim01AddConfigCandBsr6RF& cb)
02886           : Pim01AddConfigCandBsr6CB(cb) { }
02887 
02888     };
02889 
02890     virtual void async_pim_0_1_add_config_cand_bsr6
02891        (
02892     const IPv6Net&  scope_zone_id,
02893     const bool& is_scope_zone,
02894     const string&   vif_name,
02895     const IPv6& vif_addr,
02896     const uint32_t& bsr_priority,
02897     const uint32_t& hash_mask_len,
02898     Pim01AddConfigCandBsr6CB);
02899 #endif
02900 
02901     virtual XrlCmdError pim_0_1_delete_config_cand_bsr6(
02902     // Input values,
02903     const IPv6Net&  scope_zone_id,
02904     const bool& is_scope_zone) = 0;
02905 #ifdef XORP_ENABLE_ASYNC_SERVER
02906     typedef
02907     XorpCallback1<void, const XrlCmdError &>::RefPtr
02908     Pim01DeleteConfigCandBsr6RF;
02909 
02910     class Pim01DeleteConfigCandBsr6CB {
02911         Pim01DeleteConfigCandBsr6RF cb;
02912 
02913     public:
02914         operator const Pim01DeleteConfigCandBsr6RF& () const { return cb; }
02915         const Pim01DeleteConfigCandBsr6RF& operator ->() const { return cb; }
02916         Pim01DeleteConfigCandBsr6CB(const Pim01DeleteConfigCandBsr6RF& cb)
02917           : cb(cb) { }
02918 
02919         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
02920 
02921         void respond() const {
02922             cb->dispatch(XrlCmdError::OKAY());
02923         }
02924     };
02925 
02926     struct Pim01DeleteConfigCandBsr6Rsp :
02927       public Pim01DeleteConfigCandBsr6CB {
02928         Pim01DeleteConfigCandBsr6Rsp(const Pim01DeleteConfigCandBsr6RF& cb)
02929           : Pim01DeleteConfigCandBsr6CB(cb) { }
02930 
02931     };
02932 
02933     virtual void async_pim_0_1_delete_config_cand_bsr6
02934        (
02935     const IPv6Net&  scope_zone_id,
02936     const bool& is_scope_zone,
02937     Pim01DeleteConfigCandBsr6CB);
02938 #endif
02939 
02940     virtual XrlCmdError pim_0_1_delete_config_cand_bsr4(
02941     // Input values,
02942     const IPv4Net&  scope_zone_id,
02943     const bool& is_scope_zone) = 0;
02944 #ifdef XORP_ENABLE_ASYNC_SERVER
02945     typedef
02946     XorpCallback1<void, const XrlCmdError &>::RefPtr
02947     Pim01DeleteConfigCandBsr4RF;
02948 
02949     class Pim01DeleteConfigCandBsr4CB {
02950         Pim01DeleteConfigCandBsr4RF cb;
02951 
02952     public:
02953         operator const Pim01DeleteConfigCandBsr4RF& () const { return cb; }
02954         const Pim01DeleteConfigCandBsr4RF& operator ->() const { return cb; }
02955         Pim01DeleteConfigCandBsr4CB(const Pim01DeleteConfigCandBsr4RF& cb)
02956           : cb(cb) { }
02957 
02958         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
02959 
02960         void respond() const {
02961             cb->dispatch(XrlCmdError::OKAY());
02962         }
02963     };
02964 
02965     struct Pim01DeleteConfigCandBsr4Rsp :
02966       public Pim01DeleteConfigCandBsr4CB {
02967         Pim01DeleteConfigCandBsr4Rsp(const Pim01DeleteConfigCandBsr4RF& cb)
02968           : Pim01DeleteConfigCandBsr4CB(cb) { }
02969 
02970     };
02971 
02972     virtual void async_pim_0_1_delete_config_cand_bsr4
02973        (
02974     const IPv4Net&  scope_zone_id,
02975     const bool& is_scope_zone,
02976     Pim01DeleteConfigCandBsr4CB);
02977 #endif
02978 
02997     virtual XrlCmdError pim_0_1_add_config_cand_rp4(
02998     // Input values,
02999     const IPv4Net&  group_prefix,
03000     const bool& is_scope_zone,
03001     const string&   vif_name,
03002     const IPv4& vif_addr,
03003     const uint32_t& rp_priority,
03004     const uint32_t& rp_holdtime) = 0;
03005 #ifdef XORP_ENABLE_ASYNC_SERVER
03006     typedef
03007     XorpCallback1<void, const XrlCmdError &>::RefPtr
03008     Pim01AddConfigCandRp4RF;
03009 
03010     class Pim01AddConfigCandRp4CB {
03011         Pim01AddConfigCandRp4RF cb;
03012 
03013     public:
03014         operator const Pim01AddConfigCandRp4RF& () const { return cb; }
03015         const Pim01AddConfigCandRp4RF& operator ->() const { return cb; }
03016         Pim01AddConfigCandRp4CB(const Pim01AddConfigCandRp4RF& cb)
03017           : cb(cb) { }
03018 
03019         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
03020 
03021         void respond() const {
03022             cb->dispatch(XrlCmdError::OKAY());
03023         }
03024     };
03025 
03026     struct Pim01AddConfigCandRp4Rsp :
03027       public Pim01AddConfigCandRp4CB {
03028         Pim01AddConfigCandRp4Rsp(const Pim01AddConfigCandRp4RF& cb)
03029           : Pim01AddConfigCandRp4CB(cb) { }
03030 
03031     };
03032 
03033     virtual void async_pim_0_1_add_config_cand_rp4
03034        (
03035     const IPv4Net&  group_prefix,
03036     const bool& is_scope_zone,
03037     const string&   vif_name,
03038     const IPv4& vif_addr,
03039     const uint32_t& rp_priority,
03040     const uint32_t& rp_holdtime,
03041     Pim01AddConfigCandRp4CB);
03042 #endif
03043 
03044     virtual XrlCmdError pim_0_1_add_config_cand_rp6(
03045     // Input values,
03046     const IPv6Net&  group_prefix,
03047     const bool& is_scope_zone,
03048     const string&   vif_name,
03049     const IPv6& vif_addr,
03050     const uint32_t& rp_priority,
03051     const uint32_t& rp_holdtime) = 0;
03052 #ifdef XORP_ENABLE_ASYNC_SERVER
03053     typedef
03054     XorpCallback1<void, const XrlCmdError &>::RefPtr
03055     Pim01AddConfigCandRp6RF;
03056 
03057     class Pim01AddConfigCandRp6CB {
03058         Pim01AddConfigCandRp6RF cb;
03059 
03060     public:
03061         operator const Pim01AddConfigCandRp6RF& () const { return cb; }
03062         const Pim01AddConfigCandRp6RF& operator ->() const { return cb; }
03063         Pim01AddConfigCandRp6CB(const Pim01AddConfigCandRp6RF& cb)
03064           : cb(cb) { }
03065 
03066         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
03067 
03068         void respond() const {
03069             cb->dispatch(XrlCmdError::OKAY());
03070         }
03071     };
03072 
03073     struct Pim01AddConfigCandRp6Rsp :
03074       public Pim01AddConfigCandRp6CB {
03075         Pim01AddConfigCandRp6Rsp(const Pim01AddConfigCandRp6RF& cb)
03076           : Pim01AddConfigCandRp6CB(cb) { }
03077 
03078     };
03079 
03080     virtual void async_pim_0_1_add_config_cand_rp6
03081        (
03082     const IPv6Net&  group_prefix,
03083     const bool& is_scope_zone,
03084     const string&   vif_name,
03085     const IPv6& vif_addr,
03086     const uint32_t& rp_priority,
03087     const uint32_t& rp_holdtime,
03088     Pim01AddConfigCandRp6CB);
03089 #endif
03090 
03091     virtual XrlCmdError pim_0_1_delete_config_cand_rp6(
03092     // Input values,
03093     const IPv6Net&  group_prefix,
03094     const bool& is_scope_zone,
03095     const string&   vif_name,
03096     const IPv6& vif_addr) = 0;
03097 #ifdef XORP_ENABLE_ASYNC_SERVER
03098     typedef
03099     XorpCallback1<void, const XrlCmdError &>::RefPtr
03100     Pim01DeleteConfigCandRp6RF;
03101 
03102     class Pim01DeleteConfigCandRp6CB {
03103         Pim01DeleteConfigCandRp6RF cb;
03104 
03105     public:
03106         operator const Pim01DeleteConfigCandRp6RF& () const { return cb; }
03107         const Pim01DeleteConfigCandRp6RF& operator ->() const { return cb; }
03108         Pim01DeleteConfigCandRp6CB(const Pim01DeleteConfigCandRp6RF& cb)
03109           : cb(cb) { }
03110 
03111         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
03112 
03113         void respond() const {
03114             cb->dispatch(XrlCmdError::OKAY());
03115         }
03116     };
03117 
03118     struct Pim01DeleteConfigCandRp6Rsp :
03119       public Pim01DeleteConfigCandRp6CB {
03120         Pim01DeleteConfigCandRp6Rsp(const Pim01DeleteConfigCandRp6RF& cb)
03121           : Pim01DeleteConfigCandRp6CB(cb) { }
03122 
03123     };
03124 
03125     virtual void async_pim_0_1_delete_config_cand_rp6
03126        (
03127     const IPv6Net&  group_prefix,
03128     const bool& is_scope_zone,
03129     const string&   vif_name,
03130     const IPv6& vif_addr,
03131     Pim01DeleteConfigCandRp6CB);
03132 #endif
03133 
03134     virtual XrlCmdError pim_0_1_delete_config_cand_rp4(
03135     // Input values,
03136     const IPv4Net&  group_prefix,
03137     const bool& is_scope_zone,
03138     const string&   vif_name,
03139     const IPv4& vif_addr) = 0;
03140 #ifdef XORP_ENABLE_ASYNC_SERVER
03141     typedef
03142     XorpCallback1<void, const XrlCmdError &>::RefPtr
03143     Pim01DeleteConfigCandRp4RF;
03144 
03145     class Pim01DeleteConfigCandRp4CB {
03146         Pim01DeleteConfigCandRp4RF cb;
03147 
03148     public:
03149         operator const Pim01DeleteConfigCandRp4RF& () const { return cb; }
03150         const Pim01DeleteConfigCandRp4RF& operator ->() const { return cb; }
03151         Pim01DeleteConfigCandRp4CB(const Pim01DeleteConfigCandRp4RF& cb)
03152           : cb(cb) { }
03153 
03154         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
03155 
03156         void respond() const {
03157             cb->dispatch(XrlCmdError::OKAY());
03158         }
03159     };
03160 
03161     struct Pim01DeleteConfigCandRp4Rsp :
03162       public Pim01DeleteConfigCandRp4CB {
03163         Pim01DeleteConfigCandRp4Rsp(const Pim01DeleteConfigCandRp4RF& cb)
03164           : Pim01DeleteConfigCandRp4CB(cb) { }
03165 
03166     };
03167 
03168     virtual void async_pim_0_1_delete_config_cand_rp4
03169        (
03170     const IPv4Net&  group_prefix,
03171     const bool& is_scope_zone,
03172     const string&   vif_name,
03173     const IPv4& vif_addr,
03174     Pim01DeleteConfigCandRp4CB);
03175 #endif
03176 
03192     virtual XrlCmdError pim_0_1_add_config_static_rp4(
03193     // Input values,
03194     const IPv4Net&  group_prefix,
03195     const IPv4& rp_addr,
03196     const uint32_t& rp_priority,
03197     const uint32_t& hash_mask_len) = 0;
03198 #ifdef XORP_ENABLE_ASYNC_SERVER
03199     typedef
03200     XorpCallback1<void, const XrlCmdError &>::RefPtr
03201     Pim01AddConfigStaticRp4RF;
03202 
03203     class Pim01AddConfigStaticRp4CB {
03204         Pim01AddConfigStaticRp4RF cb;
03205 
03206     public:
03207         operator const Pim01AddConfigStaticRp4RF& () const { return cb; }
03208         const Pim01AddConfigStaticRp4RF& operator ->() const { return cb; }
03209         Pim01AddConfigStaticRp4CB(const Pim01AddConfigStaticRp4RF& cb)
03210           : cb(cb) { }
03211 
03212         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
03213 
03214         void respond() const {
03215             cb->dispatch(XrlCmdError::OKAY());
03216         }
03217     };
03218 
03219     struct Pim01AddConfigStaticRp4Rsp :
03220       public Pim01AddConfigStaticRp4CB {
03221         Pim01AddConfigStaticRp4Rsp(const Pim01AddConfigStaticRp4RF& cb)
03222           : Pim01AddConfigStaticRp4CB(cb) { }
03223 
03224     };
03225 
03226     virtual void async_pim_0_1_add_config_static_rp4
03227        (
03228     const IPv4Net&  group_prefix,
03229     const IPv4& rp_addr,
03230     const uint32_t& rp_priority,
03231     const uint32_t& hash_mask_len,
03232     Pim01AddConfigStaticRp4CB);
03233 #endif
03234 
03235     virtual XrlCmdError pim_0_1_add_config_static_rp6(
03236     // Input values,
03237     const IPv6Net&  group_prefix,
03238     const IPv6& rp_addr,
03239     const uint32_t& rp_priority,
03240     const uint32_t& hash_mask_len) = 0;
03241 #ifdef XORP_ENABLE_ASYNC_SERVER
03242     typedef
03243     XorpCallback1<void, const XrlCmdError &>::RefPtr
03244     Pim01AddConfigStaticRp6RF;
03245 
03246     class Pim01AddConfigStaticRp6CB {
03247         Pim01AddConfigStaticRp6RF cb;
03248 
03249     public:
03250         operator const Pim01AddConfigStaticRp6RF& () const { return cb; }
03251         const Pim01AddConfigStaticRp6RF& operator ->() const { return cb; }
03252         Pim01AddConfigStaticRp6CB(const Pim01AddConfigStaticRp6RF& cb)
03253           : cb(cb) { }
03254 
03255         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
03256 
03257         void respond() const {
03258             cb->dispatch(XrlCmdError::OKAY());
03259         }
03260     };
03261 
03262     struct Pim01AddConfigStaticRp6Rsp :
03263       public Pim01AddConfigStaticRp6CB {
03264         Pim01AddConfigStaticRp6Rsp(const Pim01AddConfigStaticRp6RF& cb)
03265           : Pim01AddConfigStaticRp6CB(cb) { }
03266 
03267     };
03268 
03269     virtual void async_pim_0_1_add_config_static_rp6
03270        (
03271     const IPv6Net&  group_prefix,
03272     const IPv6& rp_addr,
03273     const uint32_t& rp_priority,
03274     const uint32_t& hash_mask_len,
03275     Pim01AddConfigStaticRp6CB);
03276 #endif
03277 
03278     virtual XrlCmdError pim_0_1_delete_config_static_rp6(
03279     // Input values,
03280     const IPv6Net&  group_prefix,
03281     const IPv6& rp_addr) = 0;
03282 #ifdef XORP_ENABLE_ASYNC_SERVER
03283     typedef
03284     XorpCallback1<void, const XrlCmdError &>::RefPtr
03285     Pim01DeleteConfigStaticRp6RF;
03286 
03287     class Pim01DeleteConfigStaticRp6CB {
03288         Pim01DeleteConfigStaticRp6RF cb;
03289 
03290     public:
03291         operator const Pim01DeleteConfigStaticRp6RF& () const { return cb; }
03292         const Pim01DeleteConfigStaticRp6RF& operator ->() const { return cb; }
03293         Pim01DeleteConfigStaticRp6CB(const Pim01DeleteConfigStaticRp6RF& cb)
03294           : cb(cb) { }
03295 
03296         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
03297 
03298         void respond() const {
03299             cb->dispatch(XrlCmdError::OKAY());
03300         }
03301     };
03302 
03303     struct Pim01DeleteConfigStaticRp6Rsp :
03304       public Pim01DeleteConfigStaticRp6CB {
03305         Pim01DeleteConfigStaticRp6Rsp(const Pim01DeleteConfigStaticRp6RF& cb)
03306           : Pim01DeleteConfigStaticRp6CB(cb) { }
03307 
03308     };
03309 
03310     virtual void async_pim_0_1_delete_config_static_rp6
03311        (
03312     const IPv6Net&  group_prefix,
03313     const IPv6& rp_addr,
03314     Pim01DeleteConfigStaticRp6CB);
03315 #endif
03316 
03317     virtual XrlCmdError pim_0_1_delete_config_all_static_group_prefixes_rp6(
03318     // Input values,
03319     const IPv6& rp_addr) = 0;
03320 #ifdef XORP_ENABLE_ASYNC_SERVER
03321     typedef
03322     XorpCallback1<void, const XrlCmdError &>::RefPtr
03323     Pim01DeleteConfigAllStaticGroupPrefixesRp6RF;
03324 
03325     class Pim01DeleteConfigAllStaticGroupPrefixesRp6CB {
03326         Pim01DeleteConfigAllStaticGroupPrefixesRp6RF cb;
03327 
03328     public:
03329         operator const Pim01DeleteConfigAllStaticGroupPrefixesRp6RF& () const { return cb; }
03330         const Pim01DeleteConfigAllStaticGroupPrefixesRp6RF& operator ->() const { return cb; }
03331         Pim01DeleteConfigAllStaticGroupPrefixesRp6CB(const Pim01DeleteConfigAllStaticGroupPrefixesRp6RF& cb)
03332           : cb(cb) { }
03333 
03334         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
03335 
03336         void respond() const {
03337             cb->dispatch(XrlCmdError::OKAY());
03338         }
03339     };
03340 
03341     struct Pim01DeleteConfigAllStaticGroupPrefixesRp6Rsp :
03342       public Pim01DeleteConfigAllStaticGroupPrefixesRp6CB {
03343         Pim01DeleteConfigAllStaticGroupPrefixesRp6Rsp(const Pim01DeleteConfigAllStaticGroupPrefixesRp6RF& cb)
03344           : Pim01DeleteConfigAllStaticGroupPrefixesRp6CB(cb) { }
03345 
03346     };
03347 
03348     virtual void async_pim_0_1_delete_config_all_static_group_prefixes_rp6
03349        (
03350     const IPv6& rp_addr,
03351     Pim01DeleteConfigAllStaticGroupPrefixesRp6CB);
03352 #endif
03353 
03354     virtual XrlCmdError pim_0_1_delete_config_static_rp4(
03355     // Input values,
03356     const IPv4Net&  group_prefix,
03357     const IPv4& rp_addr) = 0;
03358 #ifdef XORP_ENABLE_ASYNC_SERVER
03359     typedef
03360     XorpCallback1<void, const XrlCmdError &>::RefPtr
03361     Pim01DeleteConfigStaticRp4RF;
03362 
03363     class Pim01DeleteConfigStaticRp4CB {
03364         Pim01DeleteConfigStaticRp4RF cb;
03365 
03366     public:
03367         operator const Pim01DeleteConfigStaticRp4RF& () const { return cb; }
03368         const Pim01DeleteConfigStaticRp4RF& operator ->() const { return cb; }
03369         Pim01DeleteConfigStaticRp4CB(const Pim01DeleteConfigStaticRp4RF& cb)
03370           : cb(cb) { }
03371 
03372         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
03373 
03374         void respond() const {
03375             cb->dispatch(XrlCmdError::OKAY());
03376         }
03377     };
03378 
03379     struct Pim01DeleteConfigStaticRp4Rsp :
03380       public Pim01DeleteConfigStaticRp4CB {
03381         Pim01DeleteConfigStaticRp4Rsp(const Pim01DeleteConfigStaticRp4RF& cb)
03382           : Pim01DeleteConfigStaticRp4CB(cb) { }
03383 
03384     };
03385 
03386     virtual void async_pim_0_1_delete_config_static_rp4
03387        (
03388     const IPv4Net&  group_prefix,
03389     const IPv4& rp_addr,
03390     Pim01DeleteConfigStaticRp4CB);
03391 #endif
03392 
03393     virtual XrlCmdError pim_0_1_delete_config_all_static_group_prefixes_rp4(
03394     // Input values,
03395     const IPv4& rp_addr) = 0;
03396 #ifdef XORP_ENABLE_ASYNC_SERVER
03397     typedef
03398     XorpCallback1<void, const XrlCmdError &>::RefPtr
03399     Pim01DeleteConfigAllStaticGroupPrefixesRp4RF;
03400 
03401     class Pim01DeleteConfigAllStaticGroupPrefixesRp4CB {
03402         Pim01DeleteConfigAllStaticGroupPrefixesRp4RF cb;
03403 
03404     public:
03405         operator const Pim01DeleteConfigAllStaticGroupPrefixesRp4RF& () const { return cb; }
03406         const Pim01DeleteConfigAllStaticGroupPrefixesRp4RF& operator ->() const { return cb; }
03407         Pim01DeleteConfigAllStaticGroupPrefixesRp4CB(const Pim01DeleteConfigAllStaticGroupPrefixesRp4RF& cb)
03408           : cb(cb) { }
03409 
03410         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
03411 
03412         void respond() const {
03413             cb->dispatch(XrlCmdError::OKAY());
03414         }
03415     };
03416 
03417     struct Pim01DeleteConfigAllStaticGroupPrefixesRp4Rsp :
03418       public Pim01DeleteConfigAllStaticGroupPrefixesRp4CB {
03419         Pim01DeleteConfigAllStaticGroupPrefixesRp4Rsp(const Pim01DeleteConfigAllStaticGroupPrefixesRp4RF& cb)
03420           : Pim01DeleteConfigAllStaticGroupPrefixesRp4CB(cb) { }
03421 
03422     };
03423 
03424     virtual void async_pim_0_1_delete_config_all_static_group_prefixes_rp4
03425        (
03426     const IPv4& rp_addr,
03427     Pim01DeleteConfigAllStaticGroupPrefixesRp4CB);
03428 #endif
03429 
03430     virtual XrlCmdError pim_0_1_delete_config_all_static_rps() = 0;
03431 #ifdef XORP_ENABLE_ASYNC_SERVER
03432     typedef
03433     XorpCallback1<void, const XrlCmdError &>::RefPtr
03434     Pim01DeleteConfigAllStaticRpsRF;
03435 
03436     class Pim01DeleteConfigAllStaticRpsCB {
03437         Pim01DeleteConfigAllStaticRpsRF cb;
03438 
03439     public:
03440         operator const Pim01DeleteConfigAllStaticRpsRF& () const { return cb; }
03441         const Pim01DeleteConfigAllStaticRpsRF& operator ->() const { return cb; }
03442         Pim01DeleteConfigAllStaticRpsCB(const Pim01DeleteConfigAllStaticRpsRF& cb)
03443           : cb(cb) { }
03444 
03445         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
03446 
03447         void respond() const {
03448             cb->dispatch(XrlCmdError::OKAY());
03449         }
03450     };
03451 
03452     struct Pim01DeleteConfigAllStaticRpsRsp :
03453       public Pim01DeleteConfigAllStaticRpsCB {
03454         Pim01DeleteConfigAllStaticRpsRsp(const Pim01DeleteConfigAllStaticRpsRF& cb)
03455           : Pim01DeleteConfigAllStaticRpsCB(cb) { }
03456 
03457     };
03458 
03459     virtual void async_pim_0_1_delete_config_all_static_rps
03460        (
03461     Pim01DeleteConfigAllStaticRpsCB);
03462 #endif
03463 
03464     virtual XrlCmdError pim_0_1_config_static_rp_done() = 0;
03465 #ifdef XORP_ENABLE_ASYNC_SERVER
03466     typedef
03467     XorpCallback1<void, const XrlCmdError &>::RefPtr
03468     Pim01ConfigStaticRpDoneRF;
03469 
03470     class Pim01ConfigStaticRpDoneCB {
03471         Pim01ConfigStaticRpDoneRF cb;
03472 
03473     public:
03474         operator const Pim01ConfigStaticRpDoneRF& () const { return cb; }
03475         const Pim01ConfigStaticRpDoneRF& operator ->() const { return cb; }
03476         Pim01ConfigStaticRpDoneCB(const Pim01ConfigStaticRpDoneRF& cb)
03477           : cb(cb) { }
03478 
03479         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
03480 
03481         void respond() const {
03482             cb->dispatch(XrlCmdError::OKAY());
03483         }
03484     };
03485 
03486     struct Pim01ConfigStaticRpDoneRsp :
03487       public Pim01ConfigStaticRpDoneCB {
03488         Pim01ConfigStaticRpDoneRsp(const Pim01ConfigStaticRpDoneRF& cb)
03489           : Pim01ConfigStaticRpDoneCB(cb) { }
03490 
03491     };
03492 
03493     virtual void async_pim_0_1_config_static_rp_done
03494        (
03495     Pim01ConfigStaticRpDoneCB);
03496 #endif
03497 
03507     virtual XrlCmdError pim_0_1_get_vif_proto_version(
03508     // Input values,
03509     const string&   vif_name,
03510     // Output values,
03511     uint32_t&   proto_version) = 0;
03512 #ifdef XORP_ENABLE_ASYNC_SERVER
03513     typedef
03514     XorpCallback2<void, const XrlCmdError &,
03515     const uint32_t*>::RefPtr
03516     Pim01GetVifProtoVersionRF;
03517 
03518     class Pim01GetVifProtoVersionCB {
03519         Pim01GetVifProtoVersionRF cb;
03520 
03521     public:
03522         operator const Pim01GetVifProtoVersionRF& () const { return cb; }
03523         const Pim01GetVifProtoVersionRF& operator ->() const { return cb; }
03524         Pim01GetVifProtoVersionCB(const Pim01GetVifProtoVersionRF& cb)
03525           : cb(cb) { }
03526 
03527         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
03528 
03529         void respond(const uint32_t& arg_proto_version) const {
03530             cb->dispatch(XrlCmdError::OKAY(),
03531                          &arg_proto_version);
03532         }
03533     };
03534 
03535     struct Pim01GetVifProtoVersionRsp :
03536       public Pim01GetVifProtoVersionCB {
03537         struct args_str {
03538             uint32_t proto_version;
03539         };
03540 
03541     private:
03542         args_str args;
03543 
03544     public:
03545         Pim01GetVifProtoVersionRsp(const Pim01GetVifProtoVersionRF& cb)
03546           : Pim01GetVifProtoVersionCB(cb) { }
03547 
03548         void respond() const {
03549             Pim01GetVifProtoVersionCB::
03550             respond(args.proto_version);
03551         }
03552 
03553         args_str* operator ->() {
03554             return &args;
03555         }
03556     };
03557 
03558     virtual void async_pim_0_1_get_vif_proto_version
03559        (
03560     const string&   vif_name,
03561     Pim01GetVifProtoVersionCB);
03562 #endif
03563 
03573     virtual XrlCmdError pim_0_1_set_vif_proto_version(
03574     // Input values,
03575     const string&   vif_name,
03576     const uint32_t& proto_version) = 0;
03577 #ifdef XORP_ENABLE_ASYNC_SERVER
03578     typedef
03579     XorpCallback1<void, const XrlCmdError &>::RefPtr
03580     Pim01SetVifProtoVersionRF;
03581 
03582     class Pim01SetVifProtoVersionCB {
03583         Pim01SetVifProtoVersionRF cb;
03584 
03585     public:
03586         operator const Pim01SetVifProtoVersionRF& () const { return cb; }
03587         const Pim01SetVifProtoVersionRF& operator ->() const { return cb; }
03588         Pim01SetVifProtoVersionCB(const Pim01SetVifProtoVersionRF& cb)
03589           : cb(cb) { }
03590 
03591         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
03592 
03593         void respond() const {
03594             cb->dispatch(XrlCmdError::OKAY());
03595         }
03596     };
03597 
03598     struct Pim01SetVifProtoVersionRsp :
03599       public Pim01SetVifProtoVersionCB {
03600         Pim01SetVifProtoVersionRsp(const Pim01SetVifProtoVersionRF& cb)
03601           : Pim01SetVifProtoVersionCB(cb) { }
03602 
03603     };
03604 
03605     virtual void async_pim_0_1_set_vif_proto_version
03606        (
03607     const string&   vif_name,
03608     const uint32_t& proto_version,
03609     Pim01SetVifProtoVersionCB);
03610 #endif
03611 
03619     virtual XrlCmdError pim_0_1_reset_vif_proto_version(
03620     // Input values,
03621     const string&   vif_name) = 0;
03622 #ifdef XORP_ENABLE_ASYNC_SERVER
03623     typedef
03624     XorpCallback1<void, const XrlCmdError &>::RefPtr
03625     Pim01ResetVifProtoVersionRF;
03626 
03627     class Pim01ResetVifProtoVersionCB {
03628         Pim01ResetVifProtoVersionRF cb;
03629 
03630     public:
03631         operator const Pim01ResetVifProtoVersionRF& () const { return cb; }
03632         const Pim01ResetVifProtoVersionRF& operator ->() const { return cb; }
03633         Pim01ResetVifProtoVersionCB(const Pim01ResetVifProtoVersionRF& cb)
03634           : cb(cb) { }
03635 
03636         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
03637 
03638         void respond() const {
03639             cb->dispatch(XrlCmdError::OKAY());
03640         }
03641     };
03642 
03643     struct Pim01ResetVifProtoVersionRsp :
03644       public Pim01ResetVifProtoVersionCB {
03645         Pim01ResetVifProtoVersionRsp(const Pim01ResetVifProtoVersionRF& cb)
03646           : Pim01ResetVifProtoVersionCB(cb) { }
03647 
03648     };
03649 
03650     virtual void async_pim_0_1_reset_vif_proto_version
03651        (
03652     const string&   vif_name,
03653     Pim01ResetVifProtoVersionCB);
03654 #endif
03655 
03667     virtual XrlCmdError pim_0_1_get_vif_hello_triggered_delay(
03668     // Input values,
03669     const string&   vif_name,
03670     // Output values,
03671     uint32_t&   hello_triggered_delay) = 0;
03672 #ifdef XORP_ENABLE_ASYNC_SERVER
03673     typedef
03674     XorpCallback2<void, const XrlCmdError &,
03675     const uint32_t*>::RefPtr
03676     Pim01GetVifHelloTriggeredDelayRF;
03677 
03678     class Pim01GetVifHelloTriggeredDelayCB {
03679         Pim01GetVifHelloTriggeredDelayRF cb;
03680 
03681     public:
03682         operator const Pim01GetVifHelloTriggeredDelayRF& () const { return cb; }
03683         const Pim01GetVifHelloTriggeredDelayRF& operator ->() const { return cb; }
03684         Pim01GetVifHelloTriggeredDelayCB(const Pim01GetVifHelloTriggeredDelayRF& cb)
03685           : cb(cb) { }
03686 
03687         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
03688 
03689         void respond(const uint32_t& arg_hello_triggered_delay) const {
03690             cb->dispatch(XrlCmdError::OKAY(),
03691                          &arg_hello_triggered_delay);
03692         }
03693     };
03694 
03695     struct Pim01GetVifHelloTriggeredDelayRsp :
03696       public Pim01GetVifHelloTriggeredDelayCB {
03697         struct args_str {
03698             uint32_t hello_triggered_delay;
03699         };
03700 
03701     private:
03702         args_str args;
03703 
03704     public:
03705         Pim01GetVifHelloTriggeredDelayRsp(const Pim01GetVifHelloTriggeredDelayRF& cb)
03706           : Pim01GetVifHelloTriggeredDelayCB(cb) { }
03707 
03708         void respond() const {
03709             Pim01GetVifHelloTriggeredDelayCB::
03710             respond(args.hello_triggered_delay);
03711         }
03712 
03713         args_str* operator ->() {
03714             return &args;
03715         }
03716     };
03717 
03718     virtual void async_pim_0_1_get_vif_hello_triggered_delay
03719        (
03720     const string&   vif_name,
03721     Pim01GetVifHelloTriggeredDelayCB);
03722 #endif
03723 
03724     virtual XrlCmdError pim_0_1_set_vif_hello_triggered_delay(
03725     // Input values,
03726     const string&   vif_name,
03727     const uint32_t& hello_triggered_delay) = 0;
03728 #ifdef XORP_ENABLE_ASYNC_SERVER
03729     typedef
03730     XorpCallback1<void, const XrlCmdError &>::RefPtr
03731     Pim01SetVifHelloTriggeredDelayRF;
03732 
03733     class Pim01SetVifHelloTriggeredDelayCB {
03734         Pim01SetVifHelloTriggeredDelayRF cb;
03735 
03736     public:
03737         operator const Pim01SetVifHelloTriggeredDelayRF& () const { return cb; }
03738         const Pim01SetVifHelloTriggeredDelayRF& operator ->() const { return cb; }
03739         Pim01SetVifHelloTriggeredDelayCB(const Pim01SetVifHelloTriggeredDelayRF& cb)
03740           : cb(cb) { }
03741 
03742         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
03743 
03744         void respond() const {
03745             cb->dispatch(XrlCmdError::OKAY());
03746         }
03747     };
03748 
03749     struct Pim01SetVifHelloTriggeredDelayRsp :
03750       public Pim01SetVifHelloTriggeredDelayCB {
03751         Pim01SetVifHelloTriggeredDelayRsp(const Pim01SetVifHelloTriggeredDelayRF& cb)
03752           : Pim01SetVifHelloTriggeredDelayCB(cb) { }
03753 
03754     };
03755 
03756     virtual void async_pim_0_1_set_vif_hello_triggered_delay
03757        (
03758     const string&   vif_name,
03759     const uint32_t& hello_triggered_delay,
03760     Pim01SetVifHelloTriggeredDelayCB);
03761 #endif
03762 
03763     virtual XrlCmdError pim_0_1_reset_vif_hello_triggered_delay(
03764     // Input values,
03765     const string&   vif_name) = 0;
03766 #ifdef XORP_ENABLE_ASYNC_SERVER
03767     typedef
03768     XorpCallback1<void, const XrlCmdError &>::RefPtr
03769     Pim01ResetVifHelloTriggeredDelayRF;
03770 
03771     class Pim01ResetVifHelloTriggeredDelayCB {
03772         Pim01ResetVifHelloTriggeredDelayRF cb;
03773 
03774     public:
03775         operator const Pim01ResetVifHelloTriggeredDelayRF& () const { return cb; }
03776         const Pim01ResetVifHelloTriggeredDelayRF& operator ->() const { return cb; }
03777         Pim01ResetVifHelloTriggeredDelayCB(const Pim01ResetVifHelloTriggeredDelayRF& cb)
03778           : cb(cb) { }
03779 
03780         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
03781 
03782         void respond() const {
03783             cb->dispatch(XrlCmdError::OKAY());
03784         }
03785     };
03786 
03787     struct Pim01ResetVifHelloTriggeredDelayRsp :
03788       public Pim01ResetVifHelloTriggeredDelayCB {
03789         Pim01ResetVifHelloTriggeredDelayRsp(const Pim01ResetVifHelloTriggeredDelayRF& cb)
03790           : Pim01ResetVifHelloTriggeredDelayCB(cb) { }
03791 
03792     };
03793 
03794     virtual void async_pim_0_1_reset_vif_hello_triggered_delay
03795        (
03796     const string&   vif_name,
03797     Pim01ResetVifHelloTriggeredDelayCB);
03798 #endif
03799 
03800     virtual XrlCmdError pim_0_1_get_vif_hello_period(
03801     // Input values,
03802     const string&   vif_name,
03803     // Output values,
03804     uint32_t&   hello_period) = 0;
03805 #ifdef XORP_ENABLE_ASYNC_SERVER
03806     typedef
03807     XorpCallback2<void, const XrlCmdError &,
03808     const uint32_t*>::RefPtr
03809     Pim01GetVifHelloPeriodRF;
03810 
03811     class Pim01GetVifHelloPeriodCB {
03812         Pim01GetVifHelloPeriodRF cb;
03813 
03814     public:
03815         operator const Pim01GetVifHelloPeriodRF& () const { return cb; }
03816         const Pim01GetVifHelloPeriodRF& operator ->() const { return cb; }
03817         Pim01GetVifHelloPeriodCB(const Pim01GetVifHelloPeriodRF& cb)
03818           : cb(cb) { }
03819 
03820         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
03821 
03822         void respond(const uint32_t& arg_hello_period) const {
03823             cb->dispatch(XrlCmdError::OKAY(),
03824                          &arg_hello_period);
03825         }
03826     };
03827 
03828     struct Pim01GetVifHelloPeriodRsp :
03829       public Pim01GetVifHelloPeriodCB {
03830         struct args_str {
03831             uint32_t hello_period;
03832         };
03833 
03834     private:
03835         args_str args;
03836 
03837     public:
03838         Pim01GetVifHelloPeriodRsp(const Pim01GetVifHelloPeriodRF& cb)
03839           : Pim01GetVifHelloPeriodCB(cb) { }
03840 
03841         void respond() const {
03842             Pim01GetVifHelloPeriodCB::
03843             respond(args.hello_period);
03844         }
03845 
03846         args_str* operator ->() {
03847             return &args;
03848         }
03849     };
03850 
03851     virtual void async_pim_0_1_get_vif_hello_period
03852        (
03853     const string&   vif_name,
03854     Pim01GetVifHelloPeriodCB);
03855 #endif
03856 
03857     virtual XrlCmdError pim_0_1_set_vif_hello_period(
03858     // Input values,
03859     const string&   vif_name,
03860     const uint32_t& hello_period) = 0;
03861 #ifdef XORP_ENABLE_ASYNC_SERVER
03862     typedef
03863     XorpCallback1<void, const XrlCmdError &>::RefPtr
03864     Pim01SetVifHelloPeriodRF;
03865 
03866     class Pim01SetVifHelloPeriodCB {
03867         Pim01SetVifHelloPeriodRF cb;
03868 
03869     public:
03870         operator const Pim01SetVifHelloPeriodRF& () const { return cb; }
03871         const Pim01SetVifHelloPeriodRF& operator ->() const { return cb; }
03872         Pim01SetVifHelloPeriodCB(const Pim01SetVifHelloPeriodRF& cb)
03873           : cb(cb) { }
03874 
03875         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
03876 
03877         void respond() const {
03878             cb->dispatch(XrlCmdError::OKAY());
03879         }
03880     };
03881 
03882     struct Pim01SetVifHelloPeriodRsp :
03883       public Pim01SetVifHelloPeriodCB {
03884         Pim01SetVifHelloPeriodRsp(const Pim01SetVifHelloPeriodRF& cb)
03885           : Pim01SetVifHelloPeriodCB(cb) { }
03886 
03887     };
03888 
03889     virtual void async_pim_0_1_set_vif_hello_period
03890        (
03891     const string&   vif_name,
03892     const uint32_t& hello_period,
03893     Pim01SetVifHelloPeriodCB);
03894 #endif
03895 
03896     virtual XrlCmdError pim_0_1_reset_vif_hello_period(
03897     // Input values,
03898     const string&   vif_name) = 0;
03899 #ifdef XORP_ENABLE_ASYNC_SERVER
03900     typedef
03901     XorpCallback1<void, const XrlCmdError &>::RefPtr
03902     Pim01ResetVifHelloPeriodRF;
03903 
03904     class Pim01ResetVifHelloPeriodCB {
03905         Pim01ResetVifHelloPeriodRF cb;
03906 
03907     public:
03908         operator const Pim01ResetVifHelloPeriodRF& () const { return cb; }
03909         const Pim01ResetVifHelloPeriodRF& operator ->() const { return cb; }
03910         Pim01ResetVifHelloPeriodCB(const Pim01ResetVifHelloPeriodRF& cb)
03911           : cb(cb) { }
03912 
03913         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
03914 
03915         void respond() const {
03916             cb->dispatch(XrlCmdError::OKAY());
03917         }
03918     };
03919 
03920     struct Pim01ResetVifHelloPeriodRsp :
03921       public Pim01ResetVifHelloPeriodCB {
03922         Pim01ResetVifHelloPeriodRsp(const Pim01ResetVifHelloPeriodRF& cb)
03923           : Pim01ResetVifHelloPeriodCB(cb) { }
03924 
03925     };
03926 
03927     virtual void async_pim_0_1_reset_vif_hello_period
03928        (
03929     const string&   vif_name,
03930     Pim01ResetVifHelloPeriodCB);
03931 #endif
03932 
03933     virtual XrlCmdError pim_0_1_get_vif_hello_holdtime(
03934     // Input values,
03935     const string&   vif_name,
03936     // Output values,
03937     uint32_t&   hello_holdtime) = 0;
03938 #ifdef XORP_ENABLE_ASYNC_SERVER
03939     typedef
03940     XorpCallback2<void, const XrlCmdError &,
03941     const uint32_t*>::RefPtr
03942     Pim01GetVifHelloHoldtimeRF;
03943 
03944     class Pim01GetVifHelloHoldtimeCB {
03945         Pim01GetVifHelloHoldtimeRF cb;
03946 
03947     public:
03948         operator const Pim01GetVifHelloHoldtimeRF& () const { return cb; }
03949         const Pim01GetVifHelloHoldtimeRF& operator ->() const { return cb; }
03950         Pim01GetVifHelloHoldtimeCB(const Pim01GetVifHelloHoldtimeRF& cb)
03951           : cb(cb) { }
03952 
03953         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
03954 
03955         void respond(const uint32_t& arg_hello_holdtime) const {
03956             cb->dispatch(XrlCmdError::OKAY(),
03957                          &arg_hello_holdtime);
03958         }
03959     };
03960 
03961     struct Pim01GetVifHelloHoldtimeRsp :
03962       public Pim01GetVifHelloHoldtimeCB {
03963         struct args_str {
03964             uint32_t hello_holdtime;
03965         };
03966 
03967     private:
03968         args_str args;
03969 
03970     public:
03971         Pim01GetVifHelloHoldtimeRsp(const Pim01GetVifHelloHoldtimeRF& cb)
03972           : Pim01GetVifHelloHoldtimeCB(cb) { }
03973 
03974         void respond() const {
03975             Pim01GetVifHelloHoldtimeCB::
03976             respond(args.hello_holdtime);
03977         }
03978 
03979         args_str* operator ->() {
03980             return &args;
03981         }
03982     };
03983 
03984     virtual void async_pim_0_1_get_vif_hello_holdtime
03985        (
03986     const string&   vif_name,
03987     Pim01GetVifHelloHoldtimeCB);
03988 #endif
03989 
03990     virtual XrlCmdError pim_0_1_set_vif_hello_holdtime(
03991     // Input values,
03992     const string&   vif_name,
03993     const uint32_t& hello_holdtime) = 0;
03994 #ifdef XORP_ENABLE_ASYNC_SERVER
03995     typedef
03996     XorpCallback1<void, const XrlCmdError &>::RefPtr
03997     Pim01SetVifHelloHoldtimeRF;
03998 
03999     class Pim01SetVifHelloHoldtimeCB {
04000         Pim01SetVifHelloHoldtimeRF cb;
04001 
04002     public:
04003         operator const Pim01SetVifHelloHoldtimeRF& () const { return cb; }
04004         const Pim01SetVifHelloHoldtimeRF& operator ->() const { return cb; }
04005         Pim01SetVifHelloHoldtimeCB(const Pim01SetVifHelloHoldtimeRF& cb)
04006           : cb(cb) { }
04007 
04008         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
04009 
04010         void respond() const {
04011             cb->dispatch(XrlCmdError::OKAY());
04012         }
04013     };
04014 
04015     struct Pim01SetVifHelloHoldtimeRsp :
04016       public Pim01SetVifHelloHoldtimeCB {
04017         Pim01SetVifHelloHoldtimeRsp(const Pim01SetVifHelloHoldtimeRF& cb)
04018           : Pim01SetVifHelloHoldtimeCB(cb) { }
04019 
04020     };
04021 
04022     virtual void async_pim_0_1_set_vif_hello_holdtime
04023        (
04024     const string&   vif_name,
04025     const uint32_t& hello_holdtime,
04026     Pim01SetVifHelloHoldtimeCB);
04027 #endif
04028 
04029     virtual XrlCmdError pim_0_1_reset_vif_hello_holdtime(
04030     // Input values,
04031     const string&   vif_name) = 0;
04032 #ifdef XORP_ENABLE_ASYNC_SERVER
04033     typedef
04034     XorpCallback1<void, const XrlCmdError &>::RefPtr
04035     Pim01ResetVifHelloHoldtimeRF;
04036 
04037     class Pim01ResetVifHelloHoldtimeCB {
04038         Pim01ResetVifHelloHoldtimeRF cb;
04039 
04040     public:
04041         operator const Pim01ResetVifHelloHoldtimeRF& () const { return cb; }
04042         const Pim01ResetVifHelloHoldtimeRF& operator ->() const { return cb; }
04043         Pim01ResetVifHelloHoldtimeCB(const Pim01ResetVifHelloHoldtimeRF& cb)
04044           : cb(cb) { }
04045 
04046         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
04047 
04048         void respond() const {
04049             cb->dispatch(XrlCmdError::OKAY());
04050         }
04051     };
04052 
04053     struct Pim01ResetVifHelloHoldtimeRsp :
04054       public Pim01ResetVifHelloHoldtimeCB {
04055         Pim01ResetVifHelloHoldtimeRsp(const Pim01ResetVifHelloHoldtimeRF& cb)
04056           : Pim01ResetVifHelloHoldtimeCB(cb) { }
04057 
04058     };
04059 
04060     virtual void async_pim_0_1_reset_vif_hello_holdtime
04061        (
04062     const string&   vif_name,
04063     Pim01ResetVifHelloHoldtimeCB);
04064 #endif
04065 
04066     virtual XrlCmdError pim_0_1_get_vif_dr_priority(
04067     // Input values,
04068     const string&   vif_name,
04069     // Output values,
04070     uint32_t&   dr_priority) = 0;
04071 #ifdef XORP_ENABLE_ASYNC_SERVER
04072     typedef
04073     XorpCallback2<void, const XrlCmdError &,
04074     const uint32_t*>::RefPtr
04075     Pim01GetVifDrPriorityRF;
04076 
04077     class Pim01GetVifDrPriorityCB {
04078         Pim01GetVifDrPriorityRF cb;
04079 
04080     public:
04081         operator const Pim01GetVifDrPriorityRF& () const { return cb; }
04082         const Pim01GetVifDrPriorityRF& operator ->() const { return cb; }
04083         Pim01GetVifDrPriorityCB(const Pim01GetVifDrPriorityRF& cb)
04084           : cb(cb) { }
04085 
04086         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
04087 
04088         void respond(const uint32_t& arg_dr_priority) const {
04089             cb->dispatch(XrlCmdError::OKAY(),
04090                          &arg_dr_priority);
04091         }
04092     };
04093 
04094     struct Pim01GetVifDrPriorityRsp :
04095       public Pim01GetVifDrPriorityCB {
04096         struct args_str {
04097             uint32_t dr_priority;
04098         };
04099 
04100     private:
04101         args_str args;
04102 
04103     public:
04104         Pim01GetVifDrPriorityRsp(const Pim01GetVifDrPriorityRF& cb)
04105           : Pim01GetVifDrPriorityCB(cb) { }
04106 
04107         void respond() const {
04108             Pim01GetVifDrPriorityCB::
04109             respond(args.dr_priority);
04110         }
04111 
04112         args_str* operator ->() {
04113             return &args;
04114         }
04115     };
04116 
04117     virtual void async_pim_0_1_get_vif_dr_priority
04118        (
04119     const string&   vif_name,
04120     Pim01GetVifDrPriorityCB);
04121 #endif
04122 
04123     virtual XrlCmdError pim_0_1_set_vif_dr_priority(
04124     // Input values,
04125     const string&   vif_name,
04126     const uint32_t& dr_priority) = 0;
04127 #ifdef XORP_ENABLE_ASYNC_SERVER
04128     typedef
04129     XorpCallback1<void, const XrlCmdError &>::RefPtr
04130     Pim01SetVifDrPriorityRF;
04131 
04132     class Pim01SetVifDrPriorityCB {
04133         Pim01SetVifDrPriorityRF cb;
04134 
04135     public:
04136         operator const Pim01SetVifDrPriorityRF& () const { return cb; }
04137         const Pim01SetVifDrPriorityRF& operator ->() const { return cb; }
04138         Pim01SetVifDrPriorityCB(const Pim01SetVifDrPriorityRF& cb)
04139           : cb(cb) { }
04140 
04141         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
04142 
04143         void respond() const {
04144             cb->dispatch(XrlCmdError::OKAY());
04145         }
04146     };
04147 
04148     struct Pim01SetVifDrPriorityRsp :
04149       public Pim01SetVifDrPriorityCB {
04150         Pim01SetVifDrPriorityRsp(const Pim01SetVifDrPriorityRF& cb)
04151           : Pim01SetVifDrPriorityCB(cb) { }
04152 
04153     };
04154 
04155     virtual void async_pim_0_1_set_vif_dr_priority
04156        (
04157     const string&   vif_name,
04158     const uint32_t& dr_priority,
04159     Pim01SetVifDrPriorityCB);
04160 #endif
04161 
04162     virtual XrlCmdError pim_0_1_reset_vif_dr_priority(
04163     // Input values,
04164     const string&   vif_name) = 0;
04165 #ifdef XORP_ENABLE_ASYNC_SERVER
04166     typedef
04167     XorpCallback1<void, const XrlCmdError &>::RefPtr
04168     Pim01ResetVifDrPriorityRF;
04169 
04170     class Pim01ResetVifDrPriorityCB {
04171         Pim01ResetVifDrPriorityRF cb;
04172 
04173     public:
04174         operator const Pim01ResetVifDrPriorityRF& () const { return cb; }
04175         const Pim01ResetVifDrPriorityRF& operator ->() const { return cb; }
04176         Pim01ResetVifDrPriorityCB(const Pim01ResetVifDrPriorityRF& cb)
04177           : cb(cb) { }
04178 
04179         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
04180 
04181         void respond() const {
04182             cb->dispatch(XrlCmdError::OKAY());
04183         }
04184     };
04185 
04186     struct Pim01ResetVifDrPriorityRsp :
04187       public Pim01ResetVifDrPriorityCB {
04188         Pim01ResetVifDrPriorityRsp(const Pim01ResetVifDrPriorityRF& cb)
04189           : Pim01ResetVifDrPriorityCB(cb) { }
04190 
04191     };
04192 
04193     virtual void async_pim_0_1_reset_vif_dr_priority
04194        (
04195     const string&   vif_name,
04196     Pim01ResetVifDrPriorityCB);
04197 #endif
04198 
04199     virtual XrlCmdError pim_0_1_get_vif_propagation_delay(
04200     // Input values,
04201     const string&   vif_name,
04202     // Output values,
04203     uint32_t&   propagation_delay) = 0;
04204 #ifdef XORP_ENABLE_ASYNC_SERVER
04205     typedef
04206     XorpCallback2<void, const XrlCmdError &,
04207     const uint32_t*>::RefPtr
04208     Pim01GetVifPropagationDelayRF;
04209 
04210     class Pim01GetVifPropagationDelayCB {
04211         Pim01GetVifPropagationDelayRF cb;
04212 
04213     public:
04214         operator const Pim01GetVifPropagationDelayRF& () const { return cb; }
04215         const Pim01GetVifPropagationDelayRF& operator ->() const { return cb; }
04216         Pim01GetVifPropagationDelayCB(const Pim01GetVifPropagationDelayRF& cb)
04217           : cb(cb) { }
04218 
04219         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
04220 
04221         void respond(const uint32_t& arg_propagation_delay) const {
04222             cb->dispatch(XrlCmdError::OKAY(),
04223                          &arg_propagation_delay);
04224         }
04225     };
04226 
04227     struct Pim01GetVifPropagationDelayRsp :
04228       public Pim01GetVifPropagationDelayCB {
04229         struct args_str {
04230             uint32_t propagation_delay;
04231         };
04232 
04233     private:
04234         args_str args;
04235 
04236     public:
04237         Pim01GetVifPropagationDelayRsp(const Pim01GetVifPropagationDelayRF& cb)
04238           : Pim01GetVifPropagationDelayCB(cb) { }
04239 
04240         void respond() const {
04241             Pim01GetVifPropagationDelayCB::
04242             respond(args.propagation_delay);
04243         }
04244 
04245         args_str* operator ->() {
04246             return &args;
04247         }
04248     };
04249 
04250     virtual void async_pim_0_1_get_vif_propagation_delay
04251        (
04252     const string&   vif_name,
04253     Pim01GetVifPropagationDelayCB);
04254 #endif
04255 
04256     virtual XrlCmdError pim_0_1_set_vif_propagation_delay(
04257     // Input values,
04258     const string&   vif_name,
04259     const uint32_t& propagation_delay) = 0;
04260 #ifdef XORP_ENABLE_ASYNC_SERVER
04261     typedef
04262     XorpCallback1<void, const XrlCmdError &>::RefPtr
04263     Pim01SetVifPropagationDelayRF;
04264 
04265     class Pim01SetVifPropagationDelayCB {
04266         Pim01SetVifPropagationDelayRF cb;
04267 
04268     public:
04269         operator const Pim01SetVifPropagationDelayRF& () const { return cb; }
04270         const Pim01SetVifPropagationDelayRF& operator ->() const { return cb; }
04271         Pim01SetVifPropagationDelayCB(const Pim01SetVifPropagationDelayRF& cb)
04272           : cb(cb) { }
04273 
04274         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
04275 
04276         void respond() const {
04277             cb->dispatch(XrlCmdError::OKAY());
04278         }
04279     };
04280 
04281     struct Pim01SetVifPropagationDelayRsp :
04282       public Pim01SetVifPropagationDelayCB {
04283         Pim01SetVifPropagationDelayRsp(const Pim01SetVifPropagationDelayRF& cb)
04284           : Pim01SetVifPropagationDelayCB(cb) { }
04285 
04286     };
04287 
04288     virtual void async_pim_0_1_set_vif_propagation_delay
04289        (
04290     const string&   vif_name,
04291     const uint32_t& propagation_delay,
04292     Pim01SetVifPropagationDelayCB);
04293 #endif
04294 
04295     virtual XrlCmdError pim_0_1_reset_vif_propagation_delay(
04296     // Input values,
04297     const string&   vif_name) = 0;
04298 #ifdef XORP_ENABLE_ASYNC_SERVER
04299     typedef
04300     XorpCallback1<void, const XrlCmdError &>::RefPtr
04301     Pim01ResetVifPropagationDelayRF;
04302 
04303     class Pim01ResetVifPropagationDelayCB {
04304         Pim01ResetVifPropagationDelayRF cb;
04305 
04306     public:
04307         operator const Pim01ResetVifPropagationDelayRF& () const { return cb; }
04308         const Pim01ResetVifPropagationDelayRF& operator ->() const { return cb; }
04309         Pim01ResetVifPropagationDelayCB(const Pim01ResetVifPropagationDelayRF& cb)
04310           : cb(cb) { }
04311 
04312         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
04313 
04314         void respond() const {
04315             cb->dispatch(XrlCmdError::OKAY());
04316         }
04317     };
04318 
04319     struct Pim01ResetVifPropagationDelayRsp :
04320       public Pim01ResetVifPropagationDelayCB {
04321         Pim01ResetVifPropagationDelayRsp(const Pim01ResetVifPropagationDelayRF& cb)
04322           : Pim01ResetVifPropagationDelayCB(cb) { }
04323 
04324     };
04325 
04326     virtual void async_pim_0_1_reset_vif_propagation_delay
04327        (
04328     const string&   vif_name,
04329     Pim01ResetVifPropagationDelayCB);
04330 #endif
04331 
04332     virtual XrlCmdError pim_0_1_get_vif_override_interval(
04333     // Input values,
04334     const string&   vif_name,
04335     // Output values,
04336     uint32_t&   override_interval) = 0;
04337 #ifdef XORP_ENABLE_ASYNC_SERVER
04338     typedef
04339     XorpCallback2<void, const XrlCmdError &,
04340     const uint32_t*>::RefPtr
04341     Pim01GetVifOverrideIntervalRF;
04342 
04343     class Pim01GetVifOverrideIntervalCB {
04344         Pim01GetVifOverrideIntervalRF cb;
04345 
04346     public:
04347         operator const Pim01GetVifOverrideIntervalRF& () const { return cb; }
04348         const Pim01GetVifOverrideIntervalRF& operator ->() const { return cb; }
04349         Pim01GetVifOverrideIntervalCB(const Pim01GetVifOverrideIntervalRF& cb)
04350           : cb(cb) { }
04351 
04352         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
04353 
04354         void respond(const uint32_t& arg_override_interval) const {
04355             cb->dispatch(XrlCmdError::OKAY(),
04356                          &arg_override_interval);
04357         }
04358     };
04359 
04360     struct Pim01GetVifOverrideIntervalRsp :
04361       public Pim01GetVifOverrideIntervalCB {
04362         struct args_str {
04363             uint32_t override_interval;
04364         };
04365 
04366     private:
04367         args_str args;
04368 
04369     public:
04370         Pim01GetVifOverrideIntervalRsp(const Pim01GetVifOverrideIntervalRF& cb)
04371           : Pim01GetVifOverrideIntervalCB(cb) { }
04372 
04373         void respond() const {
04374             Pim01GetVifOverrideIntervalCB::
04375             respond(args.override_interval);
04376         }
04377 
04378         args_str* operator ->() {
04379             return &args;
04380         }
04381     };
04382 
04383     virtual void async_pim_0_1_get_vif_override_interval
04384        (
04385     const string&   vif_name,
04386     Pim01GetVifOverrideIntervalCB);
04387 #endif
04388 
04389     virtual XrlCmdError pim_0_1_set_vif_override_interval(
04390     // Input values,
04391     const string&   vif_name,
04392     const uint32_t& override_interval) = 0;
04393 #ifdef XORP_ENABLE_ASYNC_SERVER
04394     typedef
04395     XorpCallback1<void, const XrlCmdError &>::RefPtr
04396     Pim01SetVifOverrideIntervalRF;
04397 
04398     class Pim01SetVifOverrideIntervalCB {
04399         Pim01SetVifOverrideIntervalRF cb;
04400 
04401     public:
04402         operator const Pim01SetVifOverrideIntervalRF& () const { return cb; }
04403         const Pim01SetVifOverrideIntervalRF& operator ->() const { return cb; }
04404         Pim01SetVifOverrideIntervalCB(const Pim01SetVifOverrideIntervalRF& cb)
04405           : cb(cb) { }
04406 
04407         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
04408 
04409         void respond() const {
04410             cb->dispatch(XrlCmdError::OKAY());
04411         }
04412     };
04413 
04414     struct Pim01SetVifOverrideIntervalRsp :
04415       public Pim01SetVifOverrideIntervalCB {
04416         Pim01SetVifOverrideIntervalRsp(const Pim01SetVifOverrideIntervalRF& cb)
04417           : Pim01SetVifOverrideIntervalCB(cb) { }
04418 
04419     };
04420 
04421     virtual void async_pim_0_1_set_vif_override_interval
04422        (
04423     const string&   vif_name,
04424     const uint32_t& override_interval,
04425     Pim01SetVifOverrideIntervalCB);
04426 #endif
04427 
04428     virtual XrlCmdError pim_0_1_reset_vif_override_interval(
04429     // Input values,
04430     const string&   vif_name) = 0;
04431 #ifdef XORP_ENABLE_ASYNC_SERVER
04432     typedef
04433     XorpCallback1<void, const XrlCmdError &>::RefPtr
04434     Pim01ResetVifOverrideIntervalRF;
04435 
04436     class Pim01ResetVifOverrideIntervalCB {
04437         Pim01ResetVifOverrideIntervalRF cb;
04438 
04439     public:
04440         operator const Pim01ResetVifOverrideIntervalRF& () const { return cb; }
04441         const Pim01ResetVifOverrideIntervalRF& operator ->() const { return cb; }
04442         Pim01ResetVifOverrideIntervalCB(const Pim01ResetVifOverrideIntervalRF& cb)
04443           : cb(cb) { }
04444 
04445         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
04446 
04447         void respond() const {
04448             cb->dispatch(XrlCmdError::OKAY());
04449         }
04450     };
04451 
04452     struct Pim01ResetVifOverrideIntervalRsp :
04453       public Pim01ResetVifOverrideIntervalCB {
04454         Pim01ResetVifOverrideIntervalRsp(const Pim01ResetVifOverrideIntervalRF& cb)
04455           : Pim01ResetVifOverrideIntervalCB(cb) { }
04456 
04457     };
04458 
04459     virtual void async_pim_0_1_reset_vif_override_interval
04460        (
04461     const string&   vif_name,
04462     Pim01ResetVifOverrideIntervalCB);
04463 #endif
04464 
04465     virtual XrlCmdError pim_0_1_get_vif_is_tracking_support_disabled(
04466     // Input values,
04467     const string&   vif_name,
04468     // Output values,
04469     bool&   is_tracking_support_disabled) = 0;
04470 #ifdef XORP_ENABLE_ASYNC_SERVER
04471     typedef
04472     XorpCallback2<void, const XrlCmdError &,
04473     const bool*>::RefPtr
04474     Pim01GetVifIsTrackingSupportDisabledRF;
04475 
04476     class Pim01GetVifIsTrackingSupportDisabledCB {
04477         Pim01GetVifIsTrackingSupportDisabledRF cb;
04478 
04479     public:
04480         operator const Pim01GetVifIsTrackingSupportDisabledRF& () const { return cb; }
04481         const Pim01GetVifIsTrackingSupportDisabledRF& operator ->() const { return cb; }
04482         Pim01GetVifIsTrackingSupportDisabledCB(const Pim01GetVifIsTrackingSupportDisabledRF& cb)
04483           : cb(cb) { }
04484 
04485         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
04486 
04487         void respond(const bool& arg_is_tracking_support_disabled) const {
04488             cb->dispatch(XrlCmdError::OKAY(),
04489                          &arg_is_tracking_support_disabled);
04490         }
04491     };
04492 
04493     struct Pim01GetVifIsTrackingSupportDisabledRsp :
04494       public Pim01GetVifIsTrackingSupportDisabledCB {
04495         struct args_str {
04496             bool is_tracking_support_disabled;
04497         };
04498 
04499     private:
04500         args_str args;
04501 
04502     public:
04503         Pim01GetVifIsTrackingSupportDisabledRsp(const Pim01GetVifIsTrackingSupportDisabledRF& cb)
04504           : Pim01GetVifIsTrackingSupportDisabledCB(cb) { }
04505 
04506         void respond() const {
04507             Pim01GetVifIsTrackingSupportDisabledCB::
04508             respond(args.is_tracking_support_disabled);
04509         }
04510 
04511         args_str* operator ->() {
04512             return &args;
04513         }
04514     };
04515 
04516     virtual void async_pim_0_1_get_vif_is_tracking_support_disabled
04517        (
04518     const string&   vif_name,
04519     Pim01GetVifIsTrackingSupportDisabledCB);
04520 #endif
04521 
04522     virtual XrlCmdError pim_0_1_set_vif_is_tracking_support_disabled(
04523     // Input values,
04524     const string&   vif_name,
04525     const bool& is_tracking_support_disabled) = 0;
04526 #ifdef XORP_ENABLE_ASYNC_SERVER
04527     typedef
04528     XorpCallback1<void, const XrlCmdError &>::RefPtr
04529     Pim01SetVifIsTrackingSupportDisabledRF;
04530 
04531     class Pim01SetVifIsTrackingSupportDisabledCB {
04532         Pim01SetVifIsTrackingSupportDisabledRF cb;
04533 
04534     public:
04535         operator const Pim01SetVifIsTrackingSupportDisabledRF& () const { return cb; }
04536         const Pim01SetVifIsTrackingSupportDisabledRF& operator ->() const { return cb; }
04537         Pim01SetVifIsTrackingSupportDisabledCB(const Pim01SetVifIsTrackingSupportDisabledRF& cb)
04538           : cb(cb) { }
04539 
04540         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
04541 
04542         void respond() const {
04543             cb->dispatch(XrlCmdError::OKAY());
04544         }
04545     };
04546 
04547     struct Pim01SetVifIsTrackingSupportDisabledRsp :
04548       public Pim01SetVifIsTrackingSupportDisabledCB {
04549         Pim01SetVifIsTrackingSupportDisabledRsp(const Pim01SetVifIsTrackingSupportDisabledRF& cb)
04550           : Pim01SetVifIsTrackingSupportDisabledCB(cb) { }
04551 
04552     };
04553 
04554     virtual void async_pim_0_1_set_vif_is_tracking_support_disabled
04555        (
04556     const string&   vif_name,
04557     const bool& is_tracking_support_disabled,
04558     Pim01SetVifIsTrackingSupportDisabledCB);
04559 #endif
04560 
04561     virtual XrlCmdError pim_0_1_reset_vif_is_tracking_support_disabled(
04562     // Input values,
04563     const string&   vif_name) = 0;
04564 #ifdef XORP_ENABLE_ASYNC_SERVER
04565     typedef
04566     XorpCallback1<void, const XrlCmdError &>::RefPtr
04567     Pim01ResetVifIsTrackingSupportDisabledRF;
04568 
04569     class Pim01ResetVifIsTrackingSupportDisabledCB {
04570         Pim01ResetVifIsTrackingSupportDisabledRF cb;
04571 
04572     public:
04573         operator const Pim01ResetVifIsTrackingSupportDisabledRF& () const { return cb; }
04574         const Pim01ResetVifIsTrackingSupportDisabledRF& operator ->() const { return cb; }
04575         Pim01ResetVifIsTrackingSupportDisabledCB(const Pim01ResetVifIsTrackingSupportDisabledRF& cb)
04576           : cb(cb) { }
04577 
04578         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
04579 
04580         void respond() const {
04581             cb->dispatch(XrlCmdError::OKAY());
04582         }
04583     };
04584 
04585     struct Pim01ResetVifIsTrackingSupportDisabledRsp :
04586       public Pim01ResetVifIsTrackingSupportDisabledCB {
04587         Pim01ResetVifIsTrackingSupportDisabledRsp(const Pim01ResetVifIsTrackingSupportDisabledRF& cb)
04588           : Pim01ResetVifIsTrackingSupportDisabledCB(cb) { }
04589 
04590     };
04591 
04592     virtual void async_pim_0_1_reset_vif_is_tracking_support_disabled
04593        (
04594     const string&   vif_name,
04595     Pim01ResetVifIsTrackingSupportDisabledCB);
04596 #endif
04597 
04598     virtual XrlCmdError pim_0_1_get_vif_accept_nohello_neighbors(
04599     // Input values,
04600     const string&   vif_name,
04601     // Output values,
04602     bool&   accept_nohello_neighbors) = 0;
04603 #ifdef XORP_ENABLE_ASYNC_SERVER
04604     typedef
04605     XorpCallback2<void, const XrlCmdError &,
04606     const bool*>::RefPtr
04607     Pim01GetVifAcceptNohelloNeighborsRF;
04608 
04609     class Pim01GetVifAcceptNohelloNeighborsCB {
04610         Pim01GetVifAcceptNohelloNeighborsRF cb;
04611 
04612     public:
04613         operator const Pim01GetVifAcceptNohelloNeighborsRF& () const { return cb; }
04614         const Pim01GetVifAcceptNohelloNeighborsRF& operator ->() const { return cb; }
04615         Pim01GetVifAcceptNohelloNeighborsCB(const Pim01GetVifAcceptNohelloNeighborsRF& cb)
04616           : cb(cb) { }
04617 
04618         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
04619 
04620         void respond(const bool& arg_accept_nohello_neighbors) const {
04621             cb->dispatch(XrlCmdError::OKAY(),
04622                          &arg_accept_nohello_neighbors);
04623         }
04624     };
04625 
04626     struct Pim01GetVifAcceptNohelloNeighborsRsp :
04627       public Pim01GetVifAcceptNohelloNeighborsCB {
04628         struct args_str {
04629             bool accept_nohello_neighbors;
04630         };
04631 
04632     private:
04633         args_str args;
04634 
04635     public:
04636         Pim01GetVifAcceptNohelloNeighborsRsp(const Pim01GetVifAcceptNohelloNeighborsRF& cb)
04637           : Pim01GetVifAcceptNohelloNeighborsCB(cb) { }
04638 
04639         void respond() const {
04640             Pim01GetVifAcceptNohelloNeighborsCB::
04641             respond(args.accept_nohello_neighbors);
04642         }
04643 
04644         args_str* operator ->() {
04645             return &args;
04646         }
04647     };
04648 
04649     virtual void async_pim_0_1_get_vif_accept_nohello_neighbors
04650        (
04651     const string&   vif_name,
04652     Pim01GetVifAcceptNohelloNeighborsCB);
04653 #endif
04654 
04655     virtual XrlCmdError pim_0_1_set_vif_accept_nohello_neighbors(
04656     // Input values,
04657     const string&   vif_name,
04658     const bool& accept_nohello_neighbors) = 0;
04659 #ifdef XORP_ENABLE_ASYNC_SERVER
04660     typedef
04661     XorpCallback1<void, const XrlCmdError &>::RefPtr
04662     Pim01SetVifAcceptNohelloNeighborsRF;
04663 
04664     class Pim01SetVifAcceptNohelloNeighborsCB {
04665         Pim01SetVifAcceptNohelloNeighborsRF cb;
04666 
04667     public:
04668         operator const Pim01SetVifAcceptNohelloNeighborsRF& () const { return cb; }
04669         const Pim01SetVifAcceptNohelloNeighborsRF& operator ->() const { return cb; }
04670         Pim01SetVifAcceptNohelloNeighborsCB(const Pim01SetVifAcceptNohelloNeighborsRF& cb)
04671           : cb(cb) { }
04672 
04673         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
04674 
04675         void respond() const {
04676             cb->dispatch(XrlCmdError::OKAY());
04677         }
04678     };
04679 
04680     struct Pim01SetVifAcceptNohelloNeighborsRsp :
04681       public Pim01SetVifAcceptNohelloNeighborsCB {
04682         Pim01SetVifAcceptNohelloNeighborsRsp(const Pim01SetVifAcceptNohelloNeighborsRF& cb)
04683           : Pim01SetVifAcceptNohelloNeighborsCB(cb) { }
04684 
04685     };
04686 
04687     virtual void async_pim_0_1_set_vif_accept_nohello_neighbors
04688        (
04689     const string&   vif_name,
04690     const bool& accept_nohello_neighbors,
04691     Pim01SetVifAcceptNohelloNeighborsCB);
04692 #endif
04693 
04694     virtual XrlCmdError pim_0_1_reset_vif_accept_nohello_neighbors(
04695     // Input values,
04696     const string&   vif_name) = 0;
04697 #ifdef XORP_ENABLE_ASYNC_SERVER
04698     typedef
04699     XorpCallback1<void, const XrlCmdError &>::RefPtr
04700     Pim01ResetVifAcceptNohelloNeighborsRF;
04701 
04702     class Pim01ResetVifAcceptNohelloNeighborsCB {
04703         Pim01ResetVifAcceptNohelloNeighborsRF cb;
04704 
04705     public:
04706         operator const Pim01ResetVifAcceptNohelloNeighborsRF& () const { return cb; }
04707         const Pim01ResetVifAcceptNohelloNeighborsRF& operator ->() const { return cb; }
04708         Pim01ResetVifAcceptNohelloNeighborsCB(const Pim01ResetVifAcceptNohelloNeighborsRF& cb)
04709           : cb(cb) { }
04710 
04711         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
04712 
04713         void respond() const {
04714             cb->dispatch(XrlCmdError::OKAY());
04715         }
04716     };
04717 
04718     struct Pim01ResetVifAcceptNohelloNeighborsRsp :
04719       public Pim01ResetVifAcceptNohelloNeighborsCB {
04720         Pim01ResetVifAcceptNohelloNeighborsRsp(const Pim01ResetVifAcceptNohelloNeighborsRF& cb)
04721           : Pim01ResetVifAcceptNohelloNeighborsCB(cb) { }
04722 
04723     };
04724 
04725     virtual void async_pim_0_1_reset_vif_accept_nohello_neighbors
04726        (
04727     const string&   vif_name,
04728     Pim01ResetVifAcceptNohelloNeighborsCB);
04729 #endif
04730 
04742     virtual XrlCmdError pim_0_1_get_vif_join_prune_period(
04743     // Input values,
04744     const string&   vif_name,
04745     // Output values,
04746     uint32_t&   join_prune_period) = 0;
04747 #ifdef XORP_ENABLE_ASYNC_SERVER
04748     typedef
04749     XorpCallback2<void, const XrlCmdError &,
04750     const uint32_t*>::RefPtr
04751     Pim01GetVifJoinPrunePeriodRF;
04752 
04753     class Pim01GetVifJoinPrunePeriodCB {
04754         Pim01GetVifJoinPrunePeriodRF cb;
04755 
04756     public:
04757         operator const Pim01GetVifJoinPrunePeriodRF& () const { return cb; }
04758         const Pim01GetVifJoinPrunePeriodRF& operator ->() const { return cb; }
04759         Pim01GetVifJoinPrunePeriodCB(const Pim01GetVifJoinPrunePeriodRF& cb)
04760           : cb(cb) { }
04761 
04762         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
04763 
04764         void respond(const uint32_t& arg_join_prune_period) const {
04765             cb->dispatch(XrlCmdError::OKAY(),
04766                          &arg_join_prune_period);
04767         }
04768     };
04769 
04770     struct Pim01GetVifJoinPrunePeriodRsp :
04771       public Pim01GetVifJoinPrunePeriodCB {
04772         struct args_str {
04773             uint32_t join_prune_period;
04774         };
04775 
04776     private:
04777         args_str args;
04778 
04779     public:
04780         Pim01GetVifJoinPrunePeriodRsp(const Pim01GetVifJoinPrunePeriodRF& cb)
04781           : Pim01GetVifJoinPrunePeriodCB(cb) { }
04782 
04783         void respond() const {
04784             Pim01GetVifJoinPrunePeriodCB::
04785             respond(args.join_prune_period);
04786         }
04787 
04788         args_str* operator ->() {
04789             return &args;
04790         }
04791     };
04792 
04793     virtual void async_pim_0_1_get_vif_join_prune_period
04794        (
04795     const string&   vif_name,
04796     Pim01GetVifJoinPrunePeriodCB);
04797 #endif
04798 
04799     virtual XrlCmdError pim_0_1_set_vif_join_prune_period(
04800     // Input values,
04801     const string&   vif_name,
04802     const uint32_t& join_prune_period) = 0;
04803 #ifdef XORP_ENABLE_ASYNC_SERVER
04804     typedef
04805     XorpCallback1<void, const XrlCmdError &>::RefPtr
04806     Pim01SetVifJoinPrunePeriodRF;
04807 
04808     class Pim01SetVifJoinPrunePeriodCB {
04809         Pim01SetVifJoinPrunePeriodRF cb;
04810 
04811     public:
04812         operator const Pim01SetVifJoinPrunePeriodRF& () const { return cb; }
04813         const Pim01SetVifJoinPrunePeriodRF& operator ->() const { return cb; }
04814         Pim01SetVifJoinPrunePeriodCB(const Pim01SetVifJoinPrunePeriodRF& cb)
04815           : cb(cb) { }
04816 
04817         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
04818 
04819         void respond() const {
04820             cb->dispatch(XrlCmdError::OKAY());
04821         }
04822     };
04823 
04824     struct Pim01SetVifJoinPrunePeriodRsp :
04825       public Pim01SetVifJoinPrunePeriodCB {
04826         Pim01SetVifJoinPrunePeriodRsp(const Pim01SetVifJoinPrunePeriodRF& cb)
04827           : Pim01SetVifJoinPrunePeriodCB(cb) { }
04828 
04829     };
04830 
04831     virtual void async_pim_0_1_set_vif_join_prune_period
04832        (
04833     const string&   vif_name,
04834     const uint32_t& join_prune_period,
04835     Pim01SetVifJoinPrunePeriodCB);
04836 #endif
04837 
04838     virtual XrlCmdError pim_0_1_reset_vif_join_prune_period(
04839     // Input values,
04840     const string&   vif_name) = 0;
04841 #ifdef XORP_ENABLE_ASYNC_SERVER
04842     typedef
04843     XorpCallback1<void, const XrlCmdError &>::RefPtr
04844     Pim01ResetVifJoinPrunePeriodRF;
04845 
04846     class Pim01ResetVifJoinPrunePeriodCB {
04847         Pim01ResetVifJoinPrunePeriodRF cb;
04848 
04849     public:
04850         operator const Pim01ResetVifJoinPrunePeriodRF& () const { return cb; }
04851         const Pim01ResetVifJoinPrunePeriodRF& operator ->() const { return cb; }
04852         Pim01ResetVifJoinPrunePeriodCB(const Pim01ResetVifJoinPrunePeriodRF& cb)
04853           : cb(cb) { }
04854 
04855         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
04856 
04857         void respond() const {
04858             cb->dispatch(XrlCmdError::OKAY());
04859         }
04860     };
04861 
04862     struct Pim01ResetVifJoinPrunePeriodRsp :
04863       public Pim01ResetVifJoinPrunePeriodCB {
04864         Pim01ResetVifJoinPrunePeriodRsp(const Pim01ResetVifJoinPrunePeriodRF& cb)
04865           : Pim01ResetVifJoinPrunePeriodCB(cb) { }
04866 
04867     };
04868 
04869     virtual void async_pim_0_1_reset_vif_join_prune_period
04870        (
04871     const string&   vif_name,
04872     Pim01ResetVifJoinPrunePeriodCB);
04873 #endif
04874 
04887     virtual XrlCmdError pim_0_1_get_switch_to_spt_threshold(
04888     // Output values,
04889     bool&   is_enabled,
04890     uint32_t&   interval_sec,
04891     uint32_t&   bytes) = 0;
04892 #ifdef XORP_ENABLE_ASYNC_SERVER
04893     typedef
04894     XorpCallback4<void, const XrlCmdError &,
04895     const bool*,
04896     const uint32_t*,
04897     const uint32_t*>::RefPtr
04898     Pim01GetSwitchToSptThresholdRF;
04899 
04900     class Pim01GetSwitchToSptThresholdCB {
04901         Pim01GetSwitchToSptThresholdRF cb;
04902 
04903     public:
04904         operator const Pim01GetSwitchToSptThresholdRF& () const { return cb; }
04905         const Pim01GetSwitchToSptThresholdRF& operator ->() const { return cb; }
04906         Pim01GetSwitchToSptThresholdCB(const Pim01GetSwitchToSptThresholdRF& cb)
04907           : cb(cb) { }
04908 
04909         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL, NULL, NULL); }
04910 
04911         void respond(const bool& arg_is_enabled,
04912                      const uint32_t& arg_interval_sec,
04913                      const uint32_t& arg_bytes) const {
04914             cb->dispatch(XrlCmdError::OKAY(),
04915                          &arg_is_enabled,
04916                          &arg_interval_sec,
04917                          &arg_bytes);
04918         }
04919     };
04920 
04921     struct Pim01GetSwitchToSptThresholdRsp :
04922       public Pim01GetSwitchToSptThresholdCB {
04923         struct args_str {
04924             bool is_enabled;
04925             uint32_t interval_sec;
04926             uint32_t bytes;
04927         };
04928 
04929     private:
04930         args_str args;
04931 
04932     public:
04933         Pim01GetSwitchToSptThresholdRsp(const Pim01GetSwitchToSptThresholdRF& cb)
04934           : Pim01GetSwitchToSptThresholdCB(cb) { }
04935 
04936         void respond() const {
04937             Pim01GetSwitchToSptThresholdCB::
04938             respond(args.is_enabled,
04939                         args.interval_sec,
04940                         args.bytes);
04941         }
04942 
04943         args_str* operator ->() {
04944             return &args;
04945         }
04946     };
04947 
04948     virtual void async_pim_0_1_get_switch_to_spt_threshold
04949        (
04950     Pim01GetSwitchToSptThresholdCB);
04951 #endif
04952 
04953     virtual XrlCmdError pim_0_1_set_switch_to_spt_threshold(
04954     // Input values,
04955     const bool& is_enabled,
04956     const uint32_t& interval_sec,
04957     const uint32_t& bytes) = 0;
04958 #ifdef XORP_ENABLE_ASYNC_SERVER
04959     typedef
04960     XorpCallback1<void, const XrlCmdError &>::RefPtr
04961     Pim01SetSwitchToSptThresholdRF;
04962 
04963     class Pim01SetSwitchToSptThresholdCB {
04964         Pim01SetSwitchToSptThresholdRF cb;
04965 
04966     public:
04967         operator const Pim01SetSwitchToSptThresholdRF& () const { return cb; }
04968         const Pim01SetSwitchToSptThresholdRF& operator ->() const { return cb; }
04969         Pim01SetSwitchToSptThresholdCB(const Pim01SetSwitchToSptThresholdRF& cb)
04970           : cb(cb) { }
04971 
04972         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
04973 
04974         void respond() const {
04975             cb->dispatch(XrlCmdError::OKAY());
04976         }
04977     };
04978 
04979     struct Pim01SetSwitchToSptThresholdRsp :
04980       public Pim01SetSwitchToSptThresholdCB {
04981         Pim01SetSwitchToSptThresholdRsp(const Pim01SetSwitchToSptThresholdRF& cb)
04982           : Pim01SetSwitchToSptThresholdCB(cb) { }
04983 
04984     };
04985 
04986     virtual void async_pim_0_1_set_switch_to_spt_threshold
04987        (
04988     const bool& is_enabled,
04989     const uint32_t& interval_sec,
04990     const uint32_t& bytes,
04991     Pim01SetSwitchToSptThresholdCB);
04992 #endif
04993 
04994     virtual XrlCmdError pim_0_1_reset_switch_to_spt_threshold() = 0;
04995 #ifdef XORP_ENABLE_ASYNC_SERVER
04996     typedef
04997     XorpCallback1<void, const XrlCmdError &>::RefPtr
04998     Pim01ResetSwitchToSptThresholdRF;
04999 
05000     class Pim01ResetSwitchToSptThresholdCB {
05001         Pim01ResetSwitchToSptThresholdRF cb;
05002 
05003     public:
05004         operator const Pim01ResetSwitchToSptThresholdRF& () const { return cb; }
05005         const Pim01ResetSwitchToSptThresholdRF& operator ->() const { return cb; }
05006         Pim01ResetSwitchToSptThresholdCB(const Pim01ResetSwitchToSptThresholdRF& cb)
05007           : cb(cb) { }
05008 
05009         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
05010 
05011         void respond() const {
05012             cb->dispatch(XrlCmdError::OKAY());
05013         }
05014     };
05015 
05016     struct Pim01ResetSwitchToSptThresholdRsp :
05017       public Pim01ResetSwitchToSptThresholdCB {
05018         Pim01ResetSwitchToSptThresholdRsp(const Pim01ResetSwitchToSptThresholdRF& cb)
05019           : Pim01ResetSwitchToSptThresholdCB(cb) { }
05020 
05021     };
05022 
05023     virtual void async_pim_0_1_reset_switch_to_spt_threshold
05024        (
05025     Pim01ResetSwitchToSptThresholdCB);
05026 #endif
05027 
05041     virtual XrlCmdError pim_0_1_add_alternative_subnet4(
05042     // Input values,
05043     const string&   vif_name,
05044     const IPv4Net&  subnet) = 0;
05045 #ifdef XORP_ENABLE_ASYNC_SERVER
05046     typedef
05047     XorpCallback1<void, const XrlCmdError &>::RefPtr
05048     Pim01AddAlternativeSubnet4RF;
05049 
05050     class Pim01AddAlternativeSubnet4CB {
05051         Pim01AddAlternativeSubnet4RF cb;
05052 
05053     public:
05054         operator const Pim01AddAlternativeSubnet4RF& () const { return cb; }
05055         const Pim01AddAlternativeSubnet4RF& operator ->() const { return cb; }
05056         Pim01AddAlternativeSubnet4CB(const Pim01AddAlternativeSubnet4RF& cb)
05057           : cb(cb) { }
05058 
05059         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
05060 
05061         void respond() const {
05062             cb->dispatch(XrlCmdError::OKAY());
05063         }
05064     };
05065 
05066     struct Pim01AddAlternativeSubnet4Rsp :
05067       public Pim01AddAlternativeSubnet4CB {
05068         Pim01AddAlternativeSubnet4Rsp(const Pim01AddAlternativeSubnet4RF& cb)
05069           : Pim01AddAlternativeSubnet4CB(cb) { }
05070 
05071     };
05072 
05073     virtual void async_pim_0_1_add_alternative_subnet4
05074        (
05075     const string&   vif_name,
05076     const IPv4Net&  subnet,
05077     Pim01AddAlternativeSubnet4CB);
05078 #endif
05079 
05080     virtual XrlCmdError pim_0_1_add_alternative_subnet6(
05081     // Input values,
05082     const string&   vif_name,
05083     const IPv6Net&  subnet) = 0;
05084 #ifdef XORP_ENABLE_ASYNC_SERVER
05085     typedef
05086     XorpCallback1<void, const XrlCmdError &>::RefPtr
05087     Pim01AddAlternativeSubnet6RF;
05088 
05089     class Pim01AddAlternativeSubnet6CB {
05090         Pim01AddAlternativeSubnet6RF cb;
05091 
05092     public:
05093         operator const Pim01AddAlternativeSubnet6RF& () const { return cb; }
05094         const Pim01AddAlternativeSubnet6RF& operator ->() const { return cb; }
05095         Pim01AddAlternativeSubnet6CB(const Pim01AddAlternativeSubnet6RF& cb)
05096           : cb(cb) { }
05097 
05098         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
05099 
05100         void respond() const {
05101             cb->dispatch(XrlCmdError::OKAY());
05102         }
05103     };
05104 
05105     struct Pim01AddAlternativeSubnet6Rsp :
05106       public Pim01AddAlternativeSubnet6CB {
05107         Pim01AddAlternativeSubnet6Rsp(const Pim01AddAlternativeSubnet6RF& cb)
05108           : Pim01AddAlternativeSubnet6CB(cb) { }
05109 
05110     };
05111 
05112     virtual void async_pim_0_1_add_alternative_subnet6
05113        (
05114     const string&   vif_name,
05115     const IPv6Net&  subnet,
05116     Pim01AddAlternativeSubnet6CB);
05117 #endif
05118 
05119     virtual XrlCmdError pim_0_1_delete_alternative_subnet6(
05120     // Input values,
05121     const string&   vif_name,
05122     const IPv6Net&  subnet) = 0;
05123 #ifdef XORP_ENABLE_ASYNC_SERVER
05124     typedef
05125     XorpCallback1<void, const XrlCmdError &>::RefPtr
05126     Pim01DeleteAlternativeSubnet6RF;
05127 
05128     class Pim01DeleteAlternativeSubnet6CB {
05129         Pim01DeleteAlternativeSubnet6RF cb;
05130 
05131     public:
05132         operator const Pim01DeleteAlternativeSubnet6RF& () const { return cb; }
05133         const Pim01DeleteAlternativeSubnet6RF& operator ->() const { return cb; }
05134         Pim01DeleteAlternativeSubnet6CB(const Pim01DeleteAlternativeSubnet6RF& cb)
05135           : cb(cb) { }
05136 
05137         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
05138 
05139         void respond() const {
05140             cb->dispatch(XrlCmdError::OKAY());
05141         }
05142     };
05143 
05144     struct Pim01DeleteAlternativeSubnet6Rsp :
05145       public Pim01DeleteAlternativeSubnet6CB {
05146         Pim01DeleteAlternativeSubnet6Rsp(const Pim01DeleteAlternativeSubnet6RF& cb)
05147           : Pim01DeleteAlternativeSubnet6CB(cb) { }
05148 
05149     };
05150 
05151     virtual void async_pim_0_1_delete_alternative_subnet6
05152        (
05153     const string&   vif_name,
05154     const IPv6Net&  subnet,
05155     Pim01DeleteAlternativeSubnet6CB);
05156 #endif
05157 
05158     virtual XrlCmdError pim_0_1_delete_alternative_subnet4(
05159     // Input values,
05160     const string&   vif_name,
05161     const IPv4Net&  subnet) = 0;
05162 #ifdef XORP_ENABLE_ASYNC_SERVER
05163     typedef
05164     XorpCallback1<void, const XrlCmdError &>::RefPtr
05165     Pim01DeleteAlternativeSubnet4RF;
05166 
05167     class Pim01DeleteAlternativeSubnet4CB {
05168         Pim01DeleteAlternativeSubnet4RF cb;
05169 
05170     public:
05171         operator const Pim01DeleteAlternativeSubnet4RF& () const { return cb; }
05172         const Pim01DeleteAlternativeSubnet4RF& operator ->() const { return cb; }
05173         Pim01DeleteAlternativeSubnet4CB(const Pim01DeleteAlternativeSubnet4RF& cb)
05174           : cb(cb) { }
05175 
05176         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
05177 
05178         void respond() const {
05179             cb->dispatch(XrlCmdError::OKAY());
05180         }
05181     };
05182 
05183     struct Pim01DeleteAlternativeSubnet4Rsp :
05184       public Pim01DeleteAlternativeSubnet4CB {
05185         Pim01DeleteAlternativeSubnet4Rsp(const Pim01DeleteAlternativeSubnet4RF& cb)
05186           : Pim01DeleteAlternativeSubnet4CB(cb) { }
05187 
05188     };
05189 
05190     virtual void async_pim_0_1_delete_alternative_subnet4
05191        (
05192     const string&   vif_name,
05193     const IPv4Net&  subnet,
05194     Pim01DeleteAlternativeSubnet4CB);
05195 #endif
05196 
05197     virtual XrlCmdError pim_0_1_remove_all_alternative_subnets(
05198     // Input values,
05199     const string&   vif_name) = 0;
05200 #ifdef XORP_ENABLE_ASYNC_SERVER
05201     typedef
05202     XorpCallback1<void, const XrlCmdError &>::RefPtr
05203     Pim01RemoveAllAlternativeSubnetsRF;
05204 
05205     class Pim01RemoveAllAlternativeSubnetsCB {
05206         Pim01RemoveAllAlternativeSubnetsRF cb;
05207 
05208     public:
05209         operator const Pim01RemoveAllAlternativeSubnetsRF& () const { return cb; }
05210         const Pim01RemoveAllAlternativeSubnetsRF& operator ->() const { return cb; }
05211         Pim01RemoveAllAlternativeSubnetsCB(const Pim01RemoveAllAlternativeSubnetsRF& cb)
05212           : cb(cb) { }
05213 
05214         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
05215 
05216         void respond() const {
05217             cb->dispatch(XrlCmdError::OKAY());
05218         }
05219     };
05220 
05221     struct Pim01RemoveAllAlternativeSubnetsRsp :
05222       public Pim01RemoveAllAlternativeSubnetsCB {
05223         Pim01RemoveAllAlternativeSubnetsRsp(const Pim01RemoveAllAlternativeSubnetsRF& cb)
05224           : Pim01RemoveAllAlternativeSubnetsCB(cb) { }
05225 
05226     };
05227 
05228     virtual void async_pim_0_1_remove_all_alternative_subnets
05229        (
05230     const string&   vif_name,
05231     Pim01RemoveAllAlternativeSubnetsCB);
05232 #endif
05233 
05241     virtual XrlCmdError pim_0_1_log_trace_all(
05242     // Input values,
05243     const bool& enable) = 0;
05244 #ifdef XORP_ENABLE_ASYNC_SERVER
05245     typedef
05246     XorpCallback1<void, const XrlCmdError &>::RefPtr
05247     Pim01LogTraceAllRF;
05248 
05249     class Pim01LogTraceAllCB {
05250         Pim01LogTraceAllRF cb;
05251 
05252     public:
05253         operator const Pim01LogTraceAllRF& () const { return cb; }
05254         const Pim01LogTraceAllRF& operator ->() const { return cb; }
05255         Pim01LogTraceAllCB(const Pim01LogTraceAllRF& cb)
05256           : cb(cb) { }
05257 
05258         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
05259 
05260         void respond() const {
05261             cb->dispatch(XrlCmdError::OKAY());
05262         }
05263     };
05264 
05265     struct Pim01LogTraceAllRsp :
05266       public Pim01LogTraceAllCB {
05267         Pim01LogTraceAllRsp(const Pim01LogTraceAllRF& cb)
05268           : Pim01LogTraceAllCB(cb) { }
05269 
05270     };
05271 
05272     virtual void async_pim_0_1_log_trace_all
05273        (
05274     const bool& enable,
05275     Pim01LogTraceAllCB);
05276 #endif
05277 
05284     virtual XrlCmdError pim_0_1_add_test_jp_entry4(
05285     // Input values,
05286     const IPv4& source_addr,
05287     const IPv4& group_addr,
05288     const uint32_t& group_mask_len,
05289     const string&   mrt_entry_type,
05290     const string&   action_jp,
05291     const uint32_t& holdtime,
05292     const bool& is_new_group) = 0;
05293 #ifdef XORP_ENABLE_ASYNC_SERVER
05294     typedef
05295     XorpCallback1<void, const XrlCmdError &>::RefPtr
05296     Pim01AddTestJpEntry4RF;
05297 
05298     class Pim01AddTestJpEntry4CB {
05299         Pim01AddTestJpEntry4RF cb;
05300 
05301     public:
05302         operator const Pim01AddTestJpEntry4RF& () const { return cb; }
05303         const Pim01AddTestJpEntry4RF& operator ->() const { return cb; }
05304         Pim01AddTestJpEntry4CB(const Pim01AddTestJpEntry4RF& cb)
05305           : cb(cb) { }
05306 
05307         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
05308 
05309         void respond() const {
05310             cb->dispatch(XrlCmdError::OKAY());
05311         }
05312     };
05313 
05314     struct Pim01AddTestJpEntry4Rsp :
05315       public Pim01AddTestJpEntry4CB {
05316         Pim01AddTestJpEntry4Rsp(const Pim01AddTestJpEntry4RF& cb)
05317           : Pim01AddTestJpEntry4CB(cb) { }
05318 
05319     };
05320 
05321     virtual void async_pim_0_1_add_test_jp_entry4
05322        (
05323     const IPv4& source_addr,
05324     const IPv4& group_addr,
05325     const uint32_t& group_mask_len,
05326     const string&   mrt_entry_type,
05327     const string&   action_jp,
05328     const uint32_t& holdtime,
05329     const bool& is_new_group,
05330     Pim01AddTestJpEntry4CB);
05331 #endif
05332 
05333     virtual XrlCmdError pim_0_1_add_test_jp_entry6(
05334     // Input values,
05335     const IPv6& source_addr,
05336     const IPv6& group_addr,
05337     const uint32_t& group_mask_len,
05338     const string&   mrt_entry_type,
05339     const string&   action_jp,
05340     const uint32_t& holdtime,
05341     const bool& is_new_group) = 0;
05342 #ifdef XORP_ENABLE_ASYNC_SERVER
05343     typedef
05344     XorpCallback1<void, const XrlCmdError &>::RefPtr
05345     Pim01AddTestJpEntry6RF;
05346 
05347     class Pim01AddTestJpEntry6CB {
05348         Pim01AddTestJpEntry6RF cb;
05349 
05350     public:
05351         operator const Pim01AddTestJpEntry6RF& () const { return cb; }
05352         const Pim01AddTestJpEntry6RF& operator ->() const { return cb; }
05353         Pim01AddTestJpEntry6CB(const Pim01AddTestJpEntry6RF& cb)
05354           : cb(cb) { }
05355 
05356         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
05357 
05358         void respond() const {
05359             cb->dispatch(XrlCmdError::OKAY());
05360         }
05361     };
05362 
05363     struct Pim01AddTestJpEntry6Rsp :
05364       public Pim01AddTestJpEntry6CB {
05365         Pim01AddTestJpEntry6Rsp(const Pim01AddTestJpEntry6RF& cb)
05366           : Pim01AddTestJpEntry6CB(cb) { }
05367 
05368     };
05369 
05370     virtual void async_pim_0_1_add_test_jp_entry6
05371        (
05372     const IPv6& source_addr,
05373     const IPv6& group_addr,
05374     const uint32_t& group_mask_len,
05375     const string&   mrt_entry_type,
05376     const string&   action_jp,
05377     const uint32_t& holdtime,
05378     const bool& is_new_group,
05379     Pim01AddTestJpEntry6CB);
05380 #endif
05381 
05382     virtual XrlCmdError pim_0_1_send_test_jp_entry6(
05383     // Input values,
05384     const string&   vif_name,
05385     const IPv6& nbr_addr) = 0;
05386 #ifdef XORP_ENABLE_ASYNC_SERVER
05387     typedef
05388     XorpCallback1<void, const XrlCmdError &>::RefPtr
05389     Pim01SendTestJpEntry6RF;
05390 
05391     class Pim01SendTestJpEntry6CB {
05392         Pim01SendTestJpEntry6RF cb;
05393 
05394     public:
05395         operator const Pim01SendTestJpEntry6RF& () const { return cb; }
05396         const Pim01SendTestJpEntry6RF& operator ->() const { return cb; }
05397         Pim01SendTestJpEntry6CB(const Pim01SendTestJpEntry6RF& cb)
05398           : cb(cb) { }
05399 
05400         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
05401 
05402         void respond() const {
05403             cb->dispatch(XrlCmdError::OKAY());
05404         }
05405     };
05406 
05407     struct Pim01SendTestJpEntry6Rsp :
05408       public Pim01SendTestJpEntry6CB {
05409         Pim01SendTestJpEntry6Rsp(const Pim01SendTestJpEntry6RF& cb)
05410           : Pim01SendTestJpEntry6CB(cb) { }
05411 
05412     };
05413 
05414     virtual void async_pim_0_1_send_test_jp_entry6
05415        (
05416     const string&   vif_name,
05417     const IPv6& nbr_addr,
05418     Pim01SendTestJpEntry6CB);
05419 #endif
05420 
05421     virtual XrlCmdError pim_0_1_send_test_jp_entry4(
05422     // Input values,
05423     const string&   vif_name,
05424     const IPv4& nbr_addr) = 0;
05425 #ifdef XORP_ENABLE_ASYNC_SERVER
05426     typedef
05427     XorpCallback1<void, const XrlCmdError &>::RefPtr
05428     Pim01SendTestJpEntry4RF;
05429 
05430     class Pim01SendTestJpEntry4CB {
05431         Pim01SendTestJpEntry4RF cb;
05432 
05433     public:
05434         operator const Pim01SendTestJpEntry4RF& () const { return cb; }
05435         const Pim01SendTestJpEntry4RF& operator ->() const { return cb; }
05436         Pim01SendTestJpEntry4CB(const Pim01SendTestJpEntry4RF& cb)
05437           : cb(cb) { }
05438 
05439         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
05440 
05441         void respond() const {
05442             cb->dispatch(XrlCmdError::OKAY());
05443         }
05444     };
05445 
05446     struct Pim01SendTestJpEntry4Rsp :
05447       public Pim01SendTestJpEntry4CB {
05448         Pim01SendTestJpEntry4Rsp(const Pim01SendTestJpEntry4RF& cb)
05449           : Pim01SendTestJpEntry4CB(cb) { }
05450 
05451     };
05452 
05453     virtual void async_pim_0_1_send_test_jp_entry4
05454        (
05455     const string&   vif_name,
05456     const IPv4& nbr_addr,
05457     Pim01SendTestJpEntry4CB);
05458 #endif
05459 
05478     virtual XrlCmdError pim_0_1_send_test_assert4(
05479     // Input values,
05480     const string&   vif_name,
05481     const IPv4& source_addr,
05482     const IPv4& group_addr,
05483     const bool& rpt_bit,
05484     const uint32_t& metric_preference,
05485     const uint32_t& metric) = 0;
05486 #ifdef XORP_ENABLE_ASYNC_SERVER
05487     typedef
05488     XorpCallback1<void, const XrlCmdError &>::RefPtr
05489     Pim01SendTestAssert4RF;
05490 
05491     class Pim01SendTestAssert4CB {
05492         Pim01SendTestAssert4RF cb;
05493 
05494     public:
05495         operator const Pim01SendTestAssert4RF& () const { return cb; }
05496         const Pim01SendTestAssert4RF& operator ->() const { return cb; }
05497         Pim01SendTestAssert4CB(const Pim01SendTestAssert4RF& cb)
05498           : cb(cb) { }
05499 
05500         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
05501 
05502         void respond() const {
05503             cb->dispatch(XrlCmdError::OKAY());
05504         }
05505     };
05506 
05507     struct Pim01SendTestAssert4Rsp :
05508       public Pim01SendTestAssert4CB {
05509         Pim01SendTestAssert4Rsp(const Pim01SendTestAssert4RF& cb)
05510           : Pim01SendTestAssert4CB(cb) { }
05511 
05512     };
05513 
05514     virtual void async_pim_0_1_send_test_assert4
05515        (
05516     const string&   vif_name,
05517     const IPv4& source_addr,
05518     const IPv4& group_addr,
05519     const bool& rpt_bit,
05520     const uint32_t& metric_preference,
05521     const uint32_t& metric,
05522     Pim01SendTestAssert4CB);
05523 #endif
05524 
05525     virtual XrlCmdError pim_0_1_send_test_assert6(
05526     // Input values,
05527     const string&   vif_name,
05528     const IPv6& source_addr,
05529     const IPv6& group_addr,
05530     const bool& rpt_bit,
05531     const uint32_t& metric_preference,
05532     const uint32_t& metric) = 0;
05533 #ifdef XORP_ENABLE_ASYNC_SERVER
05534     typedef
05535     XorpCallback1<void, const XrlCmdError &>::RefPtr
05536     Pim01SendTestAssert6RF;
05537 
05538     class Pim01SendTestAssert6CB {
05539         Pim01SendTestAssert6RF cb;
05540 
05541     public:
05542         operator const Pim01SendTestAssert6RF& () const { return cb; }
05543         const Pim01SendTestAssert6RF& operator ->() const { return cb; }
05544         Pim01SendTestAssert6CB(const Pim01SendTestAssert6RF& cb)
05545           : cb(cb) { }
05546 
05547         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
05548 
05549         void respond() const {
05550             cb->dispatch(XrlCmdError::OKAY());
05551         }
05552     };
05553 
05554     struct Pim01SendTestAssert6Rsp :
05555       public Pim01SendTestAssert6CB {
05556         Pim01SendTestAssert6Rsp(const Pim01SendTestAssert6RF& cb)
05557           : Pim01SendTestAssert6CB(cb) { }
05558 
05559     };
05560 
05561     virtual void async_pim_0_1_send_test_assert6
05562        (
05563     const string&   vif_name,
05564     const IPv6& source_addr,
05565     const IPv6& group_addr,
05566     const bool& rpt_bit,
05567     const uint32_t& metric_preference,
05568     const uint32_t& metric,
05569     Pim01SendTestAssert6CB);
05570 #endif
05571 
05590     virtual XrlCmdError pim_0_1_add_test_bsr_zone4(
05591     // Input values,
05592     const IPv4Net&  zone_id_scope_zone_prefix,
05593     const bool& zone_id_is_scope_zone,
05594     const IPv4& bsr_addr,
05595     const uint32_t& bsr_priority,
05596     const uint32_t& hash_mask_len,
05597     const uint32_t& fragment_tag) = 0;
05598 #ifdef XORP_ENABLE_ASYNC_SERVER
05599     typedef
05600     XorpCallback1<void, const XrlCmdError &>::RefPtr
05601     Pim01AddTestBsrZone4RF;
05602 
05603     class Pim01AddTestBsrZone4CB {
05604         Pim01AddTestBsrZone4RF cb;
05605 
05606     public:
05607         operator const Pim01AddTestBsrZone4RF& () const { return cb; }
05608         const Pim01AddTestBsrZone4RF& operator ->() const { return cb; }
05609         Pim01AddTestBsrZone4CB(const Pim01AddTestBsrZone4RF& cb)
05610           : cb(cb) { }
05611 
05612         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
05613 
05614         void respond() const {
05615             cb->dispatch(XrlCmdError::OKAY());
05616         }
05617     };
05618 
05619     struct Pim01AddTestBsrZone4Rsp :
05620       public Pim01AddTestBsrZone4CB {
05621         Pim01AddTestBsrZone4Rsp(const Pim01AddTestBsrZone4RF& cb)
05622           : Pim01AddTestBsrZone4CB(cb) { }
05623 
05624     };
05625 
05626     virtual void async_pim_0_1_add_test_bsr_zone4
05627        (
05628     const IPv4Net&  zone_id_scope_zone_prefix,
05629     const bool& zone_id_is_scope_zone,
05630     const IPv4& bsr_addr,
05631     const uint32_t& bsr_priority,
05632     const uint32_t& hash_mask_len,
05633     const uint32_t& fragment_tag,
05634     Pim01AddTestBsrZone4CB);
05635 #endif
05636 
05637     virtual XrlCmdError pim_0_1_add_test_bsr_zone6(
05638     // Input values,
05639     const IPv6Net&  zone_id_scope_zone_prefix,
05640     const bool& zone_id_is_scope_zone,
05641     const IPv6& bsr_addr,
05642     const uint32_t& bsr_priority,
05643     const uint32_t& hash_mask_len,
05644     const uint32_t& fragment_tag) = 0;
05645 #ifdef XORP_ENABLE_ASYNC_SERVER
05646     typedef
05647     XorpCallback1<void, const XrlCmdError &>::RefPtr
05648     Pim01AddTestBsrZone6RF;
05649 
05650     class Pim01AddTestBsrZone6CB {
05651         Pim01AddTestBsrZone6RF cb;
05652 
05653     public:
05654         operator const Pim01AddTestBsrZone6RF& () const { return cb; }
05655         const Pim01AddTestBsrZone6RF& operator ->() const { return cb; }
05656         Pim01AddTestBsrZone6CB(const Pim01AddTestBsrZone6RF& cb)
05657           : cb(cb) { }
05658 
05659         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
05660 
05661         void respond() const {
05662             cb->dispatch(XrlCmdError::OKAY());
05663         }
05664     };
05665 
05666     struct Pim01AddTestBsrZone6Rsp :
05667       public Pim01AddTestBsrZone6CB {
05668         Pim01AddTestBsrZone6Rsp(const Pim01AddTestBsrZone6RF& cb)
05669           : Pim01AddTestBsrZone6CB(cb) { }
05670 
05671     };
05672 
05673     virtual void async_pim_0_1_add_test_bsr_zone6
05674        (
05675     const IPv6Net&  zone_id_scope_zone_prefix,
05676     const bool& zone_id_is_scope_zone,
05677     const IPv6& bsr_addr,
05678     const uint32_t& bsr_priority,
05679     const uint32_t& hash_mask_len,
05680     const uint32_t& fragment_tag,
05681     Pim01AddTestBsrZone6CB);
05682 #endif
05683 
05684     virtual XrlCmdError pim_0_1_add_test_bsr_group_prefix6(
05685     // Input values,
05686     const IPv6Net&  zone_id_scope_zone_prefix,
05687     const bool& zone_id_is_scope_zone,
05688     const IPv6Net&  group_prefix,
05689     const bool& is_scope_zone,
05690     const uint32_t& expected_rp_count) = 0;
05691 #ifdef XORP_ENABLE_ASYNC_SERVER
05692     typedef
05693     XorpCallback1<void, const XrlCmdError &>::RefPtr
05694     Pim01AddTestBsrGroupPrefix6RF;
05695 
05696     class Pim01AddTestBsrGroupPrefix6CB {
05697         Pim01AddTestBsrGroupPrefix6RF cb;
05698 
05699     public:
05700         operator const Pim01AddTestBsrGroupPrefix6RF& () const { return cb; }
05701         const Pim01AddTestBsrGroupPrefix6RF& operator ->() const { return cb; }
05702         Pim01AddTestBsrGroupPrefix6CB(const Pim01AddTestBsrGroupPrefix6RF& cb)
05703           : cb(cb) { }
05704 
05705         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
05706 
05707         void respond() const {
05708             cb->dispatch(XrlCmdError::OKAY());
05709         }
05710     };
05711 
05712     struct Pim01AddTestBsrGroupPrefix6Rsp :
05713       public Pim01AddTestBsrGroupPrefix6CB {
05714         Pim01AddTestBsrGroupPrefix6Rsp(const Pim01AddTestBsrGroupPrefix6RF& cb)
05715           : Pim01AddTestBsrGroupPrefix6CB(cb) { }
05716 
05717     };
05718 
05719     virtual void async_pim_0_1_add_test_bsr_group_prefix6
05720        (
05721     const IPv6Net&  zone_id_scope_zone_prefix,
05722     const bool& zone_id_is_scope_zone,
05723     const IPv6Net&  group_prefix,
05724     const bool& is_scope_zone,
05725     const uint32_t& expected_rp_count,
05726     Pim01AddTestBsrGroupPrefix6CB);
05727 #endif
05728 
05729     virtual XrlCmdError pim_0_1_add_test_bsr_rp6(
05730     // Input values,
05731     const IPv6Net&  zone_id_scope_zone_prefix,
05732     const bool& zone_id_is_scope_zone,
05733     const IPv6Net&  group_prefix,
05734     const IPv6& rp_addr,
05735     const uint32_t& rp_priority,
05736     const uint32_t& rp_holdtime) = 0;
05737 #ifdef XORP_ENABLE_ASYNC_SERVER
05738     typedef
05739     XorpCallback1<void, const XrlCmdError &>::RefPtr
05740     Pim01AddTestBsrRp6RF;
05741 
05742     class Pim01AddTestBsrRp6CB {
05743         Pim01AddTestBsrRp6RF cb;
05744 
05745     public:
05746         operator const Pim01AddTestBsrRp6RF& () const { return cb; }
05747         const Pim01AddTestBsrRp6RF& operator ->() const { return cb; }
05748         Pim01AddTestBsrRp6CB(const Pim01AddTestBsrRp6RF& cb)
05749           : cb(cb) { }
05750 
05751         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
05752 
05753         void respond() const {
05754             cb->dispatch(XrlCmdError::OKAY());
05755         }
05756     };
05757 
05758     struct Pim01AddTestBsrRp6Rsp :
05759       public Pim01AddTestBsrRp6CB {
05760         Pim01AddTestBsrRp6Rsp(const Pim01AddTestBsrRp6RF& cb)
05761           : Pim01AddTestBsrRp6CB(cb) { }
05762 
05763     };
05764 
05765     virtual void async_pim_0_1_add_test_bsr_rp6
05766        (
05767     const IPv6Net&  zone_id_scope_zone_prefix,
05768     const bool& zone_id_is_scope_zone,
05769     const IPv6Net&  group_prefix,
05770     const IPv6& rp_addr,
05771     const uint32_t& rp_priority,
05772     const uint32_t& rp_holdtime,
05773     Pim01AddTestBsrRp6CB);
05774 #endif
05775 
05776     virtual XrlCmdError pim_0_1_send_test_bootstrap_by_dest6(
05777     // Input values,
05778     const string&   vif_name,
05779     const IPv6& dest_addr) = 0;
05780 #ifdef XORP_ENABLE_ASYNC_SERVER
05781     typedef
05782     XorpCallback1<void, const XrlCmdError &>::RefPtr
05783     Pim01SendTestBootstrapByDest6RF;
05784 
05785     class Pim01SendTestBootstrapByDest6CB {
05786         Pim01SendTestBootstrapByDest6RF cb;
05787 
05788     public:
05789         operator const Pim01SendTestBootstrapByDest6RF& () const { return cb; }
05790         const Pim01SendTestBootstrapByDest6RF& operator ->() const { return cb; }
05791         Pim01SendTestBootstrapByDest6CB(const Pim01SendTestBootstrapByDest6RF& cb)
05792           : cb(cb) { }
05793 
05794         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
05795 
05796         void respond() const {
05797             cb->dispatch(XrlCmdError::OKAY());
05798         }
05799     };
05800 
05801     struct Pim01SendTestBootstrapByDest6Rsp :
05802       public Pim01SendTestBootstrapByDest6CB {
05803         Pim01SendTestBootstrapByDest6Rsp(const Pim01SendTestBootstrapByDest6RF& cb)
05804           : Pim01SendTestBootstrapByDest6CB(cb) { }
05805 
05806     };
05807 
05808     virtual void async_pim_0_1_send_test_bootstrap_by_dest6
05809        (
05810     const string&   vif_name,
05811     const IPv6& dest_addr,
05812     Pim01SendTestBootstrapByDest6CB);
05813 #endif
05814 
05815     virtual XrlCmdError pim_0_1_add_test_bsr_group_prefix4(
05816     // Input values,
05817     const IPv4Net&  zone_id_scope_zone_prefix,
05818     const bool& zone_id_is_scope_zone,
05819     const IPv4Net&  group_prefix,
05820     const bool& is_scope_zone,
05821     const uint32_t& expected_rp_count) = 0;
05822 #ifdef XORP_ENABLE_ASYNC_SERVER
05823     typedef
05824     XorpCallback1<void, const XrlCmdError &>::RefPtr
05825     Pim01AddTestBsrGroupPrefix4RF;
05826 
05827     class Pim01AddTestBsrGroupPrefix4CB {
05828         Pim01AddTestBsrGroupPrefix4RF cb;
05829 
05830     public:
05831         operator const Pim01AddTestBsrGroupPrefix4RF& () const { return cb; }
05832         const Pim01AddTestBsrGroupPrefix4RF& operator ->() const { return cb; }
05833         Pim01AddTestBsrGroupPrefix4CB(const Pim01AddTestBsrGroupPrefix4RF& cb)
05834           : cb(cb) { }
05835 
05836         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
05837 
05838         void respond() const {
05839             cb->dispatch(XrlCmdError::OKAY());
05840         }
05841     };
05842 
05843     struct Pim01AddTestBsrGroupPrefix4Rsp :
05844       public Pim01AddTestBsrGroupPrefix4CB {
05845         Pim01AddTestBsrGroupPrefix4Rsp(const Pim01AddTestBsrGroupPrefix4RF& cb)
05846           : Pim01AddTestBsrGroupPrefix4CB(cb) { }
05847 
05848     };
05849 
05850     virtual void async_pim_0_1_add_test_bsr_group_prefix4
05851        (
05852     const IPv4Net&  zone_id_scope_zone_prefix,
05853     const bool& zone_id_is_scope_zone,
05854     const IPv4Net&  group_prefix,
05855     const bool& is_scope_zone,
05856     const uint32_t& expected_rp_count,
05857     Pim01AddTestBsrGroupPrefix4CB);
05858 #endif
05859 
05860     virtual XrlCmdError pim_0_1_add_test_bsr_rp4(
05861     // Input values,
05862     const IPv4Net&  zone_id_scope_zone_prefix,
05863     const bool& zone_id_is_scope_zone,
05864     const IPv4Net&  group_prefix,
05865     const IPv4& rp_addr,
05866     const uint32_t& rp_priority,
05867     const uint32_t& rp_holdtime) = 0;
05868 #ifdef XORP_ENABLE_ASYNC_SERVER
05869     typedef
05870     XorpCallback1<void, const XrlCmdError &>::RefPtr
05871     Pim01AddTestBsrRp4RF;
05872 
05873     class Pim01AddTestBsrRp4CB {
05874         Pim01AddTestBsrRp4RF cb;
05875 
05876     public:
05877         operator const Pim01AddTestBsrRp4RF& () const { return cb; }
05878         const Pim01AddTestBsrRp4RF& operator ->() const { return cb; }
05879         Pim01AddTestBsrRp4CB(const Pim01AddTestBsrRp4RF& cb)
05880           : cb(cb) { }
05881 
05882         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
05883 
05884         void respond() const {
05885             cb->dispatch(XrlCmdError::OKAY());
05886         }
05887     };
05888 
05889     struct Pim01AddTestBsrRp4Rsp :
05890       public Pim01AddTestBsrRp4CB {
05891         Pim01AddTestBsrRp4Rsp(const Pim01AddTestBsrRp4RF& cb)
05892           : Pim01AddTestBsrRp4CB(cb) { }
05893 
05894     };
05895 
05896     virtual void async_pim_0_1_add_test_bsr_rp4
05897        (
05898     const IPv4Net&  zone_id_scope_zone_prefix,
05899     const bool& zone_id_is_scope_zone,
05900     const IPv4Net&  group_prefix,
05901     const IPv4& rp_addr,
05902     const uint32_t& rp_priority,
05903     const uint32_t& rp_holdtime,
05904     Pim01AddTestBsrRp4CB);
05905 #endif
05906 
05907     virtual XrlCmdError pim_0_1_send_test_bootstrap(
05908     // Input values,
05909     const string&   vif_name) = 0;
05910 #ifdef XORP_ENABLE_ASYNC_SERVER
05911     typedef
05912     XorpCallback1<void, const XrlCmdError &>::RefPtr
05913     Pim01SendTestBootstrapRF;
05914 
05915     class Pim01SendTestBootstrapCB {
05916         Pim01SendTestBootstrapRF cb;
05917 
05918     public:
05919         operator const Pim01SendTestBootstrapRF& () const { return cb; }
05920         const Pim01SendTestBootstrapRF& operator ->() const { return cb; }
05921         Pim01SendTestBootstrapCB(const Pim01SendTestBootstrapRF& cb)
05922           : cb(cb) { }
05923 
05924         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
05925 
05926         void respond() const {
05927             cb->dispatch(XrlCmdError::OKAY());
05928         }
05929     };
05930 
05931     struct Pim01SendTestBootstrapRsp :
05932       public Pim01SendTestBootstrapCB {
05933         Pim01SendTestBootstrapRsp(const Pim01SendTestBootstrapRF& cb)
05934           : Pim01SendTestBootstrapCB(cb) { }
05935 
05936     };
05937 
05938     virtual void async_pim_0_1_send_test_bootstrap
05939        (
05940     const string&   vif_name,
05941     Pim01SendTestBootstrapCB);
05942 #endif
05943 
05944     virtual XrlCmdError pim_0_1_send_test_bootstrap_by_dest4(
05945     // Input values,
05946     const string&   vif_name,
05947     const IPv4& dest_addr) = 0;
05948 #ifdef XORP_ENABLE_ASYNC_SERVER
05949     typedef
05950     XorpCallback1<void, const XrlCmdError &>::RefPtr
05951     Pim01SendTestBootstrapByDest4RF;
05952 
05953     class Pim01SendTestBootstrapByDest4CB {
05954         Pim01SendTestBootstrapByDest4RF cb;
05955 
05956     public:
05957         operator const Pim01SendTestBootstrapByDest4RF& () const { return cb; }
05958         const Pim01SendTestBootstrapByDest4RF& operator ->() const { return cb; }
05959         Pim01SendTestBootstrapByDest4CB(const Pim01SendTestBootstrapByDest4RF& cb)
05960           : cb(cb) { }
05961 
05962         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
05963 
05964         void respond() const {
05965             cb->dispatch(XrlCmdError::OKAY());
05966         }
05967     };
05968 
05969     struct Pim01SendTestBootstrapByDest4Rsp :
05970       public Pim01SendTestBootstrapByDest4CB {
05971         Pim01SendTestBootstrapByDest4Rsp(const Pim01SendTestBootstrapByDest4RF& cb)
05972           : Pim01SendTestBootstrapByDest4CB(cb) { }
05973 
05974     };
05975 
05976     virtual void async_pim_0_1_send_test_bootstrap_by_dest4
05977        (
05978     const string&   vif_name,
05979     const IPv4& dest_addr,
05980     Pim01SendTestBootstrapByDest4CB);
05981 #endif
05982 
05983     virtual XrlCmdError pim_0_1_send_test_cand_rp_adv() = 0;
05984 #ifdef XORP_ENABLE_ASYNC_SERVER
05985     typedef
05986     XorpCallback1<void, const XrlCmdError &>::RefPtr
05987     Pim01SendTestCandRpAdvRF;
05988 
05989     class Pim01SendTestCandRpAdvCB {
05990         Pim01SendTestCandRpAdvRF cb;
05991 
05992     public:
05993         operator const Pim01SendTestCandRpAdvRF& () const { return cb; }
05994         const Pim01SendTestCandRpAdvRF& operator ->() const { return cb; }
05995         Pim01SendTestCandRpAdvCB(const Pim01SendTestCandRpAdvRF& cb)
05996           : cb(cb) { }
05997 
05998         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
05999 
06000         void respond() const {
06001             cb->dispatch(XrlCmdError::OKAY());
06002         }
06003     };
06004 
06005     struct Pim01SendTestCandRpAdvRsp :
06006       public Pim01SendTestCandRpAdvCB {
06007         Pim01SendTestCandRpAdvRsp(const Pim01SendTestCandRpAdvRF& cb)
06008           : Pim01SendTestCandRpAdvCB(cb) { }
06009 
06010     };
06011 
06012     virtual void async_pim_0_1_send_test_cand_rp_adv
06013        (
06014     Pim01SendTestCandRpAdvCB);
06015 #endif
06016 
06042     virtual XrlCmdError pim_0_1_pimstat_neighbors4(
06043     // Output values,
06044     uint32_t&   nbrs_number,
06045     XrlAtomList&    vifs,
06046     XrlAtomList&    addresses,
06047     XrlAtomList&    pim_versions,
06048     XrlAtomList&    dr_priorities,
06049     XrlAtomList&    holdtimes,
06050     XrlAtomList&    timeouts,
06051     XrlAtomList&    uptimes) = 0;
06052 #ifdef XORP_ENABLE_ASYNC_SERVER
06053     typedef
06054     XorpCallback9<void, const XrlCmdError &,
06055     const uint32_t*,
06056     const XrlAtomList*,
06057     const XrlAtomList*,
06058     const XrlAtomList*,
06059     const XrlAtomList*,
06060     const XrlAtomList*,
06061     const XrlAtomList*,
06062     const XrlAtomList*>::RefPtr
06063     Pim01PimstatNeighbors4RF;
06064 
06065     class Pim01PimstatNeighbors4CB {
06066         Pim01PimstatNeighbors4RF cb;
06067 
06068     public:
06069         operator const Pim01PimstatNeighbors4RF& () const { return cb; }
06070         const Pim01PimstatNeighbors4RF& operator ->() const { return cb; }
06071         Pim01PimstatNeighbors4CB(const Pim01PimstatNeighbors4RF& cb)
06072           : cb(cb) { }
06073 
06074         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); }
06075 
06076         void respond(const uint32_t& arg_nbrs_number,
06077                      const XrlAtomList& arg_vifs,
06078                      const XrlAtomList& arg_addresses,
06079                      const XrlAtomList& arg_pim_versions,
06080                      const XrlAtomList& arg_dr_priorities,
06081                      const XrlAtomList& arg_holdtimes,
06082                      const XrlAtomList& arg_timeouts,
06083                      const XrlAtomList& arg_uptimes) const {
06084             cb->dispatch(XrlCmdError::OKAY(),
06085                          &arg_nbrs_number,
06086                          &arg_vifs,
06087                          &arg_addresses,
06088                          &arg_pim_versions,
06089                          &arg_dr_priorities,
06090                          &arg_holdtimes,
06091                          &arg_timeouts,
06092                          &arg_uptimes);
06093         }
06094     };
06095 
06096     struct Pim01PimstatNeighbors4Rsp :
06097       public Pim01PimstatNeighbors4CB {
06098         struct args_str {
06099             uint32_t nbrs_number;
06100             XrlAtomList vifs;
06101             XrlAtomList addresses;
06102             XrlAtomList pim_versions;
06103             XrlAtomList dr_priorities;
06104             XrlAtomList holdtimes;
06105             XrlAtomList timeouts;
06106             XrlAtomList uptimes;
06107         };
06108 
06109     private:
06110         args_str args;
06111 
06112     public:
06113         Pim01PimstatNeighbors4Rsp(const Pim01PimstatNeighbors4RF& cb)
06114           : Pim01PimstatNeighbors4CB(cb) { }
06115 
06116         void respond() const {
06117             Pim01PimstatNeighbors4CB::
06118             respond(args.nbrs_number,
06119                         args.vifs,
06120                         args.addresses,
06121                         args.pim_versions,
06122                         args.dr_priorities,
06123                         args.holdtimes,
06124                         args.timeouts,
06125                         args.uptimes);
06126         }
06127 
06128         args_str* operator ->() {
06129             return &args;
06130         }
06131     };
06132 
06133     virtual void async_pim_0_1_pimstat_neighbors4
06134        (
06135     Pim01PimstatNeighbors4CB);
06136 #endif
06137 
06138     virtual XrlCmdError pim_0_1_pimstat_neighbors6(
06139     // Output values,
06140     uint32_t&   nbrs_number,
06141     XrlAtomList&    vifs,
06142     XrlAtomList&    addresses,
06143     XrlAtomList&    pim_versions,
06144     XrlAtomList&    dr_priorities,
06145     XrlAtomList&    holdtimes,
06146     XrlAtomList&    timeouts,
06147     XrlAtomList&    uptimes) = 0;
06148 #ifdef XORP_ENABLE_ASYNC_SERVER
06149     typedef
06150     XorpCallback9<void, const XrlCmdError &,
06151     const uint32_t*,
06152     const XrlAtomList*,
06153     const XrlAtomList*,
06154     const XrlAtomList*,
06155     const XrlAtomList*,
06156     const XrlAtomList*,
06157     const XrlAtomList*,
06158     const XrlAtomList*>::RefPtr
06159     Pim01PimstatNeighbors6RF;
06160 
06161     class Pim01PimstatNeighbors6CB {
06162         Pim01PimstatNeighbors6RF cb;
06163 
06164     public:
06165         operator const Pim01PimstatNeighbors6RF& () const { return cb; }
06166         const Pim01PimstatNeighbors6RF& operator ->() const { return cb; }
06167         Pim01PimstatNeighbors6CB(const Pim01PimstatNeighbors6RF& cb)
06168           : cb(cb) { }
06169 
06170         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); }
06171 
06172         void respond(const uint32_t& arg_nbrs_number,
06173                      const XrlAtomList& arg_vifs,
06174                      const XrlAtomList& arg_addresses,
06175                      const XrlAtomList& arg_pim_versions,
06176                      const XrlAtomList& arg_dr_priorities,
06177                      const XrlAtomList& arg_holdtimes,
06178                      const XrlAtomList& arg_timeouts,
06179                      const XrlAtomList& arg_uptimes) const {
06180             cb->dispatch(XrlCmdError::OKAY(),
06181                          &arg_nbrs_number,
06182                          &arg_vifs,
06183                          &arg_addresses,
06184                          &arg_pim_versions,
06185                          &arg_dr_priorities,
06186                          &arg_holdtimes,
06187                          &arg_timeouts,
06188                          &arg_uptimes);
06189         }
06190     };
06191 
06192     struct Pim01PimstatNeighbors6Rsp :
06193       public Pim01PimstatNeighbors6CB {
06194         struct args_str {
06195             uint32_t nbrs_number;
06196             XrlAtomList vifs;
06197             XrlAtomList addresses;
06198             XrlAtomList pim_versions;
06199             XrlAtomList dr_priorities;
06200             XrlAtomList holdtimes;
06201             XrlAtomList timeouts;
06202             XrlAtomList uptimes;
06203         };
06204 
06205     private:
06206         args_str args;
06207 
06208     public:
06209         Pim01PimstatNeighbors6Rsp(const Pim01PimstatNeighbors6RF& cb)
06210           : Pim01PimstatNeighbors6CB(cb) { }
06211 
06212         void respond() const {
06213             Pim01PimstatNeighbors6CB::
06214             respond(args.nbrs_number,
06215                         args.vifs,
06216                         args.addresses,
06217                         args.pim_versions,
06218                         args.dr_priorities,
06219                         args.holdtimes,
06220                         args.timeouts,
06221                         args.uptimes);
06222         }
06223 
06224         args_str* operator ->() {
06225             return &args;
06226         }
06227     };
06228 
06229     virtual void async_pim_0_1_pimstat_neighbors6
06230        (
06231     Pim01PimstatNeighbors6CB);
06232 #endif
06233 
06254     virtual XrlCmdError pim_0_1_pimstat_interface4(
06255     // Input values,
06256     const string&   vif_name,
06257     // Output values,
06258     uint32_t&   pim_version,
06259     bool&   is_dr,
06260     uint32_t&   dr_priority,
06261     IPv4&   dr_address,
06262     uint32_t&   pim_nbrs_number) = 0;
06263 #ifdef XORP_ENABLE_ASYNC_SERVER
06264     typedef
06265     XorpCallback6<void, const XrlCmdError &,
06266     const uint32_t*,
06267     const bool*,
06268     const uint32_t*,
06269     const IPv4*,
06270     const uint32_t*>::RefPtr
06271     Pim01PimstatInterface4RF;
06272 
06273     class Pim01PimstatInterface4CB {
06274         Pim01PimstatInterface4RF cb;
06275 
06276     public:
06277         operator const Pim01PimstatInterface4RF& () const { return cb; }
06278         const Pim01PimstatInterface4RF& operator ->() const { return cb; }
06279         Pim01PimstatInterface4CB(const Pim01PimstatInterface4RF& cb)
06280           : cb(cb) { }
06281 
06282         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL, NULL, NULL, NULL, NULL); }
06283 
06284         void respond(const uint32_t& arg_pim_version,
06285                      const bool& arg_is_dr,
06286                      const uint32_t& arg_dr_priority,
06287                      const IPv4& arg_dr_address,
06288                      const uint32_t& arg_pim_nbrs_number) const {
06289             cb->dispatch(XrlCmdError::OKAY(),
06290                          &arg_pim_version,
06291                          &arg_is_dr,
06292                          &arg_dr_priority,
06293                          &arg_dr_address,
06294                          &arg_pim_nbrs_number);
06295         }
06296     };
06297 
06298     struct Pim01PimstatInterface4Rsp :
06299       public Pim01PimstatInterface4CB {
06300         struct args_str {
06301             uint32_t pim_version;
06302             bool is_dr;
06303             uint32_t dr_priority;
06304             IPv4 dr_address;
06305             uint32_t pim_nbrs_number;
06306         };
06307 
06308     private:
06309         args_str args;
06310 
06311     public:
06312         Pim01PimstatInterface4Rsp(const Pim01PimstatInterface4RF& cb)
06313           : Pim01PimstatInterface4CB(cb) { }
06314 
06315         void respond() const {
06316             Pim01PimstatInterface4CB::
06317             respond(args.pim_version,
06318                         args.is_dr,
06319                         args.dr_priority,
06320                         args.dr_address,
06321                         args.pim_nbrs_number);
06322         }
06323 
06324         args_str* operator ->() {
06325             return &args;
06326         }
06327     };
06328 
06329     virtual void async_pim_0_1_pimstat_interface4
06330        (
06331     const string&   vif_name,
06332     Pim01PimstatInterface4CB);
06333 #endif
06334 
06335     virtual XrlCmdError pim_0_1_pimstat_interface6(
06336     // Input values,
06337     const string&   vif_name,
06338     // Output values,
06339     uint32_t&   pim_version,
06340     bool&   is_dr,
06341     uint32_t&   dr_priority,
06342     IPv6&   dr_address,
06343     uint32_t&   pim_nbrs_number) = 0;
06344 #ifdef XORP_ENABLE_ASYNC_SERVER
06345     typedef
06346     XorpCallback6<void, const XrlCmdError &,
06347     const uint32_t*,
06348     const bool*,
06349     const uint32_t*,
06350     const IPv6*,
06351     const uint32_t*>::RefPtr
06352     Pim01PimstatInterface6RF;
06353 
06354     class Pim01PimstatInterface6CB {
06355         Pim01PimstatInterface6RF cb;
06356 
06357     public:
06358         operator const Pim01PimstatInterface6RF& () const { return cb; }
06359         const Pim01PimstatInterface6RF& operator ->() const { return cb; }
06360         Pim01PimstatInterface6CB(const Pim01PimstatInterface6RF& cb)
06361           : cb(cb) { }
06362 
06363         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL, NULL, NULL, NULL, NULL); }
06364 
06365         void respond(const uint32_t& arg_pim_version,
06366                      const bool& arg_is_dr,
06367                      const uint32_t& arg_dr_priority,
06368                      const IPv6& arg_dr_address,
06369                      const uint32_t& arg_pim_nbrs_number) const {
06370             cb->dispatch(XrlCmdError::OKAY(),
06371                          &arg_pim_version,
06372                          &arg_is_dr,
06373                          &arg_dr_priority,
06374                          &arg_dr_address,
06375                          &arg_pim_nbrs_number);
06376         }
06377     };
06378 
06379     struct Pim01PimstatInterface6Rsp :
06380       public Pim01PimstatInterface6CB {
06381         struct args_str {
06382             uint32_t pim_version;
06383             bool is_dr;
06384             uint32_t dr_priority;
06385             IPv6 dr_address;
06386             uint32_t pim_nbrs_number;
06387         };
06388 
06389     private:
06390         args_str args;
06391 
06392     public:
06393         Pim01PimstatInterface6Rsp(const Pim01PimstatInterface6RF& cb)
06394           : Pim01PimstatInterface6CB(cb) { }
06395 
06396         void respond() const {
06397             Pim01PimstatInterface6CB::
06398             respond(args.pim_version,
06399                         args.is_dr,
06400                         args.dr_priority,
06401                         args.dr_address,
06402                         args.pim_nbrs_number);
06403         }
06404 
06405         args_str* operator ->() {
06406             return &args;
06407         }
06408     };
06409 
06410     virtual void async_pim_0_1_pimstat_interface6
06411        (
06412     const string&   vif_name,
06413     Pim01PimstatInterface6CB);
06414 #endif
06415 
06443     virtual XrlCmdError pim_0_1_pimstat_rps4(
06444     // Output values,
06445     uint32_t&   rps_number,
06446     XrlAtomList&    addresses,
06447     XrlAtomList&    types,
06448     XrlAtomList&    priorities,
06449     XrlAtomList&    holdtimes,
06450     XrlAtomList&    timeouts,
06451     XrlAtomList&    group_prefixes) = 0;
06452 #ifdef XORP_ENABLE_ASYNC_SERVER
06453     typedef
06454     XorpCallback8<void, const XrlCmdError &,
06455     const uint32_t*,
06456     const XrlAtomList*,
06457     const XrlAtomList*,
06458     const XrlAtomList*,
06459     const XrlAtomList*,
06460     const XrlAtomList*,
06461     const XrlAtomList*>::RefPtr
06462     Pim01PimstatRps4RF;
06463 
06464     class Pim01PimstatRps4CB {
06465         Pim01PimstatRps4RF cb;
06466 
06467     public:
06468         operator const Pim01PimstatRps4RF& () const { return cb; }
06469         const Pim01PimstatRps4RF& operator ->() const { return cb; }
06470         Pim01PimstatRps4CB(const Pim01PimstatRps4RF& cb)
06471           : cb(cb) { }
06472 
06473         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL, NULL, NULL, NULL, NULL, NULL, NULL); }
06474 
06475         void respond(const uint32_t& arg_rps_number,
06476                      const XrlAtomList& arg_addresses,
06477                      const XrlAtomList& arg_types,
06478                      const XrlAtomList& arg_priorities,
06479                      const XrlAtomList& arg_holdtimes,
06480                      const XrlAtomList& arg_timeouts,
06481                      const XrlAtomList& arg_group_prefixes) const {
06482             cb->dispatch(XrlCmdError::OKAY(),
06483                          &arg_rps_number,
06484                          &arg_addresses,
06485                          &arg_types,
06486                          &arg_priorities,
06487                          &arg_holdtimes,
06488                          &arg_timeouts,
06489                          &arg_group_prefixes);
06490         }
06491     };
06492 
06493     struct Pim01PimstatRps4Rsp :
06494       public Pim01PimstatRps4CB {
06495         struct args_str {
06496             uint32_t rps_number;
06497             XrlAtomList addresses;
06498             XrlAtomList types;
06499             XrlAtomList priorities;
06500             XrlAtomList holdtimes;
06501             XrlAtomList timeouts;
06502             XrlAtomList group_prefixes;
06503         };
06504 
06505     private:
06506         args_str args;
06507 
06508     public:
06509         Pim01PimstatRps4Rsp(const Pim01PimstatRps4RF& cb)
06510           : Pim01PimstatRps4CB(cb) { }
06511 
06512         void respond() const {
06513             Pim01PimstatRps4CB::
06514             respond(args.rps_number,
06515                         args.addresses,
06516                         args.types,
06517                         args.priorities,
06518                         args.holdtimes,
06519                         args.timeouts,
06520                         args.group_prefixes);
06521         }
06522 
06523         args_str* operator ->() {
06524             return &args;
06525         }
06526     };
06527 
06528     virtual void async_pim_0_1_pimstat_rps4
06529        (
06530     Pim01PimstatRps4CB);
06531 #endif
06532 
06533     virtual XrlCmdError pim_0_1_pimstat_rps6(
06534     // Output values,
06535     uint32_t&   rps_number,
06536     XrlAtomList&    addresses,
06537     XrlAtomList&    types,
06538     XrlAtomList&    priorities,
06539     XrlAtomList&    holdtimes,
06540     XrlAtomList&    timeouts,
06541     XrlAtomList&    group_prefixes) = 0;
06542 #ifdef XORP_ENABLE_ASYNC_SERVER
06543     typedef
06544     XorpCallback8<void, const XrlCmdError &,
06545     const uint32_t*,
06546     const XrlAtomList*,
06547     const XrlAtomList*,
06548     const XrlAtomList*,
06549     const XrlAtomList*,
06550     const XrlAtomList*,
06551     const XrlAtomList*>::RefPtr
06552     Pim01PimstatRps6RF;
06553 
06554     class Pim01PimstatRps6CB {
06555         Pim01PimstatRps6RF cb;
06556 
06557     public:
06558         operator const Pim01PimstatRps6RF& () const { return cb; }
06559         const Pim01PimstatRps6RF& operator ->() const { return cb; }
06560         Pim01PimstatRps6CB(const Pim01PimstatRps6RF& cb)
06561           : cb(cb) { }
06562 
06563         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL, NULL, NULL, NULL, NULL, NULL, NULL); }
06564 
06565         void respond(const uint32_t& arg_rps_number,
06566                      const XrlAtomList& arg_addresses,
06567                      const XrlAtomList& arg_types,
06568                      const XrlAtomList& arg_priorities,
06569                      const XrlAtomList& arg_holdtimes,
06570                      const XrlAtomList& arg_timeouts,
06571                      const XrlAtomList& arg_group_prefixes) const {
06572             cb->dispatch(XrlCmdError::OKAY(),
06573                          &arg_rps_number,
06574                          &arg_addresses,
06575                          &arg_types,
06576                          &arg_priorities,
06577                          &arg_holdtimes,
06578                          &arg_timeouts,
06579                          &arg_group_prefixes);
06580         }
06581     };
06582 
06583     struct Pim01PimstatRps6Rsp :
06584       public Pim01PimstatRps6CB {
06585         struct args_str {
06586             uint32_t rps_number;
06587             XrlAtomList addresses;
06588             XrlAtomList types;
06589             XrlAtomList priorities;
06590             XrlAtomList holdtimes;
06591             XrlAtomList timeouts;
06592             XrlAtomList group_prefixes;
06593         };
06594 
06595     private:
06596         args_str args;
06597 
06598     public:
06599         Pim01PimstatRps6Rsp(const Pim01PimstatRps6RF& cb)
06600           : Pim01PimstatRps6CB(cb) { }
06601 
06602         void respond() const {
06603             Pim01PimstatRps6CB::
06604             respond(args.rps_number,
06605                         args.addresses,
06606                         args.types,
06607                         args.priorities,
06608                         args.holdtimes,
06609                         args.timeouts,
06610                         args.group_prefixes);
06611         }
06612 
06613         args_str* operator ->() {
06614             return &args;
06615         }
06616     };
06617 
06618     virtual void async_pim_0_1_pimstat_rps6
06619        (
06620     Pim01PimstatRps6CB);
06621 #endif
06622 
06628     virtual XrlCmdError pim_0_1_clear_pim_statistics() = 0;
06629 #ifdef XORP_ENABLE_ASYNC_SERVER
06630     typedef
06631     XorpCallback1<void, const XrlCmdError &>::RefPtr
06632     Pim01ClearPimStatisticsRF;
06633 
06634     class Pim01ClearPimStatisticsCB {
06635         Pim01ClearPimStatisticsRF cb;
06636 
06637     public:
06638         operator const Pim01ClearPimStatisticsRF& () const { return cb; }
06639         const Pim01ClearPimStatisticsRF& operator ->() const { return cb; }
06640         Pim01ClearPimStatisticsCB(const Pim01ClearPimStatisticsRF& cb)
06641           : cb(cb) { }
06642 
06643         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
06644 
06645         void respond() const {
06646             cb->dispatch(XrlCmdError::OKAY());
06647         }
06648     };
06649 
06650     struct Pim01ClearPimStatisticsRsp :
06651       public Pim01ClearPimStatisticsCB {
06652         Pim01ClearPimStatisticsRsp(const Pim01ClearPimStatisticsRF& cb)
06653           : Pim01ClearPimStatisticsCB(cb) { }
06654 
06655     };
06656 
06657     virtual void async_pim_0_1_clear_pim_statistics
06658        (
06659     Pim01ClearPimStatisticsCB);
06660 #endif
06661 
06669     virtual XrlCmdError pim_0_1_clear_pim_statistics_per_vif(
06670     // Input values,
06671     const string&   vif_name) = 0;
06672 #ifdef XORP_ENABLE_ASYNC_SERVER
06673     typedef
06674     XorpCallback1<void, const XrlCmdError &>::RefPtr
06675     Pim01ClearPimStatisticsPerVifRF;
06676 
06677     class Pim01ClearPimStatisticsPerVifCB {
06678         Pim01ClearPimStatisticsPerVifRF cb;
06679 
06680     public:
06681         operator const Pim01ClearPimStatisticsPerVifRF& () const { return cb; }
06682         const Pim01ClearPimStatisticsPerVifRF& operator ->() const { return cb; }
06683         Pim01ClearPimStatisticsPerVifCB(const Pim01ClearPimStatisticsPerVifRF& cb)
06684           : cb(cb) { }
06685 
06686         void fail(const XrlCmdError &e) const { cb->dispatch(e); }
06687 
06688         void respond() const {
06689             cb->dispatch(XrlCmdError::OKAY());
06690         }
06691     };
06692 
06693     struct Pim01ClearPimStatisticsPerVifRsp :
06694       public Pim01ClearPimStatisticsPerVifCB {
06695         Pim01ClearPimStatisticsPerVifRsp(const Pim01ClearPimStatisticsPerVifRF& cb)
06696           : Pim01ClearPimStatisticsPerVifCB(cb) { }
06697 
06698     };
06699 
06700     virtual void async_pim_0_1_clear_pim_statistics_per_vif
06701        (
06702     const string&   vif_name,
06703     Pim01ClearPimStatisticsPerVifCB);
06704 #endif
06705 
06711     virtual XrlCmdError pim_0_1_pimstat_hello_messages_received(
06712     // Output values,
06713     uint32_t&   value) = 0;
06714 #ifdef XORP_ENABLE_ASYNC_SERVER
06715     typedef
06716     XorpCallback2<void, const XrlCmdError &,
06717     const uint32_t*>::RefPtr
06718     Pim01PimstatHelloMessagesReceivedRF;
06719 
06720     class Pim01PimstatHelloMessagesReceivedCB {
06721         Pim01PimstatHelloMessagesReceivedRF cb;
06722 
06723     public:
06724         operator const Pim01PimstatHelloMessagesReceivedRF& () const { return cb; }
06725         const Pim01PimstatHelloMessagesReceivedRF& operator ->() const { return cb; }
06726         Pim01PimstatHelloMessagesReceivedCB(const Pim01PimstatHelloMessagesReceivedRF& cb)
06727           : cb(cb) { }
06728 
06729         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
06730 
06731         void respond(const uint32_t& arg_value) const {
06732             cb->dispatch(XrlCmdError::OKAY(),
06733                          &arg_value);
06734         }
06735     };
06736 
06737     struct Pim01PimstatHelloMessagesReceivedRsp :
06738       public Pim01PimstatHelloMessagesReceivedCB {
06739         struct args_str {
06740             uint32_t value;
06741         };
06742 
06743     private:
06744         args_str args;
06745 
06746     public:
06747         Pim01PimstatHelloMessagesReceivedRsp(const Pim01PimstatHelloMessagesReceivedRF& cb)
06748           : Pim01PimstatHelloMessagesReceivedCB(cb) { }
06749 
06750         void respond() const {
06751             Pim01PimstatHelloMessagesReceivedCB::
06752             respond(args.value);
06753         }
06754 
06755         args_str* operator ->() {
06756             return &args;
06757         }
06758     };
06759 
06760     virtual void async_pim_0_1_pimstat_hello_messages_received
06761        (
06762     Pim01PimstatHelloMessagesReceivedCB);
06763 #endif
06764 
06765     virtual XrlCmdError pim_0_1_pimstat_hello_messages_sent(
06766     // Output values,
06767     uint32_t&   value) = 0;
06768 #ifdef XORP_ENABLE_ASYNC_SERVER
06769     typedef
06770     XorpCallback2<void, const XrlCmdError &,
06771     const uint32_t*>::RefPtr
06772     Pim01PimstatHelloMessagesSentRF;
06773 
06774     class Pim01PimstatHelloMessagesSentCB {
06775         Pim01PimstatHelloMessagesSentRF cb;
06776 
06777     public:
06778         operator const Pim01PimstatHelloMessagesSentRF& () const { return cb; }
06779         const Pim01PimstatHelloMessagesSentRF& operator ->() const { return cb; }
06780         Pim01PimstatHelloMessagesSentCB(const Pim01PimstatHelloMessagesSentRF& cb)
06781           : cb(cb) { }
06782 
06783         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
06784 
06785         void respond(const uint32_t& arg_value) const {
06786             cb->dispatch(XrlCmdError::OKAY(),
06787                          &arg_value);
06788         }
06789     };
06790 
06791     struct Pim01PimstatHelloMessagesSentRsp :
06792       public Pim01PimstatHelloMessagesSentCB {
06793         struct args_str {
06794             uint32_t value;
06795         };
06796 
06797     private:
06798         args_str args;
06799 
06800     public:
06801         Pim01PimstatHelloMessagesSentRsp(const Pim01PimstatHelloMessagesSentRF& cb)
06802           : Pim01PimstatHelloMessagesSentCB(cb) { }
06803 
06804         void respond() const {
06805             Pim01PimstatHelloMessagesSentCB::
06806             respond(args.value);
06807         }
06808 
06809         args_str* operator ->() {
06810             return &args;
06811         }
06812     };
06813 
06814     virtual void async_pim_0_1_pimstat_hello_messages_sent
06815        (
06816     Pim01PimstatHelloMessagesSentCB);
06817 #endif
06818 
06819     virtual XrlCmdError pim_0_1_pimstat_hello_messages_rx_errors(
06820     // Output values,
06821     uint32_t&   value) = 0;
06822 #ifdef XORP_ENABLE_ASYNC_SERVER
06823     typedef
06824     XorpCallback2<void, const XrlCmdError &,
06825     const uint32_t*>::RefPtr
06826     Pim01PimstatHelloMessagesRxErrorsRF;
06827 
06828     class Pim01PimstatHelloMessagesRxErrorsCB {
06829         Pim01PimstatHelloMessagesRxErrorsRF cb;
06830 
06831     public:
06832         operator const Pim01PimstatHelloMessagesRxErrorsRF& () const { return cb; }
06833         const Pim01PimstatHelloMessagesRxErrorsRF& operator ->() const { return cb; }
06834         Pim01PimstatHelloMessagesRxErrorsCB(const Pim01PimstatHelloMessagesRxErrorsRF& cb)
06835           : cb(cb) { }
06836 
06837         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
06838 
06839         void respond(const uint32_t& arg_value) const {
06840             cb->dispatch(XrlCmdError::OKAY(),
06841                          &arg_value);
06842         }
06843     };
06844 
06845     struct Pim01PimstatHelloMessagesRxErrorsRsp :
06846       public Pim01PimstatHelloMessagesRxErrorsCB {
06847         struct args_str {
06848             uint32_t value;
06849         };
06850 
06851     private:
06852         args_str args;
06853 
06854     public:
06855         Pim01PimstatHelloMessagesRxErrorsRsp(const Pim01PimstatHelloMessagesRxErrorsRF& cb)
06856           : Pim01PimstatHelloMessagesRxErrorsCB(cb) { }
06857 
06858         void respond() const {
06859             Pim01PimstatHelloMessagesRxErrorsCB::
06860             respond(args.value);
06861         }
06862 
06863         args_str* operator ->() {
06864             return &args;
06865         }
06866     };
06867 
06868     virtual void async_pim_0_1_pimstat_hello_messages_rx_errors
06869        (
06870     Pim01PimstatHelloMessagesRxErrorsCB);
06871 #endif
06872 
06873     virtual XrlCmdError pim_0_1_pimstat_register_messages_received(
06874     // Output values,
06875     uint32_t&   value) = 0;
06876 #ifdef XORP_ENABLE_ASYNC_SERVER
06877     typedef
06878     XorpCallback2<void, const XrlCmdError &,
06879     const uint32_t*>::RefPtr
06880     Pim01PimstatRegisterMessagesReceivedRF;
06881 
06882     class Pim01PimstatRegisterMessagesReceivedCB {
06883         Pim01PimstatRegisterMessagesReceivedRF cb;
06884 
06885     public:
06886         operator const Pim01PimstatRegisterMessagesReceivedRF& () const { return cb; }
06887         const Pim01PimstatRegisterMessagesReceivedRF& operator ->() const { return cb; }
06888         Pim01PimstatRegisterMessagesReceivedCB(const Pim01PimstatRegisterMessagesReceivedRF& cb)
06889           : cb(cb) { }
06890 
06891         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
06892 
06893         void respond(const uint32_t& arg_value) const {
06894             cb->dispatch(XrlCmdError::OKAY(),
06895                          &arg_value);
06896         }
06897     };
06898 
06899     struct Pim01PimstatRegisterMessagesReceivedRsp :
06900       public Pim01PimstatRegisterMessagesReceivedCB {
06901         struct args_str {
06902             uint32_t value;
06903         };
06904 
06905     private:
06906         args_str args;
06907 
06908     public:
06909         Pim01PimstatRegisterMessagesReceivedRsp(const Pim01PimstatRegisterMessagesReceivedRF& cb)
06910           : Pim01PimstatRegisterMessagesReceivedCB(cb) { }
06911 
06912         void respond() const {
06913             Pim01PimstatRegisterMessagesReceivedCB::
06914             respond(args.value);
06915         }
06916 
06917         args_str* operator ->() {
06918             return &args;
06919         }
06920     };
06921 
06922     virtual void async_pim_0_1_pimstat_register_messages_received
06923        (
06924     Pim01PimstatRegisterMessagesReceivedCB);
06925 #endif
06926 
06927     virtual XrlCmdError pim_0_1_pimstat_register_messages_sent(
06928     // Output values,
06929     uint32_t&   value) = 0;
06930 #ifdef XORP_ENABLE_ASYNC_SERVER
06931     typedef
06932     XorpCallback2<void, const XrlCmdError &,
06933     const uint32_t*>::RefPtr
06934     Pim01PimstatRegisterMessagesSentRF;
06935 
06936     class Pim01PimstatRegisterMessagesSentCB {
06937         Pim01PimstatRegisterMessagesSentRF cb;
06938 
06939     public:
06940         operator const Pim01PimstatRegisterMessagesSentRF& () const { return cb; }
06941         const Pim01PimstatRegisterMessagesSentRF& operator ->() const { return cb; }
06942         Pim01PimstatRegisterMessagesSentCB(const Pim01PimstatRegisterMessagesSentRF& cb)
06943           : cb(cb) { }
06944 
06945         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
06946 
06947         void respond(const uint32_t& arg_value) const {
06948             cb->dispatch(XrlCmdError::OKAY(),
06949                          &arg_value);
06950         }
06951     };
06952 
06953     struct Pim01PimstatRegisterMessagesSentRsp :
06954       public Pim01PimstatRegisterMessagesSentCB {
06955         struct args_str {
06956             uint32_t value;
06957         };
06958 
06959     private:
06960         args_str args;
06961 
06962     public:
06963         Pim01PimstatRegisterMessagesSentRsp(const Pim01PimstatRegisterMessagesSentRF& cb)
06964           : Pim01PimstatRegisterMessagesSentCB(cb) { }
06965 
06966         void respond() const {
06967             Pim01PimstatRegisterMessagesSentCB::
06968             respond(args.value);
06969         }
06970 
06971         args_str* operator ->() {
06972             return &args;
06973         }
06974     };
06975 
06976     virtual void async_pim_0_1_pimstat_register_messages_sent
06977        (
06978     Pim01PimstatRegisterMessagesSentCB);
06979 #endif
06980 
06981     virtual XrlCmdError pim_0_1_pimstat_register_messages_rx_errors(
06982     // Output values,
06983     uint32_t&   value) = 0;
06984 #ifdef XORP_ENABLE_ASYNC_SERVER
06985     typedef
06986     XorpCallback2<void, const XrlCmdError &,
06987     const uint32_t*>::RefPtr
06988     Pim01PimstatRegisterMessagesRxErrorsRF;
06989 
06990     class Pim01PimstatRegisterMessagesRxErrorsCB {
06991         Pim01PimstatRegisterMessagesRxErrorsRF cb;
06992 
06993     public:
06994         operator const Pim01PimstatRegisterMessagesRxErrorsRF& () const { return cb; }
06995         const Pim01PimstatRegisterMessagesRxErrorsRF& operator ->() const { return cb; }
06996         Pim01PimstatRegisterMessagesRxErrorsCB(const Pim01PimstatRegisterMessagesRxErrorsRF& cb)
06997           : cb(cb) { }
06998 
06999         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
07000 
07001         void respond(const uint32_t& arg_value) const {
07002             cb->dispatch(XrlCmdError::OKAY(),
07003                          &arg_value);
07004         }
07005     };
07006 
07007     struct Pim01PimstatRegisterMessagesRxErrorsRsp :
07008       public Pim01PimstatRegisterMessagesRxErrorsCB {
07009         struct args_str {
07010             uint32_t value;
07011         };
07012 
07013     private:
07014         args_str args;
07015 
07016     public:
07017         Pim01PimstatRegisterMessagesRxErrorsRsp(const Pim01PimstatRegisterMessagesRxErrorsRF& cb)
07018           : Pim01PimstatRegisterMessagesRxErrorsCB(cb) { }
07019 
07020         void respond() const {
07021             Pim01PimstatRegisterMessagesRxErrorsCB::
07022             respond(args.value);
07023         }
07024 
07025         args_str* operator ->() {
07026             return &args;
07027         }
07028     };
07029 
07030     virtual void async_pim_0_1_pimstat_register_messages_rx_errors
07031        (
07032     Pim01PimstatRegisterMessagesRxErrorsCB);
07033 #endif
07034 
07035     virtual XrlCmdError pim_0_1_pimstat_register_stop_messages_received(
07036     // Output values,
07037     uint32_t&   value) = 0;
07038 #ifdef XORP_ENABLE_ASYNC_SERVER
07039     typedef
07040     XorpCallback2<void, const XrlCmdError &,
07041     const uint32_t*>::RefPtr
07042     Pim01PimstatRegisterStopMessagesReceivedRF;
07043 
07044     class Pim01PimstatRegisterStopMessagesReceivedCB {
07045         Pim01PimstatRegisterStopMessagesReceivedRF cb;
07046 
07047     public:
07048         operator const Pim01PimstatRegisterStopMessagesReceivedRF& () const { return cb; }
07049         const Pim01PimstatRegisterStopMessagesReceivedRF& operator ->() const { return cb; }
07050         Pim01PimstatRegisterStopMessagesReceivedCB(const Pim01PimstatRegisterStopMessagesReceivedRF& cb)
07051           : cb(cb) { }
07052 
07053         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
07054 
07055         void respond(const uint32_t& arg_value) const {
07056             cb->dispatch(XrlCmdError::OKAY(),
07057                          &arg_value);
07058         }
07059     };
07060 
07061     struct Pim01PimstatRegisterStopMessagesReceivedRsp :
07062       public Pim01PimstatRegisterStopMessagesReceivedCB {
07063         struct args_str {
07064             uint32_t value;
07065         };
07066 
07067     private:
07068         args_str args;
07069 
07070     public:
07071         Pim01PimstatRegisterStopMessagesReceivedRsp(const Pim01PimstatRegisterStopMessagesReceivedRF& cb)
07072           : Pim01PimstatRegisterStopMessagesReceivedCB(cb) { }
07073 
07074         void respond() const {
07075             Pim01PimstatRegisterStopMessagesReceivedCB::
07076             respond(args.value);
07077         }
07078 
07079         args_str* operator ->() {
07080             return &args;
07081         }
07082     };
07083 
07084     virtual void async_pim_0_1_pimstat_register_stop_messages_received
07085        (
07086     Pim01PimstatRegisterStopMessagesReceivedCB);
07087 #endif
07088 
07089     virtual XrlCmdError pim_0_1_pimstat_register_stop_messages_sent(
07090     // Output values,
07091     uint32_t&   value) = 0;
07092 #ifdef XORP_ENABLE_ASYNC_SERVER
07093     typedef
07094     XorpCallback2<void, const XrlCmdError &,
07095     const uint32_t*>::RefPtr
07096     Pim01PimstatRegisterStopMessagesSentRF;
07097 
07098     class Pim01PimstatRegisterStopMessagesSentCB {
07099         Pim01PimstatRegisterStopMessagesSentRF cb;
07100 
07101     public:
07102         operator const Pim01PimstatRegisterStopMessagesSentRF& () const { return cb; }
07103         const Pim01PimstatRegisterStopMessagesSentRF& operator ->() const { return cb; }
07104         Pim01PimstatRegisterStopMessagesSentCB(const Pim01PimstatRegisterStopMessagesSentRF& cb)
07105           : cb(cb) { }
07106 
07107         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
07108 
07109         void respond(const uint32_t& arg_value) const {
07110             cb->dispatch(XrlCmdError::OKAY(),
07111                          &arg_value);
07112         }
07113     };
07114 
07115     struct Pim01PimstatRegisterStopMessagesSentRsp :
07116       public Pim01PimstatRegisterStopMessagesSentCB {
07117         struct args_str {
07118             uint32_t value;
07119         };
07120 
07121     private:
07122         args_str args;
07123 
07124     public:
07125         Pim01PimstatRegisterStopMessagesSentRsp(const Pim01PimstatRegisterStopMessagesSentRF& cb)
07126           : Pim01PimstatRegisterStopMessagesSentCB(cb) { }
07127 
07128         void respond() const {
07129             Pim01PimstatRegisterStopMessagesSentCB::
07130             respond(args.value);
07131         }
07132 
07133         args_str* operator ->() {
07134             return &args;
07135         }
07136     };
07137 
07138     virtual void async_pim_0_1_pimstat_register_stop_messages_sent
07139        (
07140     Pim01PimstatRegisterStopMessagesSentCB);
07141 #endif
07142 
07143     virtual XrlCmdError pim_0_1_pimstat_register_stop_messages_rx_errors(
07144     // Output values,
07145     uint32_t&   value) = 0;
07146 #ifdef XORP_ENABLE_ASYNC_SERVER
07147     typedef
07148     XorpCallback2<void, const XrlCmdError &,
07149     const uint32_t*>::RefPtr
07150     Pim01PimstatRegisterStopMessagesRxErrorsRF;
07151 
07152     class Pim01PimstatRegisterStopMessagesRxErrorsCB {
07153         Pim01PimstatRegisterStopMessagesRxErrorsRF cb;
07154 
07155     public:
07156         operator const Pim01PimstatRegisterStopMessagesRxErrorsRF& () const { return cb; }
07157         const Pim01PimstatRegisterStopMessagesRxErrorsRF& operator ->() const { return cb; }
07158         Pim01PimstatRegisterStopMessagesRxErrorsCB(const Pim01PimstatRegisterStopMessagesRxErrorsRF& cb)
07159           : cb(cb) { }
07160 
07161         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
07162 
07163         void respond(const uint32_t& arg_value) const {
07164             cb->dispatch(XrlCmdError::OKAY(),
07165                          &arg_value);
07166         }
07167     };
07168 
07169     struct Pim01PimstatRegisterStopMessagesRxErrorsRsp :
07170       public Pim01PimstatRegisterStopMessagesRxErrorsCB {
07171         struct args_str {
07172             uint32_t value;
07173         };
07174 
07175     private:
07176         args_str args;
07177 
07178     public:
07179         Pim01PimstatRegisterStopMessagesRxErrorsRsp(const Pim01PimstatRegisterStopMessagesRxErrorsRF& cb)
07180           : Pim01PimstatRegisterStopMessagesRxErrorsCB(cb) { }
07181 
07182         void respond() const {
07183             Pim01PimstatRegisterStopMessagesRxErrorsCB::
07184             respond(args.value);
07185         }
07186 
07187         args_str* operator ->() {
07188             return &args;
07189         }
07190     };
07191 
07192     virtual void async_pim_0_1_pimstat_register_stop_messages_rx_errors
07193        (
07194     Pim01PimstatRegisterStopMessagesRxErrorsCB);
07195 #endif
07196 
07197     virtual XrlCmdError pim_0_1_pimstat_join_prune_messages_received(
07198     // Output values,
07199     uint32_t&   value) = 0;
07200 #ifdef XORP_ENABLE_ASYNC_SERVER
07201     typedef
07202     XorpCallback2<void, const XrlCmdError &,
07203     const uint32_t*>::RefPtr
07204     Pim01PimstatJoinPruneMessagesReceivedRF;
07205 
07206     class Pim01PimstatJoinPruneMessagesReceivedCB {
07207         Pim01PimstatJoinPruneMessagesReceivedRF cb;
07208 
07209     public:
07210         operator const Pim01PimstatJoinPruneMessagesReceivedRF& () const { return cb; }
07211         const Pim01PimstatJoinPruneMessagesReceivedRF& operator ->() const { return cb; }
07212         Pim01PimstatJoinPruneMessagesReceivedCB(const Pim01PimstatJoinPruneMessagesReceivedRF& cb)
07213           : cb(cb) { }
07214 
07215         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
07216 
07217         void respond(const uint32_t& arg_value) const {
07218             cb->dispatch(XrlCmdError::OKAY(),
07219                          &arg_value);
07220         }
07221     };
07222 
07223     struct Pim01PimstatJoinPruneMessagesReceivedRsp :
07224       public Pim01PimstatJoinPruneMessagesReceivedCB {
07225         struct args_str {
07226             uint32_t value;
07227         };
07228 
07229     private:
07230         args_str args;
07231 
07232     public:
07233         Pim01PimstatJoinPruneMessagesReceivedRsp(const Pim01PimstatJoinPruneMessagesReceivedRF& cb)
07234           : Pim01PimstatJoinPruneMessagesReceivedCB(cb) { }
07235 
07236         void respond() const {
07237             Pim01PimstatJoinPruneMessagesReceivedCB::
07238             respond(args.value);
07239         }
07240 
07241         args_str* operator ->() {
07242             return &args;
07243         }
07244     };
07245 
07246     virtual void async_pim_0_1_pimstat_join_prune_messages_received
07247        (
07248     Pim01PimstatJoinPruneMessagesReceivedCB);
07249 #endif
07250 
07251     virtual XrlCmdError pim_0_1_pimstat_join_prune_messages_sent(
07252     // Output values,
07253     uint32_t&   value) = 0;
07254 #ifdef XORP_ENABLE_ASYNC_SERVER
07255     typedef
07256     XorpCallback2<void, const XrlCmdError &,
07257     const uint32_t*>::RefPtr
07258     Pim01PimstatJoinPruneMessagesSentRF;
07259 
07260     class Pim01PimstatJoinPruneMessagesSentCB {
07261         Pim01PimstatJoinPruneMessagesSentRF cb;
07262 
07263     public:
07264         operator const Pim01PimstatJoinPruneMessagesSentRF& () const { return cb; }
07265         const Pim01PimstatJoinPruneMessagesSentRF& operator ->() const { return cb; }
07266         Pim01PimstatJoinPruneMessagesSentCB(const Pim01PimstatJoinPruneMessagesSentRF& cb)
07267           : cb(cb) { }
07268 
07269         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
07270 
07271         void respond(const uint32_t& arg_value) const {
07272             cb->dispatch(XrlCmdError::OKAY(),
07273                          &arg_value);
07274         }
07275     };
07276 
07277     struct Pim01PimstatJoinPruneMessagesSentRsp :
07278       public Pim01PimstatJoinPruneMessagesSentCB {
07279         struct args_str {
07280             uint32_t value;
07281         };
07282 
07283     private:
07284         args_str args;
07285 
07286     public:
07287         Pim01PimstatJoinPruneMessagesSentRsp(const Pim01PimstatJoinPruneMessagesSentRF& cb)
07288           : Pim01PimstatJoinPruneMessagesSentCB(cb) { }
07289 
07290         void respond() const {
07291             Pim01PimstatJoinPruneMessagesSentCB::
07292             respond(args.value);
07293         }
07294 
07295         args_str* operator ->() {
07296             return &args;
07297         }
07298     };
07299 
07300     virtual void async_pim_0_1_pimstat_join_prune_messages_sent
07301        (
07302     Pim01PimstatJoinPruneMessagesSentCB);
07303 #endif
07304 
07305     virtual XrlCmdError pim_0_1_pimstat_join_prune_messages_rx_errors(
07306     // Output values,
07307     uint32_t&   value) = 0;
07308 #ifdef XORP_ENABLE_ASYNC_SERVER
07309     typedef
07310     XorpCallback2<void, const XrlCmdError &,
07311     const uint32_t*>::RefPtr
07312     Pim01PimstatJoinPruneMessagesRxErrorsRF;
07313 
07314     class Pim01PimstatJoinPruneMessagesRxErrorsCB {
07315         Pim01PimstatJoinPruneMessagesRxErrorsRF cb;
07316 
07317     public:
07318         operator const Pim01PimstatJoinPruneMessagesRxErrorsRF& () const { return cb; }
07319         const Pim01PimstatJoinPruneMessagesRxErrorsRF& operator ->() const { return cb; }
07320         Pim01PimstatJoinPruneMessagesRxErrorsCB(const Pim01PimstatJoinPruneMessagesRxErrorsRF& cb)
07321           : cb(cb) { }
07322 
07323         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
07324 
07325         void respond(const uint32_t& arg_value) const {
07326             cb->dispatch(XrlCmdError::OKAY(),
07327                          &arg_value);
07328         }
07329     };
07330 
07331     struct Pim01PimstatJoinPruneMessagesRxErrorsRsp :
07332       public Pim01PimstatJoinPruneMessagesRxErrorsCB {
07333         struct args_str {
07334             uint32_t value;
07335         };
07336 
07337     private:
07338         args_str args;
07339 
07340     public:
07341         Pim01PimstatJoinPruneMessagesRxErrorsRsp(const Pim01PimstatJoinPruneMessagesRxErrorsRF& cb)
07342           : Pim01PimstatJoinPruneMessagesRxErrorsCB(cb) { }
07343 
07344         void respond() const {
07345             Pim01PimstatJoinPruneMessagesRxErrorsCB::
07346             respond(args.value);
07347         }
07348 
07349         args_str* operator ->() {
07350             return &args;
07351         }
07352     };
07353 
07354     virtual void async_pim_0_1_pimstat_join_prune_messages_rx_errors
07355        (
07356     Pim01PimstatJoinPruneMessagesRxErrorsCB);
07357 #endif
07358 
07359     virtual XrlCmdError pim_0_1_pimstat_bootstrap_messages_received(
07360     // Output values,
07361     uint32_t&   value) = 0;
07362 #ifdef XORP_ENABLE_ASYNC_SERVER
07363     typedef
07364     XorpCallback2<void, const XrlCmdError &,
07365     const uint32_t*>::RefPtr
07366     Pim01PimstatBootstrapMessagesReceivedRF;
07367 
07368     class Pim01PimstatBootstrapMessagesReceivedCB {
07369         Pim01PimstatBootstrapMessagesReceivedRF cb;
07370 
07371     public:
07372         operator const Pim01PimstatBootstrapMessagesReceivedRF& () const { return cb; }
07373         const Pim01PimstatBootstrapMessagesReceivedRF& operator ->() const { return cb; }
07374         Pim01PimstatBootstrapMessagesReceivedCB(const Pim01PimstatBootstrapMessagesReceivedRF& cb)
07375           : cb(cb) { }
07376 
07377         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
07378 
07379         void respond(const uint32_t& arg_value) const {
07380             cb->dispatch(XrlCmdError::OKAY(),
07381                          &arg_value);
07382         }
07383     };
07384 
07385     struct Pim01PimstatBootstrapMessagesReceivedRsp :
07386       public Pim01PimstatBootstrapMessagesReceivedCB {
07387         struct args_str {
07388             uint32_t value;
07389         };
07390 
07391     private:
07392         args_str args;
07393 
07394     public:
07395         Pim01PimstatBootstrapMessagesReceivedRsp(const Pim01PimstatBootstrapMessagesReceivedRF& cb)
07396           : Pim01PimstatBootstrapMessagesReceivedCB(cb) { }
07397 
07398         void respond() const {
07399             Pim01PimstatBootstrapMessagesReceivedCB::
07400             respond(args.value);
07401         }
07402 
07403         args_str* operator ->() {
07404             return &args;
07405         }
07406     };
07407 
07408     virtual void async_pim_0_1_pimstat_bootstrap_messages_received
07409        (
07410     Pim01PimstatBootstrapMessagesReceivedCB);
07411 #endif
07412 
07413     virtual XrlCmdError pim_0_1_pimstat_bootstrap_messages_sent(
07414     // Output values,
07415     uint32_t&   value) = 0;
07416 #ifdef XORP_ENABLE_ASYNC_SERVER
07417     typedef
07418     XorpCallback2<void, const XrlCmdError &,
07419     const uint32_t*>::RefPtr
07420     Pim01PimstatBootstrapMessagesSentRF;
07421 
07422     class Pim01PimstatBootstrapMessagesSentCB {
07423         Pim01PimstatBootstrapMessagesSentRF cb;
07424 
07425     public:
07426         operator const Pim01PimstatBootstrapMessagesSentRF& () const { return cb; }
07427         const Pim01PimstatBootstrapMessagesSentRF& operator ->() const { return cb; }
07428         Pim01PimstatBootstrapMessagesSentCB(const Pim01PimstatBootstrapMessagesSentRF& cb)
07429           : cb(cb) { }
07430 
07431         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
07432 
07433         void respond(const uint32_t& arg_value) const {
07434             cb->dispatch(XrlCmdError::OKAY(),
07435                          &arg_value);
07436         }
07437     };
07438 
07439     struct Pim01PimstatBootstrapMessagesSentRsp :
07440       public Pim01PimstatBootstrapMessagesSentCB {
07441         struct args_str {
07442             uint32_t value;
07443         };
07444 
07445     private:
07446         args_str args;
07447 
07448     public:
07449         Pim01PimstatBootstrapMessagesSentRsp(const Pim01PimstatBootstrapMessagesSentRF& cb)
07450           : Pim01PimstatBootstrapMessagesSentCB(cb) { }
07451 
07452         void respond() const {
07453             Pim01PimstatBootstrapMessagesSentCB::
07454             respond(args.value);
07455         }
07456 
07457         args_str* operator ->() {
07458             return &args;
07459         }
07460     };
07461 
07462     virtual void async_pim_0_1_pimstat_bootstrap_messages_sent
07463        (
07464     Pim01PimstatBootstrapMessagesSentCB);
07465 #endif
07466 
07467     virtual XrlCmdError pim_0_1_pimstat_bootstrap_messages_rx_errors(
07468     // Output values,
07469     uint32_t&   value) = 0;
07470 #ifdef XORP_ENABLE_ASYNC_SERVER
07471     typedef
07472     XorpCallback2<void, const XrlCmdError &,
07473     const uint32_t*>::RefPtr
07474     Pim01PimstatBootstrapMessagesRxErrorsRF;
07475 
07476     class Pim01PimstatBootstrapMessagesRxErrorsCB {
07477         Pim01PimstatBootstrapMessagesRxErrorsRF cb;
07478 
07479     public:
07480         operator const Pim01PimstatBootstrapMessagesRxErrorsRF& () const { return cb; }
07481         const Pim01PimstatBootstrapMessagesRxErrorsRF& operator ->() const { return cb; }
07482         Pim01PimstatBootstrapMessagesRxErrorsCB(const Pim01PimstatBootstrapMessagesRxErrorsRF& cb)
07483           : cb(cb) { }
07484 
07485         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
07486 
07487         void respond(const uint32_t& arg_value) const {
07488             cb->dispatch(XrlCmdError::OKAY(),
07489                          &arg_value);
07490         }
07491     };
07492 
07493     struct Pim01PimstatBootstrapMessagesRxErrorsRsp :
07494       public Pim01PimstatBootstrapMessagesRxErrorsCB {
07495         struct args_str {
07496             uint32_t value;
07497         };
07498 
07499     private:
07500         args_str args;
07501 
07502     public:
07503         Pim01PimstatBootstrapMessagesRxErrorsRsp(const Pim01PimstatBootstrapMessagesRxErrorsRF& cb)
07504           : Pim01PimstatBootstrapMessagesRxErrorsCB(cb) { }
07505 
07506         void respond() const {
07507             Pim01PimstatBootstrapMessagesRxErrorsCB::
07508             respond(args.value);
07509         }
07510 
07511         args_str* operator ->() {
07512             return &args;
07513         }
07514     };
07515 
07516     virtual void async_pim_0_1_pimstat_bootstrap_messages_rx_errors
07517        (
07518     Pim01PimstatBootstrapMessagesRxErrorsCB);
07519 #endif
07520 
07521     virtual XrlCmdError pim_0_1_pimstat_assert_messages_received(
07522     // Output values,
07523     uint32_t&   value) = 0;
07524 #ifdef XORP_ENABLE_ASYNC_SERVER
07525     typedef
07526     XorpCallback2<void, const XrlCmdError &,
07527     const uint32_t*>::RefPtr
07528     Pim01PimstatAssertMessagesReceivedRF;
07529 
07530     class Pim01PimstatAssertMessagesReceivedCB {
07531         Pim01PimstatAssertMessagesReceivedRF cb;
07532 
07533     public:
07534         operator const Pim01PimstatAssertMessagesReceivedRF& () const { return cb; }
07535         const Pim01PimstatAssertMessagesReceivedRF& operator ->() const { return cb; }
07536         Pim01PimstatAssertMessagesReceivedCB(const Pim01PimstatAssertMessagesReceivedRF& cb)
07537           : cb(cb) { }
07538 
07539         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
07540 
07541         void respond(const uint32_t& arg_value) const {
07542             cb->dispatch(XrlCmdError::OKAY(),
07543                          &arg_value);
07544         }
07545     };
07546 
07547     struct Pim01PimstatAssertMessagesReceivedRsp :
07548       public Pim01PimstatAssertMessagesReceivedCB {
07549         struct args_str {
07550             uint32_t value;
07551         };
07552 
07553     private:
07554         args_str args;
07555 
07556     public:
07557         Pim01PimstatAssertMessagesReceivedRsp(const Pim01PimstatAssertMessagesReceivedRF& cb)
07558           : Pim01PimstatAssertMessagesReceivedCB(cb) { }
07559 
07560         void respond() const {
07561             Pim01PimstatAssertMessagesReceivedCB::
07562             respond(args.value);
07563         }
07564 
07565         args_str* operator ->() {
07566             return &args;
07567         }
07568     };
07569 
07570     virtual void async_pim_0_1_pimstat_assert_messages_received
07571        (
07572     Pim01PimstatAssertMessagesReceivedCB);
07573 #endif
07574 
07575     virtual XrlCmdError pim_0_1_pimstat_assert_messages_sent(
07576     // Output values,
07577     uint32_t&   value) = 0;
07578 #ifdef XORP_ENABLE_ASYNC_SERVER
07579     typedef
07580     XorpCallback2<void, const XrlCmdError &,
07581     const uint32_t*>::RefPtr
07582     Pim01PimstatAssertMessagesSentRF;
07583 
07584     class Pim01PimstatAssertMessagesSentCB {
07585         Pim01PimstatAssertMessagesSentRF cb;
07586 
07587     public:
07588         operator const Pim01PimstatAssertMessagesSentRF& () const { return cb; }
07589         const Pim01PimstatAssertMessagesSentRF& operator ->() const { return cb; }
07590         Pim01PimstatAssertMessagesSentCB(const Pim01PimstatAssertMessagesSentRF& cb)
07591           : cb(cb) { }
07592 
07593         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
07594 
07595         void respond(const uint32_t& arg_value) const {
07596             cb->dispatch(XrlCmdError::OKAY(),
07597                          &arg_value);
07598         }
07599     };
07600 
07601     struct Pim01PimstatAssertMessagesSentRsp :
07602       public Pim01PimstatAssertMessagesSentCB {
07603         struct args_str {
07604             uint32_t value;
07605         };
07606 
07607     private:
07608         args_str args;
07609 
07610     public:
07611         Pim01PimstatAssertMessagesSentRsp(const Pim01PimstatAssertMessagesSentRF& cb)
07612           : Pim01PimstatAssertMessagesSentCB(cb) { }
07613 
07614         void respond() const {
07615             Pim01PimstatAssertMessagesSentCB::
07616             respond(args.value);
07617         }
07618 
07619         args_str* operator ->() {
07620             return &args;
07621         }
07622     };
07623 
07624     virtual void async_pim_0_1_pimstat_assert_messages_sent
07625        (
07626     Pim01PimstatAssertMessagesSentCB);
07627 #endif
07628 
07629     virtual XrlCmdError pim_0_1_pimstat_assert_messages_rx_errors(
07630     // Output values,
07631     uint32_t&   value) = 0;
07632 #ifdef XORP_ENABLE_ASYNC_SERVER
07633     typedef
07634     XorpCallback2<void, const XrlCmdError &,
07635     const uint32_t*>::RefPtr
07636     Pim01PimstatAssertMessagesRxErrorsRF;
07637 
07638     class Pim01PimstatAssertMessagesRxErrorsCB {
07639         Pim01PimstatAssertMessagesRxErrorsRF cb;
07640 
07641     public:
07642         operator const Pim01PimstatAssertMessagesRxErrorsRF& () const { return cb; }
07643         const Pim01PimstatAssertMessagesRxErrorsRF& operator ->() const { return cb; }
07644         Pim01PimstatAssertMessagesRxErrorsCB(const Pim01PimstatAssertMessagesRxErrorsRF& cb)
07645           : cb(cb) { }
07646 
07647         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
07648 
07649         void respond(const uint32_t& arg_value) const {
07650             cb->dispatch(XrlCmdError::OKAY(),
07651                          &arg_value);
07652         }
07653     };
07654 
07655     struct Pim01PimstatAssertMessagesRxErrorsRsp :
07656       public Pim01PimstatAssertMessagesRxErrorsCB {
07657         struct args_str {
07658             uint32_t value;
07659         };
07660 
07661     private:
07662         args_str args;
07663 
07664     public:
07665         Pim01PimstatAssertMessagesRxErrorsRsp(const Pim01PimstatAssertMessagesRxErrorsRF& cb)
07666           : Pim01PimstatAssertMessagesRxErrorsCB(cb) { }
07667 
07668         void respond() const {
07669             Pim01PimstatAssertMessagesRxErrorsCB::
07670             respond(args.value);
07671         }
07672 
07673         args_str* operator ->() {
07674             return &args;
07675         }
07676     };
07677 
07678     virtual void async_pim_0_1_pimstat_assert_messages_rx_errors
07679        (
07680     Pim01PimstatAssertMessagesRxErrorsCB);
07681 #endif
07682 
07683     virtual XrlCmdError pim_0_1_pimstat_graft_messages_received(
07684     // Output values,
07685     uint32_t&   value) = 0;
07686 #ifdef XORP_ENABLE_ASYNC_SERVER
07687     typedef
07688     XorpCallback2<void, const XrlCmdError &,
07689     const uint32_t*>::RefPtr
07690     Pim01PimstatGraftMessagesReceivedRF;
07691 
07692     class Pim01PimstatGraftMessagesReceivedCB {
07693         Pim01PimstatGraftMessagesReceivedRF cb;
07694 
07695     public:
07696         operator const Pim01PimstatGraftMessagesReceivedRF& () const { return cb; }
07697         const Pim01PimstatGraftMessagesReceivedRF& operator ->() const { return cb; }
07698         Pim01PimstatGraftMessagesReceivedCB(const Pim01PimstatGraftMessagesReceivedRF& cb)
07699           : cb(cb) { }
07700 
07701         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
07702 
07703         void respond(const uint32_t& arg_value) const {
07704             cb->dispatch(XrlCmdError::OKAY(),
07705                          &arg_value);
07706         }
07707     };
07708 
07709     struct Pim01PimstatGraftMessagesReceivedRsp :
07710       public Pim01PimstatGraftMessagesReceivedCB {
07711         struct args_str {
07712             uint32_t value;
07713         };
07714 
07715     private:
07716         args_str args;
07717 
07718     public:
07719         Pim01PimstatGraftMessagesReceivedRsp(const Pim01PimstatGraftMessagesReceivedRF& cb)
07720           : Pim01PimstatGraftMessagesReceivedCB(cb) { }
07721 
07722         void respond() const {
07723             Pim01PimstatGraftMessagesReceivedCB::
07724             respond(args.value);
07725         }
07726 
07727         args_str* operator ->() {
07728             return &args;
07729         }
07730     };
07731 
07732     virtual void async_pim_0_1_pimstat_graft_messages_received
07733        (
07734     Pim01PimstatGraftMessagesReceivedCB);
07735 #endif
07736 
07737     virtual XrlCmdError pim_0_1_pimstat_graft_messages_sent(
07738     // Output values,
07739     uint32_t&   value) = 0;
07740 #ifdef XORP_ENABLE_ASYNC_SERVER
07741     typedef
07742     XorpCallback2<void, const XrlCmdError &,
07743     const uint32_t*>::RefPtr
07744     Pim01PimstatGraftMessagesSentRF;
07745 
07746     class Pim01PimstatGraftMessagesSentCB {
07747         Pim01PimstatGraftMessagesSentRF cb;
07748 
07749     public:
07750         operator const Pim01PimstatGraftMessagesSentRF& () const { return cb; }
07751         const Pim01PimstatGraftMessagesSentRF& operator ->() const { return cb; }
07752         Pim01PimstatGraftMessagesSentCB(const Pim01PimstatGraftMessagesSentRF& cb)
07753           : cb(cb) { }
07754 
07755         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
07756 
07757         void respond(const uint32_t& arg_value) const {
07758             cb->dispatch(XrlCmdError::OKAY(),
07759                          &arg_value);
07760         }
07761     };
07762 
07763     struct Pim01PimstatGraftMessagesSentRsp :
07764       public Pim01PimstatGraftMessagesSentCB {
07765         struct args_str {
07766             uint32_t value;
07767         };
07768 
07769     private:
07770         args_str args;
07771 
07772     public:
07773         Pim01PimstatGraftMessagesSentRsp(const Pim01PimstatGraftMessagesSentRF& cb)
07774           : Pim01PimstatGraftMessagesSentCB(cb) { }
07775 
07776         void respond() const {
07777             Pim01PimstatGraftMessagesSentCB::
07778             respond(args.value);
07779         }
07780 
07781         args_str* operator ->() {
07782             return &args;
07783         }
07784     };
07785 
07786     virtual void async_pim_0_1_pimstat_graft_messages_sent
07787        (
07788     Pim01PimstatGraftMessagesSentCB);
07789 #endif
07790 
07791     virtual XrlCmdError pim_0_1_pimstat_graft_messages_rx_errors(
07792     // Output values,
07793     uint32_t&   value) = 0;
07794 #ifdef XORP_ENABLE_ASYNC_SERVER
07795     typedef
07796     XorpCallback2<void, const XrlCmdError &,
07797     const uint32_t*>::RefPtr
07798     Pim01PimstatGraftMessagesRxErrorsRF;
07799 
07800     class Pim01PimstatGraftMessagesRxErrorsCB {
07801         Pim01PimstatGraftMessagesRxErrorsRF cb;
07802 
07803     public:
07804         operator const Pim01PimstatGraftMessagesRxErrorsRF& () const { return cb; }
07805         const Pim01PimstatGraftMessagesRxErrorsRF& operator ->() const { return cb; }
07806         Pim01PimstatGraftMessagesRxErrorsCB(const Pim01PimstatGraftMessagesRxErrorsRF& cb)
07807           : cb(cb) { }
07808 
07809         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
07810 
07811         void respond(const uint32_t& arg_value) const {
07812             cb->dispatch(XrlCmdError::OKAY(),
07813                          &arg_value);
07814         }
07815     };
07816 
07817     struct Pim01PimstatGraftMessagesRxErrorsRsp :
07818       public Pim01PimstatGraftMessagesRxErrorsCB {
07819         struct args_str {
07820             uint32_t value;
07821         };
07822 
07823     private:
07824         args_str args;
07825 
07826     public:
07827         Pim01PimstatGraftMessagesRxErrorsRsp(const Pim01PimstatGraftMessagesRxErrorsRF& cb)
07828           : Pim01PimstatGraftMessagesRxErrorsCB(cb) { }
07829 
07830         void respond() const {
07831             Pim01PimstatGraftMessagesRxErrorsCB::
07832             respond(args.value);
07833         }
07834 
07835         args_str* operator ->() {
07836             return &args;
07837         }
07838     };
07839 
07840     virtual void async_pim_0_1_pimstat_graft_messages_rx_errors
07841        (
07842     Pim01PimstatGraftMessagesRxErrorsCB);
07843 #endif
07844 
07845     virtual XrlCmdError pim_0_1_pimstat_graft_ack_messages_received(
07846     // Output values,
07847     uint32_t&   value) = 0;
07848 #ifdef XORP_ENABLE_ASYNC_SERVER
07849     typedef
07850     XorpCallback2<void, const XrlCmdError &,
07851     const uint32_t*>::RefPtr
07852     Pim01PimstatGraftAckMessagesReceivedRF;
07853 
07854     class Pim01PimstatGraftAckMessagesReceivedCB {
07855         Pim01PimstatGraftAckMessagesReceivedRF cb;
07856 
07857     public:
07858         operator const Pim01PimstatGraftAckMessagesReceivedRF& () const { return cb; }
07859         const Pim01PimstatGraftAckMessagesReceivedRF& operator ->() const { return cb; }
07860         Pim01PimstatGraftAckMessagesReceivedCB(const Pim01PimstatGraftAckMessagesReceivedRF& cb)
07861           : cb(cb) { }
07862 
07863         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
07864 
07865         void respond(const uint32_t& arg_value) const {
07866             cb->dispatch(XrlCmdError::OKAY(),
07867                          &arg_value);
07868         }
07869     };
07870 
07871     struct Pim01PimstatGraftAckMessagesReceivedRsp :
07872       public Pim01PimstatGraftAckMessagesReceivedCB {
07873         struct args_str {
07874             uint32_t value;
07875         };
07876 
07877     private:
07878         args_str args;
07879 
07880     public:
07881         Pim01PimstatGraftAckMessagesReceivedRsp(const Pim01PimstatGraftAckMessagesReceivedRF& cb)
07882           : Pim01PimstatGraftAckMessagesReceivedCB(cb) { }
07883 
07884         void respond() const {
07885             Pim01PimstatGraftAckMessagesReceivedCB::
07886             respond(args.value);
07887         }
07888 
07889         args_str* operator ->() {
07890             return &args;
07891         }
07892     };
07893 
07894     virtual void async_pim_0_1_pimstat_graft_ack_messages_received
07895        (
07896     Pim01PimstatGraftAckMessagesReceivedCB);
07897 #endif
07898 
07899     virtual XrlCmdError pim_0_1_pimstat_graft_ack_messages_sent(
07900     // Output values,
07901     uint32_t&   value) = 0;
07902 #ifdef XORP_ENABLE_ASYNC_SERVER
07903     typedef
07904     XorpCallback2<void, const XrlCmdError &,
07905     const uint32_t*>::RefPtr
07906     Pim01PimstatGraftAckMessagesSentRF;
07907 
07908     class Pim01PimstatGraftAckMessagesSentCB {
07909         Pim01PimstatGraftAckMessagesSentRF cb;
07910 
07911     public:
07912         operator const Pim01PimstatGraftAckMessagesSentRF& () const { return cb; }
07913         const Pim01PimstatGraftAckMessagesSentRF& operator ->() const { return cb; }
07914         Pim01PimstatGraftAckMessagesSentCB(const Pim01PimstatGraftAckMessagesSentRF& cb)
07915           : cb(cb) { }
07916 
07917         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
07918 
07919         void respond(const uint32_t& arg_value) const {
07920             cb->dispatch(XrlCmdError::OKAY(),
07921                          &arg_value);
07922         }
07923     };
07924 
07925     struct Pim01PimstatGraftAckMessagesSentRsp :
07926       public Pim01PimstatGraftAckMessagesSentCB {
07927         struct args_str {
07928             uint32_t value;
07929         };
07930 
07931     private:
07932         args_str args;
07933 
07934     public:
07935         Pim01PimstatGraftAckMessagesSentRsp(const Pim01PimstatGraftAckMessagesSentRF& cb)
07936           : Pim01PimstatGraftAckMessagesSentCB(cb) { }
07937 
07938         void respond() const {
07939             Pim01PimstatGraftAckMessagesSentCB::
07940             respond(args.value);
07941         }
07942 
07943         args_str* operator ->() {
07944             return &args;
07945         }
07946     };
07947 
07948     virtual void async_pim_0_1_pimstat_graft_ack_messages_sent
07949        (
07950     Pim01PimstatGraftAckMessagesSentCB);
07951 #endif
07952 
07953     virtual XrlCmdError pim_0_1_pimstat_graft_ack_messages_rx_errors(
07954     // Output values,
07955     uint32_t&   value) = 0;
07956 #ifdef XORP_ENABLE_ASYNC_SERVER
07957     typedef
07958     XorpCallback2<void, const XrlCmdError &,
07959     const uint32_t*>::RefPtr
07960     Pim01PimstatGraftAckMessagesRxErrorsRF;
07961 
07962     class Pim01PimstatGraftAckMessagesRxErrorsCB {
07963         Pim01PimstatGraftAckMessagesRxErrorsRF cb;
07964 
07965     public:
07966         operator const Pim01PimstatGraftAckMessagesRxErrorsRF& () const { return cb; }
07967         const Pim01PimstatGraftAckMessagesRxErrorsRF& operator ->() const { return cb; }
07968         Pim01PimstatGraftAckMessagesRxErrorsCB(const Pim01PimstatGraftAckMessagesRxErrorsRF& cb)
07969           : cb(cb) { }
07970 
07971         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
07972 
07973         void respond(const uint32_t& arg_value) const {
07974             cb->dispatch(XrlCmdError::OKAY(),
07975                          &arg_value);
07976         }
07977     };
07978 
07979     struct Pim01PimstatGraftAckMessagesRxErrorsRsp :
07980       public Pim01PimstatGraftAckMessagesRxErrorsCB {
07981         struct args_str {
07982             uint32_t value;
07983         };
07984 
07985     private:
07986         args_str args;
07987 
07988     public:
07989         Pim01PimstatGraftAckMessagesRxErrorsRsp(const Pim01PimstatGraftAckMessagesRxErrorsRF& cb)
07990           : Pim01PimstatGraftAckMessagesRxErrorsCB(cb) { }
07991 
07992         void respond() const {
07993             Pim01PimstatGraftAckMessagesRxErrorsCB::
07994             respond(args.value);
07995         }
07996 
07997         args_str* operator ->() {
07998             return &args;
07999         }
08000     };
08001 
08002     virtual void async_pim_0_1_pimstat_graft_ack_messages_rx_errors
08003        (
08004     Pim01PimstatGraftAckMessagesRxErrorsCB);
08005 #endif
08006 
08007     virtual XrlCmdError pim_0_1_pimstat_candidate_rp_messages_received(
08008     // Output values,
08009     uint32_t&   value) = 0;
08010 #ifdef XORP_ENABLE_ASYNC_SERVER
08011     typedef
08012     XorpCallback2<void, const XrlCmdError &,
08013     const uint32_t*>::RefPtr
08014     Pim01PimstatCandidateRpMessagesReceivedRF;
08015 
08016     class Pim01PimstatCandidateRpMessagesReceivedCB {
08017         Pim01PimstatCandidateRpMessagesReceivedRF cb;
08018 
08019     public:
08020         operator const Pim01PimstatCandidateRpMessagesReceivedRF& () const { return cb; }
08021         const Pim01PimstatCandidateRpMessagesReceivedRF& operator ->() const { return cb; }
08022         Pim01PimstatCandidateRpMessagesReceivedCB(const Pim01PimstatCandidateRpMessagesReceivedRF& cb)
08023           : cb(cb) { }
08024 
08025         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
08026 
08027         void respond(const uint32_t& arg_value) const {
08028             cb->dispatch(XrlCmdError::OKAY(),
08029                          &arg_value);
08030         }
08031     };
08032 
08033     struct Pim01PimstatCandidateRpMessagesReceivedRsp :
08034       public Pim01PimstatCandidateRpMessagesReceivedCB {
08035         struct args_str {
08036             uint32_t value;
08037         };
08038 
08039     private:
08040         args_str args;
08041 
08042     public:
08043         Pim01PimstatCandidateRpMessagesReceivedRsp(const Pim01PimstatCandidateRpMessagesReceivedRF& cb)
08044           : Pim01PimstatCandidateRpMessagesReceivedCB(cb) { }
08045 
08046         void respond() const {
08047             Pim01PimstatCandidateRpMessagesReceivedCB::
08048             respond(args.value);
08049         }
08050 
08051         args_str* operator ->() {
08052             return &args;
08053         }
08054     };
08055 
08056     virtual void async_pim_0_1_pimstat_candidate_rp_messages_received
08057        (
08058     Pim01PimstatCandidateRpMessagesReceivedCB);
08059 #endif
08060 
08061     virtual XrlCmdError pim_0_1_pimstat_candidate_rp_messages_sent(
08062     // Output values,
08063     uint32_t&   value) = 0;
08064 #ifdef XORP_ENABLE_ASYNC_SERVER
08065     typedef
08066     XorpCallback2<void, const XrlCmdError &,
08067     const uint32_t*>::RefPtr
08068     Pim01PimstatCandidateRpMessagesSentRF;
08069 
08070     class Pim01PimstatCandidateRpMessagesSentCB {
08071         Pim01PimstatCandidateRpMessagesSentRF cb;
08072 
08073     public:
08074         operator const Pim01PimstatCandidateRpMessagesSentRF& () const { return cb; }
08075         const Pim01PimstatCandidateRpMessagesSentRF& operator ->() const { return cb; }
08076         Pim01PimstatCandidateRpMessagesSentCB(const Pim01PimstatCandidateRpMessagesSentRF& cb)
08077           : cb(cb) { }
08078 
08079         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
08080 
08081         void respond(const uint32_t& arg_value) const {
08082             cb->dispatch(XrlCmdError::OKAY(),
08083                          &arg_value);
08084         }
08085     };
08086 
08087     struct Pim01PimstatCandidateRpMessagesSentRsp :
08088       public Pim01PimstatCandidateRpMessagesSentCB {
08089         struct args_str {
08090             uint32_t value;
08091         };
08092 
08093     private:
08094         args_str args;
08095 
08096     public:
08097         Pim01PimstatCandidateRpMessagesSentRsp(const Pim01PimstatCandidateRpMessagesSentRF& cb)
08098           : Pim01PimstatCandidateRpMessagesSentCB(cb) { }
08099 
08100         void respond() const {
08101             Pim01PimstatCandidateRpMessagesSentCB::
08102             respond(args.value);
08103         }
08104 
08105         args_str* operator ->() {
08106             return &args;
08107         }
08108     };
08109 
08110     virtual void async_pim_0_1_pimstat_candidate_rp_messages_sent
08111        (
08112     Pim01PimstatCandidateRpMessagesSentCB);
08113 #endif
08114 
08115     virtual XrlCmdError pim_0_1_pimstat_candidate_rp_messages_rx_errors(
08116     // Output values,
08117     uint32_t&   value) = 0;
08118 #ifdef XORP_ENABLE_ASYNC_SERVER
08119     typedef
08120     XorpCallback2<void, const XrlCmdError &,
08121     const uint32_t*>::RefPtr
08122     Pim01PimstatCandidateRpMessagesRxErrorsRF;
08123 
08124     class Pim01PimstatCandidateRpMessagesRxErrorsCB {
08125         Pim01PimstatCandidateRpMessagesRxErrorsRF cb;
08126 
08127     public:
08128         operator const Pim01PimstatCandidateRpMessagesRxErrorsRF& () const { return cb; }
08129         const Pim01PimstatCandidateRpMessagesRxErrorsRF& operator ->() const { return cb; }
08130         Pim01PimstatCandidateRpMessagesRxErrorsCB(const Pim01PimstatCandidateRpMessagesRxErrorsRF& cb)
08131           : cb(cb) { }
08132 
08133         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
08134 
08135         void respond(const uint32_t& arg_value) const {
08136             cb->dispatch(XrlCmdError::OKAY(),
08137                          &arg_value);
08138         }
08139     };
08140 
08141     struct Pim01PimstatCandidateRpMessagesRxErrorsRsp :
08142       public Pim01PimstatCandidateRpMessagesRxErrorsCB {
08143         struct args_str {
08144             uint32_t value;
08145         };
08146 
08147     private:
08148         args_str args;
08149 
08150     public:
08151         Pim01PimstatCandidateRpMessagesRxErrorsRsp(const Pim01PimstatCandidateRpMessagesRxErrorsRF& cb)
08152           : Pim01PimstatCandidateRpMessagesRxErrorsCB(cb) { }
08153 
08154         void respond() const {
08155             Pim01PimstatCandidateRpMessagesRxErrorsCB::
08156             respond(args.value);
08157         }
08158 
08159         args_str* operator ->() {
08160             return &args;
08161         }
08162     };
08163 
08164     virtual void async_pim_0_1_pimstat_candidate_rp_messages_rx_errors
08165        (
08166     Pim01PimstatCandidateRpMessagesRxErrorsCB);
08167 #endif
08168 
08169     virtual XrlCmdError pim_0_1_pimstat_unknown_type_messages(
08170     // Output values,
08171     uint32_t&   value) = 0;
08172 #ifdef XORP_ENABLE_ASYNC_SERVER
08173     typedef
08174     XorpCallback2<void, const XrlCmdError &,
08175     const uint32_t*>::RefPtr
08176     Pim01PimstatUnknownTypeMessagesRF;
08177 
08178     class Pim01PimstatUnknownTypeMessagesCB {
08179         Pim01PimstatUnknownTypeMessagesRF cb;
08180 
08181     public:
08182         operator const Pim01PimstatUnknownTypeMessagesRF& () const { return cb; }
08183         const Pim01PimstatUnknownTypeMessagesRF& operator ->() const { return cb; }
08184         Pim01PimstatUnknownTypeMessagesCB(const Pim01PimstatUnknownTypeMessagesRF& cb)
08185           : cb(cb) { }
08186 
08187         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
08188 
08189         void respond(const uint32_t& arg_value) const {
08190             cb->dispatch(XrlCmdError::OKAY(),
08191                          &arg_value);
08192         }
08193     };
08194 
08195     struct Pim01PimstatUnknownTypeMessagesRsp :
08196       public Pim01PimstatUnknownTypeMessagesCB {
08197         struct args_str {
08198             uint32_t value;
08199         };
08200 
08201     private:
08202         args_str args;
08203 
08204     public:
08205         Pim01PimstatUnknownTypeMessagesRsp(const Pim01PimstatUnknownTypeMessagesRF& cb)
08206           : Pim01PimstatUnknownTypeMessagesCB(cb) { }
08207 
08208         void respond() const {
08209             Pim01PimstatUnknownTypeMessagesCB::
08210             respond(args.value);
08211         }
08212 
08213         args_str* operator ->() {
08214             return &args;
08215         }
08216     };
08217 
08218     virtual void async_pim_0_1_pimstat_unknown_type_messages
08219        (
08220     Pim01PimstatUnknownTypeMessagesCB);
08221 #endif
08222 
08223     virtual XrlCmdError pim_0_1_pimstat_unknown_version_messages(
08224     // Output values,
08225     uint32_t&   value) = 0;
08226 #ifdef XORP_ENABLE_ASYNC_SERVER
08227     typedef
08228     XorpCallback2<void, const XrlCmdError &,
08229     const uint32_t*>::RefPtr
08230     Pim01PimstatUnknownVersionMessagesRF;
08231 
08232     class Pim01PimstatUnknownVersionMessagesCB {
08233         Pim01PimstatUnknownVersionMessagesRF cb;
08234 
08235     public:
08236         operator const Pim01PimstatUnknownVersionMessagesRF& () const { return cb; }
08237         const Pim01PimstatUnknownVersionMessagesRF& operator ->() const { return cb; }
08238         Pim01PimstatUnknownVersionMessagesCB(const Pim01PimstatUnknownVersionMessagesRF& cb)
08239           : cb(cb) { }
08240 
08241         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
08242 
08243         void respond(const uint32_t& arg_value) const {
08244             cb->dispatch(XrlCmdError::OKAY(),
08245                          &arg_value);
08246         }
08247     };
08248 
08249     struct Pim01PimstatUnknownVersionMessagesRsp :
08250       public Pim01PimstatUnknownVersionMessagesCB {
08251         struct args_str {
08252             uint32_t value;
08253         };
08254 
08255     private:
08256         args_str args;
08257 
08258     public:
08259         Pim01PimstatUnknownVersionMessagesRsp(const Pim01PimstatUnknownVersionMessagesRF& cb)
08260           : Pim01PimstatUnknownVersionMessagesCB(cb) { }
08261 
08262         void respond() const {
08263             Pim01PimstatUnknownVersionMessagesCB::
08264             respond(args.value);
08265         }
08266 
08267         args_str* operator ->() {
08268             return &args;
08269         }
08270     };
08271 
08272     virtual void async_pim_0_1_pimstat_unknown_version_messages
08273        (
08274     Pim01PimstatUnknownVersionMessagesCB);
08275 #endif
08276 
08277     virtual XrlCmdError pim_0_1_pimstat_neighbor_unknown_messages(
08278     // Output values,
08279     uint32_t&   value) = 0;
08280 #ifdef XORP_ENABLE_ASYNC_SERVER
08281     typedef
08282     XorpCallback2<void, const XrlCmdError &,
08283     const uint32_t*>::RefPtr
08284     Pim01PimstatNeighborUnknownMessagesRF;
08285 
08286     class Pim01PimstatNeighborUnknownMessagesCB {
08287         Pim01PimstatNeighborUnknownMessagesRF cb;
08288 
08289     public:
08290         operator const Pim01PimstatNeighborUnknownMessagesRF& () const { return cb; }
08291         const Pim01PimstatNeighborUnknownMessagesRF& operator ->() const { return cb; }
08292         Pim01PimstatNeighborUnknownMessagesCB(const Pim01PimstatNeighborUnknownMessagesRF& cb)
08293           : cb(cb) { }
08294 
08295         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
08296 
08297         void respond(const uint32_t& arg_value) const {
08298             cb->dispatch(XrlCmdError::OKAY(),
08299                          &arg_value);
08300         }
08301     };
08302 
08303     struct Pim01PimstatNeighborUnknownMessagesRsp :
08304       public Pim01PimstatNeighborUnknownMessagesCB {
08305         struct args_str {
08306             uint32_t value;
08307         };
08308 
08309     private:
08310         args_str args;
08311 
08312     public:
08313         Pim01PimstatNeighborUnknownMessagesRsp(const Pim01PimstatNeighborUnknownMessagesRF& cb)
08314           : Pim01PimstatNeighborUnknownMessagesCB(cb) { }
08315 
08316         void respond() const {
08317             Pim01PimstatNeighborUnknownMessagesCB::
08318             respond(args.value);
08319         }
08320 
08321         args_str* operator ->() {
08322             return &args;
08323         }
08324     };
08325 
08326     virtual void async_pim_0_1_pimstat_neighbor_unknown_messages
08327        (
08328     Pim01PimstatNeighborUnknownMessagesCB);
08329 #endif
08330 
08331     virtual XrlCmdError pim_0_1_pimstat_bad_length_messages(
08332     // Output values,
08333     uint32_t&   value) = 0;
08334 #ifdef XORP_ENABLE_ASYNC_SERVER
08335     typedef
08336     XorpCallback2<void, const XrlCmdError &,
08337     const uint32_t*>::RefPtr
08338     Pim01PimstatBadLengthMessagesRF;
08339 
08340     class Pim01PimstatBadLengthMessagesCB {
08341         Pim01PimstatBadLengthMessagesRF cb;
08342 
08343     public:
08344         operator const Pim01PimstatBadLengthMessagesRF& () const { return cb; }
08345         const Pim01PimstatBadLengthMessagesRF& operator ->() const { return cb; }
08346         Pim01PimstatBadLengthMessagesCB(const Pim01PimstatBadLengthMessagesRF& cb)
08347           : cb(cb) { }
08348 
08349         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
08350 
08351         void respond(const uint32_t& arg_value) const {
08352             cb->dispatch(XrlCmdError::OKAY(),
08353                          &arg_value);
08354         }
08355     };
08356 
08357     struct Pim01PimstatBadLengthMessagesRsp :
08358       public Pim01PimstatBadLengthMessagesCB {
08359         struct args_str {
08360             uint32_t value;
08361         };
08362 
08363     private:
08364         args_str args;
08365 
08366     public:
08367         Pim01PimstatBadLengthMessagesRsp(const Pim01PimstatBadLengthMessagesRF& cb)
08368           : Pim01PimstatBadLengthMessagesCB(cb) { }
08369 
08370         void respond() const {
08371             Pim01PimstatBadLengthMessagesCB::
08372             respond(args.value);
08373         }
08374 
08375         args_str* operator ->() {
08376             return &args;
08377         }
08378     };
08379 
08380     virtual void async_pim_0_1_pimstat_bad_length_messages
08381        (
08382     Pim01PimstatBadLengthMessagesCB);
08383 #endif
08384 
08385     virtual XrlCmdError pim_0_1_pimstat_bad_checksum_messages(
08386     // Output values,
08387     uint32_t&   value) = 0;
08388 #ifdef XORP_ENABLE_ASYNC_SERVER
08389     typedef
08390     XorpCallback2<void, const XrlCmdError &,
08391     const uint32_t*>::RefPtr
08392     Pim01PimstatBadChecksumMessagesRF;
08393 
08394     class Pim01PimstatBadChecksumMessagesCB {
08395         Pim01PimstatBadChecksumMessagesRF cb;
08396 
08397     public:
08398         operator const Pim01PimstatBadChecksumMessagesRF& () const { return cb; }
08399         const Pim01PimstatBadChecksumMessagesRF& operator ->() const { return cb; }
08400         Pim01PimstatBadChecksumMessagesCB(const Pim01PimstatBadChecksumMessagesRF& cb)
08401           : cb(cb) { }
08402 
08403         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
08404 
08405         void respond(const uint32_t& arg_value) const {
08406             cb->dispatch(XrlCmdError::OKAY(),
08407                          &arg_value);
08408         }
08409     };
08410 
08411     struct Pim01PimstatBadChecksumMessagesRsp :
08412       public Pim01PimstatBadChecksumMessagesCB {
08413         struct args_str {
08414             uint32_t value;
08415         };
08416 
08417     private:
08418         args_str args;
08419 
08420     public:
08421         Pim01PimstatBadChecksumMessagesRsp(const Pim01PimstatBadChecksumMessagesRF& cb)
08422           : Pim01PimstatBadChecksumMessagesCB(cb) { }
08423 
08424         void respond() const {
08425             Pim01PimstatBadChecksumMessagesCB::
08426             respond(args.value);
08427         }
08428 
08429         args_str* operator ->() {
08430             return &args;
08431         }
08432     };
08433 
08434     virtual void async_pim_0_1_pimstat_bad_checksum_messages
08435        (
08436     Pim01PimstatBadChecksumMessagesCB);
08437 #endif
08438 
08439     virtual XrlCmdError pim_0_1_pimstat_bad_receive_interface_messages(
08440     // Output values,
08441     uint32_t&   value) = 0;
08442 #ifdef XORP_ENABLE_ASYNC_SERVER
08443     typedef
08444     XorpCallback2<void, const XrlCmdError &,
08445     const uint32_t*>::RefPtr
08446     Pim01PimstatBadReceiveInterfaceMessagesRF;
08447 
08448     class Pim01PimstatBadReceiveInterfaceMessagesCB {
08449         Pim01PimstatBadReceiveInterfaceMessagesRF cb;
08450 
08451     public:
08452         operator const Pim01PimstatBadReceiveInterfaceMessagesRF& () const { return cb; }
08453         const Pim01PimstatBadReceiveInterfaceMessagesRF& operator ->() const { return cb; }
08454         Pim01PimstatBadReceiveInterfaceMessagesCB(const Pim01PimstatBadReceiveInterfaceMessagesRF& cb)
08455           : cb(cb) { }
08456 
08457         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
08458 
08459         void respond(const uint32_t& arg_value) const {
08460             cb->dispatch(XrlCmdError::OKAY(),
08461                          &arg_value);
08462         }
08463     };
08464 
08465     struct Pim01PimstatBadReceiveInterfaceMessagesRsp :
08466       public Pim01PimstatBadReceiveInterfaceMessagesCB {
08467         struct args_str {
08468             uint32_t value;
08469         };
08470 
08471     private:
08472         args_str args;
08473 
08474     public:
08475         Pim01PimstatBadReceiveInterfaceMessagesRsp(const Pim01PimstatBadReceiveInterfaceMessagesRF& cb)
08476           : Pim01PimstatBadReceiveInterfaceMessagesCB(cb) { }
08477 
08478         void respond() const {
08479             Pim01PimstatBadReceiveInterfaceMessagesCB::
08480             respond(args.value);
08481         }
08482 
08483         args_str* operator ->() {
08484             return &args;
08485         }
08486     };
08487 
08488     virtual void async_pim_0_1_pimstat_bad_receive_interface_messages
08489        (
08490     Pim01PimstatBadReceiveInterfaceMessagesCB);
08491 #endif
08492 
08493     virtual XrlCmdError pim_0_1_pimstat_rx_interface_disabled_messages(
08494     // Output values,
08495     uint32_t&   value) = 0;
08496 #ifdef XORP_ENABLE_ASYNC_SERVER
08497     typedef
08498     XorpCallback2<void, const XrlCmdError &,
08499     const uint32_t*>::RefPtr
08500     Pim01PimstatRxInterfaceDisabledMessagesRF;
08501 
08502     class Pim01PimstatRxInterfaceDisabledMessagesCB {
08503         Pim01PimstatRxInterfaceDisabledMessagesRF cb;
08504 
08505     public:
08506         operator const Pim01PimstatRxInterfaceDisabledMessagesRF& () const { return cb; }
08507         const Pim01PimstatRxInterfaceDisabledMessagesRF& operator ->() const { return cb; }
08508         Pim01PimstatRxInterfaceDisabledMessagesCB(const Pim01PimstatRxInterfaceDisabledMessagesRF& cb)
08509           : cb(cb) { }
08510 
08511         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
08512 
08513         void respond(const uint32_t& arg_value) const {
08514             cb->dispatch(XrlCmdError::OKAY(),
08515                          &arg_value);
08516         }
08517     };
08518 
08519     struct Pim01PimstatRxInterfaceDisabledMessagesRsp :
08520       public Pim01PimstatRxInterfaceDisabledMessagesCB {
08521         struct args_str {
08522             uint32_t value;
08523         };
08524 
08525     private:
08526         args_str args;
08527 
08528     public:
08529         Pim01PimstatRxInterfaceDisabledMessagesRsp(const Pim01PimstatRxInterfaceDisabledMessagesRF& cb)
08530           : Pim01PimstatRxInterfaceDisabledMessagesCB(cb) { }
08531 
08532         void respond() const {
08533             Pim01PimstatRxInterfaceDisabledMessagesCB::
08534             respond(args.value);
08535         }
08536 
08537         args_str* operator ->() {
08538             return &args;
08539         }
08540     };
08541 
08542     virtual void async_pim_0_1_pimstat_rx_interface_disabled_messages
08543        (
08544     Pim01PimstatRxInterfaceDisabledMessagesCB);
08545 #endif
08546 
08547     virtual XrlCmdError pim_0_1_pimstat_rx_register_not_rp(
08548     // Output values,
08549     uint32_t&   value) = 0;
08550 #ifdef XORP_ENABLE_ASYNC_SERVER
08551     typedef
08552     XorpCallback2<void, const XrlCmdError &,
08553     const uint32_t*>::RefPtr
08554     Pim01PimstatRxRegisterNotRpRF;
08555 
08556     class Pim01PimstatRxRegisterNotRpCB {
08557         Pim01PimstatRxRegisterNotRpRF cb;
08558 
08559     public:
08560         operator const Pim01PimstatRxRegisterNotRpRF& () const { return cb; }
08561         const Pim01PimstatRxRegisterNotRpRF& operator ->() const { return cb; }
08562         Pim01PimstatRxRegisterNotRpCB(const Pim01PimstatRxRegisterNotRpRF& cb)
08563           : cb(cb) { }
08564 
08565         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
08566 
08567         void respond(const uint32_t& arg_value) const {
08568             cb->dispatch(XrlCmdError::OKAY(),
08569                          &arg_value);
08570         }
08571     };
08572 
08573     struct Pim01PimstatRxRegisterNotRpRsp :
08574       public Pim01PimstatRxRegisterNotRpCB {
08575         struct args_str {
08576             uint32_t value;
08577         };
08578 
08579     private:
08580         args_str args;
08581 
08582     public:
08583         Pim01PimstatRxRegisterNotRpRsp(const Pim01PimstatRxRegisterNotRpRF& cb)
08584           : Pim01PimstatRxRegisterNotRpCB(cb) { }
08585 
08586         void respond() const {
08587             Pim01PimstatRxRegisterNotRpCB::
08588             respond(args.value);
08589         }
08590 
08591         args_str* operator ->() {
08592             return &args;
08593         }
08594     };
08595 
08596     virtual void async_pim_0_1_pimstat_rx_register_not_rp
08597        (
08598     Pim01PimstatRxRegisterNotRpCB);
08599 #endif
08600 
08601     virtual XrlCmdError pim_0_1_pimstat_rp_filtered_source(
08602     // Output values,
08603     uint32_t&   value) = 0;
08604 #ifdef XORP_ENABLE_ASYNC_SERVER
08605     typedef
08606     XorpCallback2<void, const XrlCmdError &,
08607     const uint32_t*>::RefPtr
08608     Pim01PimstatRpFilteredSourceRF;
08609 
08610     class Pim01PimstatRpFilteredSourceCB {
08611         Pim01PimstatRpFilteredSourceRF cb;
08612 
08613     public:
08614         operator const Pim01PimstatRpFilteredSourceRF& () const { return cb; }
08615         const Pim01PimstatRpFilteredSourceRF& operator ->() const { return cb; }
08616         Pim01PimstatRpFilteredSourceCB(const Pim01PimstatRpFilteredSourceRF& cb)
08617           : cb(cb) { }
08618 
08619         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
08620 
08621         void respond(const uint32_t& arg_value) const {
08622             cb->dispatch(XrlCmdError::OKAY(),
08623                          &arg_value);
08624         }
08625     };
08626 
08627     struct Pim01PimstatRpFilteredSourceRsp :
08628       public Pim01PimstatRpFilteredSourceCB {
08629         struct args_str {
08630             uint32_t value;
08631         };
08632 
08633     private:
08634         args_str args;
08635 
08636     public:
08637         Pim01PimstatRpFilteredSourceRsp(const Pim01PimstatRpFilteredSourceRF& cb)
08638           : Pim01PimstatRpFilteredSourceCB(cb) { }
08639 
08640         void respond() const {
08641             Pim01PimstatRpFilteredSourceCB::
08642             respond(args.value);
08643         }
08644 
08645         args_str* operator ->() {
08646             return &args;
08647         }
08648     };
08649 
08650     virtual void async_pim_0_1_pimstat_rp_filtered_source
08651        (
08652     Pim01PimstatRpFilteredSourceCB);
08653 #endif
08654 
08655     virtual XrlCmdError pim_0_1_pimstat_unknown_register_stop(
08656     // Output values,
08657     uint32_t&   value) = 0;
08658 #ifdef XORP_ENABLE_ASYNC_SERVER
08659     typedef
08660     XorpCallback2<void, const XrlCmdError &,
08661     const uint32_t*>::RefPtr
08662     Pim01PimstatUnknownRegisterStopRF;
08663 
08664     class Pim01PimstatUnknownRegisterStopCB {
08665         Pim01PimstatUnknownRegisterStopRF cb;
08666 
08667     public:
08668         operator const Pim01PimstatUnknownRegisterStopRF& () const { return cb; }
08669         const Pim01PimstatUnknownRegisterStopRF& operator ->() const { return cb; }
08670         Pim01PimstatUnknownRegisterStopCB(const Pim01PimstatUnknownRegisterStopRF& cb)
08671           : cb(cb) { }
08672 
08673         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
08674 
08675         void respond(const uint32_t& arg_value) const {
08676             cb->dispatch(XrlCmdError::OKAY(),
08677                          &arg_value);
08678         }
08679     };
08680 
08681     struct Pim01PimstatUnknownRegisterStopRsp :
08682       public Pim01PimstatUnknownRegisterStopCB {
08683         struct args_str {
08684             uint32_t value;
08685         };
08686 
08687     private:
08688         args_str args;
08689 
08690     public:
08691         Pim01PimstatUnknownRegisterStopRsp(const Pim01PimstatUnknownRegisterStopRF& cb)
08692           : Pim01PimstatUnknownRegisterStopCB(cb) { }
08693 
08694         void respond() const {
08695             Pim01PimstatUnknownRegisterStopCB::
08696             respond(args.value);
08697         }
08698 
08699         args_str* operator ->() {
08700             return &args;
08701         }
08702     };
08703 
08704     virtual void async_pim_0_1_pimstat_unknown_register_stop
08705        (
08706     Pim01PimstatUnknownRegisterStopCB);
08707 #endif
08708 
08709     virtual XrlCmdError pim_0_1_pimstat_rx_join_prune_no_state(
08710     // Output values,
08711     uint32_t&   value) = 0;
08712 #ifdef XORP_ENABLE_ASYNC_SERVER
08713     typedef
08714     XorpCallback2<void, const XrlCmdError &,
08715     const uint32_t*>::RefPtr
08716     Pim01PimstatRxJoinPruneNoStateRF;
08717 
08718     class Pim01PimstatRxJoinPruneNoStateCB {
08719         Pim01PimstatRxJoinPruneNoStateRF cb;
08720 
08721     public:
08722         operator const Pim01PimstatRxJoinPruneNoStateRF& () const { return cb; }
08723         const Pim01PimstatRxJoinPruneNoStateRF& operator ->() const { return cb; }
08724         Pim01PimstatRxJoinPruneNoStateCB(const Pim01PimstatRxJoinPruneNoStateRF& cb)
08725           : cb(cb) { }
08726 
08727         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
08728 
08729         void respond(const uint32_t& arg_value) const {
08730             cb->dispatch(XrlCmdError::OKAY(),
08731                          &arg_value);
08732         }
08733     };
08734 
08735     struct Pim01PimstatRxJoinPruneNoStateRsp :
08736       public Pim01PimstatRxJoinPruneNoStateCB {
08737         struct args_str {
08738             uint32_t value;
08739         };
08740 
08741     private:
08742         args_str args;
08743 
08744     public:
08745         Pim01PimstatRxJoinPruneNoStateRsp(const Pim01PimstatRxJoinPruneNoStateRF& cb)
08746           : Pim01PimstatRxJoinPruneNoStateCB(cb) { }
08747 
08748         void respond() const {
08749             Pim01PimstatRxJoinPruneNoStateCB::
08750             respond(args.value);
08751         }
08752 
08753         args_str* operator ->() {
08754             return &args;
08755         }
08756     };
08757 
08758     virtual void async_pim_0_1_pimstat_rx_join_prune_no_state
08759        (
08760     Pim01PimstatRxJoinPruneNoStateCB);
08761 #endif
08762 
08763     virtual XrlCmdError pim_0_1_pimstat_rx_graft_graft_ack_no_state(
08764     // Output values,
08765     uint32_t&   value) = 0;
08766 #ifdef XORP_ENABLE_ASYNC_SERVER
08767     typedef
08768     XorpCallback2<void, const XrlCmdError &,
08769     const uint32_t*>::RefPtr
08770     Pim01PimstatRxGraftGraftAckNoStateRF;
08771 
08772     class Pim01PimstatRxGraftGraftAckNoStateCB {
08773         Pim01PimstatRxGraftGraftAckNoStateRF cb;
08774 
08775     public:
08776         operator const Pim01PimstatRxGraftGraftAckNoStateRF& () const { return cb; }
08777         const Pim01PimstatRxGraftGraftAckNoStateRF& operator ->() const { return cb; }
08778         Pim01PimstatRxGraftGraftAckNoStateCB(const Pim01PimstatRxGraftGraftAckNoStateRF& cb)
08779           : cb(cb) { }
08780 
08781         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
08782 
08783         void respond(const uint32_t& arg_value) const {
08784             cb->dispatch(XrlCmdError::OKAY(),
08785                          &arg_value);
08786         }
08787     };
08788 
08789     struct Pim01PimstatRxGraftGraftAckNoStateRsp :
08790       public Pim01PimstatRxGraftGraftAckNoStateCB {
08791         struct args_str {
08792             uint32_t value;
08793         };
08794 
08795     private:
08796         args_str args;
08797 
08798     public:
08799         Pim01PimstatRxGraftGraftAckNoStateRsp(const Pim01PimstatRxGraftGraftAckNoStateRF& cb)
08800           : Pim01PimstatRxGraftGraftAckNoStateCB(cb) { }
08801 
08802         void respond() const {
08803             Pim01PimstatRxGraftGraftAckNoStateCB::
08804             respond(args.value);
08805         }
08806 
08807         args_str* operator ->() {
08808             return &args;
08809         }
08810     };
08811 
08812     virtual void async_pim_0_1_pimstat_rx_graft_graft_ack_no_state
08813        (
08814     Pim01PimstatRxGraftGraftAckNoStateCB);
08815 #endif
08816 
08817     virtual XrlCmdError pim_0_1_pimstat_rx_graft_on_upstream_interface(
08818     // Output values,
08819     uint32_t&   value) = 0;
08820 #ifdef XORP_ENABLE_ASYNC_SERVER
08821     typedef
08822     XorpCallback2<void, const XrlCmdError &,
08823     const uint32_t*>::RefPtr
08824     Pim01PimstatRxGraftOnUpstreamInterfaceRF;
08825 
08826     class Pim01PimstatRxGraftOnUpstreamInterfaceCB {
08827         Pim01PimstatRxGraftOnUpstreamInterfaceRF cb;
08828 
08829     public:
08830         operator const Pim01PimstatRxGraftOnUpstreamInterfaceRF& () const { return cb; }
08831         const Pim01PimstatRxGraftOnUpstreamInterfaceRF& operator ->() const { return cb; }
08832         Pim01PimstatRxGraftOnUpstreamInterfaceCB(const Pim01PimstatRxGraftOnUpstreamInterfaceRF& cb)
08833           : cb(cb) { }
08834 
08835         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
08836 
08837         void respond(const uint32_t& arg_value) const {
08838             cb->dispatch(XrlCmdError::OKAY(),
08839                          &arg_value);
08840         }
08841     };
08842 
08843     struct Pim01PimstatRxGraftOnUpstreamInterfaceRsp :
08844       public Pim01PimstatRxGraftOnUpstreamInterfaceCB {
08845         struct args_str {
08846             uint32_t value;
08847         };
08848 
08849     private:
08850         args_str args;
08851 
08852     public:
08853         Pim01PimstatRxGraftOnUpstreamInterfaceRsp(const Pim01PimstatRxGraftOnUpstreamInterfaceRF& cb)
08854           : Pim01PimstatRxGraftOnUpstreamInterfaceCB(cb) { }
08855 
08856         void respond() const {
08857             Pim01PimstatRxGraftOnUpstreamInterfaceCB::
08858             respond(args.value);
08859         }
08860 
08861         args_str* operator ->() {
08862             return &args;
08863         }
08864     };
08865 
08866     virtual void async_pim_0_1_pimstat_rx_graft_on_upstream_interface
08867        (
08868     Pim01PimstatRxGraftOnUpstreamInterfaceCB);
08869 #endif
08870 
08871     virtual XrlCmdError pim_0_1_pimstat_rx_candidate_rp_not_bsr(
08872     // Output values,
08873     uint32_t&   value) = 0;
08874 #ifdef XORP_ENABLE_ASYNC_SERVER
08875     typedef
08876     XorpCallback2<void, const XrlCmdError &,
08877     const uint32_t*>::RefPtr
08878     Pim01PimstatRxCandidateRpNotBsrRF;
08879 
08880     class Pim01PimstatRxCandidateRpNotBsrCB {
08881         Pim01PimstatRxCandidateRpNotBsrRF cb;
08882 
08883     public:
08884         operator const Pim01PimstatRxCandidateRpNotBsrRF& () const { return cb; }
08885         const Pim01PimstatRxCandidateRpNotBsrRF& operator ->() const { return cb; }
08886         Pim01PimstatRxCandidateRpNotBsrCB(const Pim01PimstatRxCandidateRpNotBsrRF& cb)
08887           : cb(cb) { }
08888 
08889         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
08890 
08891         void respond(const uint32_t& arg_value) const {
08892             cb->dispatch(XrlCmdError::OKAY(),
08893                          &arg_value);
08894         }
08895     };
08896 
08897     struct Pim01PimstatRxCandidateRpNotBsrRsp :
08898       public Pim01PimstatRxCandidateRpNotBsrCB {
08899         struct args_str {
08900             uint32_t value;
08901         };
08902 
08903     private:
08904         args_str args;
08905 
08906     public:
08907         Pim01PimstatRxCandidateRpNotBsrRsp(const Pim01PimstatRxCandidateRpNotBsrRF& cb)
08908           : Pim01PimstatRxCandidateRpNotBsrCB(cb) { }
08909 
08910         void respond() const {
08911             Pim01PimstatRxCandidateRpNotBsrCB::
08912             respond(args.value);
08913         }
08914 
08915         args_str* operator ->() {
08916             return &args;
08917         }
08918     };
08919 
08920     virtual void async_pim_0_1_pimstat_rx_candidate_rp_not_bsr
08921        (
08922     Pim01PimstatRxCandidateRpNotBsrCB);
08923 #endif
08924 
08925     virtual XrlCmdError pim_0_1_pimstat_rx_bsr_when_bsr(
08926     // Output values,
08927     uint32_t&   value) = 0;
08928 #ifdef XORP_ENABLE_ASYNC_SERVER
08929     typedef
08930     XorpCallback2<void, const XrlCmdError &,
08931     const uint32_t*>::RefPtr
08932     Pim01PimstatRxBsrWhenBsrRF;
08933 
08934     class Pim01PimstatRxBsrWhenBsrCB {
08935         Pim01PimstatRxBsrWhenBsrRF cb;
08936 
08937     public:
08938         operator const Pim01PimstatRxBsrWhenBsrRF& () const { return cb; }
08939         const Pim01PimstatRxBsrWhenBsrRF& operator ->() const { return cb; }
08940         Pim01PimstatRxBsrWhenBsrCB(const Pim01PimstatRxBsrWhenBsrRF& cb)
08941           : cb(cb) { }
08942 
08943         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
08944 
08945         void respond(const uint32_t& arg_value) const {
08946             cb->dispatch(XrlCmdError::OKAY(),
08947                          &arg_value);
08948         }
08949     };
08950 
08951     struct Pim01PimstatRxBsrWhenBsrRsp :
08952       public Pim01PimstatRxBsrWhenBsrCB {
08953         struct args_str {
08954             uint32_t value;
08955         };
08956 
08957     private:
08958         args_str args;
08959 
08960     public:
08961         Pim01PimstatRxBsrWhenBsrRsp(const Pim01PimstatRxBsrWhenBsrRF& cb)
08962           : Pim01PimstatRxBsrWhenBsrCB(cb) { }
08963 
08964         void respond() const {
08965             Pim01PimstatRxBsrWhenBsrCB::
08966             respond(args.value);
08967         }
08968 
08969         args_str* operator ->() {
08970             return &args;
08971         }
08972     };
08973 
08974     virtual void async_pim_0_1_pimstat_rx_bsr_when_bsr
08975        (
08976     Pim01PimstatRxBsrWhenBsrCB);
08977 #endif
08978 
08979     virtual XrlCmdError pim_0_1_pimstat_rx_bsr_not_rpf_interface(
08980     // Output values,
08981     uint32_t&   value) = 0;
08982 #ifdef XORP_ENABLE_ASYNC_SERVER
08983     typedef
08984     XorpCallback2<void, const XrlCmdError &,
08985     const uint32_t*>::RefPtr
08986     Pim01PimstatRxBsrNotRpfInterfaceRF;
08987 
08988     class Pim01PimstatRxBsrNotRpfInterfaceCB {
08989         Pim01PimstatRxBsrNotRpfInterfaceRF cb;
08990 
08991     public:
08992         operator const Pim01PimstatRxBsrNotRpfInterfaceRF& () const { return cb; }
08993         const Pim01PimstatRxBsrNotRpfInterfaceRF& operator ->() const { return cb; }
08994         Pim01PimstatRxBsrNotRpfInterfaceCB(const Pim01PimstatRxBsrNotRpfInterfaceRF& cb)
08995           : cb(cb) { }
08996 
08997         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
08998 
08999         void respond(const uint32_t& arg_value) const {
09000             cb->dispatch(XrlCmdError::OKAY(),
09001                          &arg_value);
09002         }
09003     };
09004 
09005     struct Pim01PimstatRxBsrNotRpfInterfaceRsp :
09006       public Pim01PimstatRxBsrNotRpfInterfaceCB {
09007         struct args_str {
09008             uint32_t value;
09009         };
09010 
09011     private:
09012         args_str args;
09013 
09014     public:
09015         Pim01PimstatRxBsrNotRpfInterfaceRsp(const Pim01PimstatRxBsrNotRpfInterfaceRF& cb)
09016           : Pim01PimstatRxBsrNotRpfInterfaceCB(cb) { }
09017 
09018         void respond() const {
09019             Pim01PimstatRxBsrNotRpfInterfaceCB::
09020             respond(args.value);
09021         }
09022 
09023         args_str* operator ->() {
09024             return &args;
09025         }
09026     };
09027 
09028     virtual void async_pim_0_1_pimstat_rx_bsr_not_rpf_interface
09029        (
09030     Pim01PimstatRxBsrNotRpfInterfaceCB);
09031 #endif
09032 
09033     virtual XrlCmdError pim_0_1_pimstat_rx_unknown_hello_option(
09034     // Output values,
09035     uint32_t&   value) = 0;
09036 #ifdef XORP_ENABLE_ASYNC_SERVER
09037     typedef
09038     XorpCallback2<void, const XrlCmdError &,
09039     const uint32_t*>::RefPtr
09040     Pim01PimstatRxUnknownHelloOptionRF;
09041 
09042     class Pim01PimstatRxUnknownHelloOptionCB {
09043         Pim01PimstatRxUnknownHelloOptionRF cb;
09044 
09045     public:
09046         operator const Pim01PimstatRxUnknownHelloOptionRF& () const { return cb; }
09047         const Pim01PimstatRxUnknownHelloOptionRF& operator ->() const { return cb; }
09048         Pim01PimstatRxUnknownHelloOptionCB(const Pim01PimstatRxUnknownHelloOptionRF& cb)
09049           : cb(cb) { }
09050 
09051         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
09052 
09053         void respond(const uint32_t& arg_value) const {
09054             cb->dispatch(XrlCmdError::OKAY(),
09055                          &arg_value);
09056         }
09057     };
09058 
09059     struct Pim01PimstatRxUnknownHelloOptionRsp :
09060       public Pim01PimstatRxUnknownHelloOptionCB {
09061         struct args_str {
09062             uint32_t value;
09063         };
09064 
09065     private:
09066         args_str args;
09067 
09068     public:
09069         Pim01PimstatRxUnknownHelloOptionRsp(const Pim01PimstatRxUnknownHelloOptionRF& cb)
09070           : Pim01PimstatRxUnknownHelloOptionCB(cb) { }
09071 
09072         void respond() const {
09073             Pim01PimstatRxUnknownHelloOptionCB::
09074             respond(args.value);
09075         }
09076 
09077         args_str* operator ->() {
09078             return &args;
09079         }
09080     };
09081 
09082     virtual void async_pim_0_1_pimstat_rx_unknown_hello_option
09083        (
09084     Pim01PimstatRxUnknownHelloOptionCB);
09085 #endif
09086 
09087     virtual XrlCmdError pim_0_1_pimstat_rx_data_no_state(
09088     // Output values,
09089     uint32_t&   value) = 0;
09090 #ifdef XORP_ENABLE_ASYNC_SERVER
09091     typedef
09092     XorpCallback2<void, const XrlCmdError &,
09093     const uint32_t*>::RefPtr
09094     Pim01PimstatRxDataNoStateRF;
09095 
09096     class Pim01PimstatRxDataNoStateCB {
09097         Pim01PimstatRxDataNoStateRF cb;
09098 
09099     public:
09100         operator const Pim01PimstatRxDataNoStateRF& () const { return cb; }
09101         const Pim01PimstatRxDataNoStateRF& operator ->() const { return cb; }
09102         Pim01PimstatRxDataNoStateCB(const Pim01PimstatRxDataNoStateRF& cb)
09103           : cb(cb) { }
09104 
09105         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
09106 
09107         void respond(const uint32_t& arg_value) const {
09108             cb->dispatch(XrlCmdError::OKAY(),
09109                          &arg_value);
09110         }
09111     };
09112 
09113     struct Pim01PimstatRxDataNoStateRsp :
09114       public Pim01PimstatRxDataNoStateCB {
09115         struct args_str {
09116             uint32_t value;
09117         };
09118 
09119     private:
09120         args_str args;
09121 
09122     public:
09123         Pim01PimstatRxDataNoStateRsp(const Pim01PimstatRxDataNoStateRF& cb)
09124           : Pim01PimstatRxDataNoStateCB(cb) { }
09125 
09126         void respond() const {
09127             Pim01PimstatRxDataNoStateCB::
09128             respond(args.value);
09129         }
09130 
09131         args_str* operator ->() {
09132             return &args;
09133         }
09134     };
09135 
09136     virtual void async_pim_0_1_pimstat_rx_data_no_state
09137        (
09138     Pim01PimstatRxDataNoStateCB);
09139 #endif
09140 
09141     virtual XrlCmdError pim_0_1_pimstat_rx_rp_no_state(
09142     // Output values,
09143     uint32_t&   value) = 0;
09144 #ifdef XORP_ENABLE_ASYNC_SERVER
09145     typedef
09146     XorpCallback2<void, const XrlCmdError &,
09147     const uint32_t*>::RefPtr
09148     Pim01PimstatRxRpNoStateRF;
09149 
09150     class Pim01PimstatRxRpNoStateCB {
09151         Pim01PimstatRxRpNoStateRF cb;
09152 
09153     public:
09154         operator const Pim01PimstatRxRpNoStateRF& () const { return cb; }
09155         const Pim01PimstatRxRpNoStateRF& operator ->() const { return cb; }
09156         Pim01PimstatRxRpNoStateCB(const Pim01PimstatRxRpNoStateRF& cb)
09157           : cb(cb) { }
09158 
09159         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
09160 
09161         void respond(const uint32_t& arg_value) const {
09162             cb->dispatch(XrlCmdError::OKAY(),
09163                          &arg_value);
09164         }
09165     };
09166 
09167     struct Pim01PimstatRxRpNoStateRsp :
09168       public Pim01PimstatRxRpNoStateCB {
09169         struct args_str {
09170             uint32_t value;
09171         };
09172 
09173     private:
09174         args_str args;
09175 
09176     public:
09177         Pim01PimstatRxRpNoStateRsp(const Pim01PimstatRxRpNoStateRF& cb)
09178           : Pim01PimstatRxRpNoStateCB(cb) { }
09179 
09180         void respond() const {
09181             Pim01PimstatRxRpNoStateCB::
09182             respond(args.value);
09183         }
09184 
09185         args_str* operator ->() {
09186             return &args;
09187         }
09188     };
09189 
09190     virtual void async_pim_0_1_pimstat_rx_rp_no_state
09191        (
09192     Pim01PimstatRxRpNoStateCB);
09193 #endif
09194 
09195     virtual XrlCmdError pim_0_1_pimstat_rx_aggregate(
09196     // Output values,
09197     uint32_t&   value) = 0;
09198 #ifdef XORP_ENABLE_ASYNC_SERVER
09199     typedef
09200     XorpCallback2<void, const XrlCmdError &,
09201     const uint32_t*>::RefPtr
09202     Pim01PimstatRxAggregateRF;
09203 
09204     class Pim01PimstatRxAggregateCB {
09205         Pim01PimstatRxAggregateRF cb;
09206 
09207     public:
09208         operator const Pim01PimstatRxAggregateRF& () const { return cb; }
09209         const Pim01PimstatRxAggregateRF& operator ->() const { return cb; }
09210         Pim01PimstatRxAggregateCB(const Pim01PimstatRxAggregateRF& cb)
09211           : cb(cb) { }
09212 
09213         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
09214 
09215         void respond(const uint32_t& arg_value) const {
09216             cb->dispatch(XrlCmdError::OKAY(),
09217                          &arg_value);
09218         }
09219     };
09220 
09221     struct Pim01PimstatRxAggregateRsp :
09222       public Pim01PimstatRxAggregateCB {
09223         struct args_str {
09224             uint32_t value;
09225         };
09226 
09227     private:
09228         args_str args;
09229 
09230     public:
09231         Pim01PimstatRxAggregateRsp(const Pim01PimstatRxAggregateRF& cb)
09232           : Pim01PimstatRxAggregateCB(cb) { }
09233 
09234         void respond() const {
09235             Pim01PimstatRxAggregateCB::
09236             respond(args.value);
09237         }
09238 
09239         args_str* operator ->() {
09240             return &args;
09241         }
09242     };
09243 
09244     virtual void async_pim_0_1_pimstat_rx_aggregate
09245        (
09246     Pim01PimstatRxAggregateCB);
09247 #endif
09248 
09249     virtual XrlCmdError pim_0_1_pimstat_rx_malformed_packet(
09250     // Output values,
09251     uint32_t&   value) = 0;
09252 #ifdef XORP_ENABLE_ASYNC_SERVER
09253     typedef
09254     XorpCallback2<void, const XrlCmdError &,
09255     const uint32_t*>::RefPtr
09256     Pim01PimstatRxMalformedPacketRF;
09257 
09258     class Pim01PimstatRxMalformedPacketCB {
09259         Pim01PimstatRxMalformedPacketRF cb;
09260 
09261     public:
09262         operator const Pim01PimstatRxMalformedPacketRF& () const { return cb; }
09263         const Pim01PimstatRxMalformedPacketRF& operator ->() const { return cb; }
09264         Pim01PimstatRxMalformedPacketCB(const Pim01PimstatRxMalformedPacketRF& cb)
09265           : cb(cb) { }
09266 
09267         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
09268 
09269         void respond(const uint32_t& arg_value) const {
09270             cb->dispatch(XrlCmdError::OKAY(),
09271                          &arg_value);
09272         }
09273     };
09274 
09275     struct Pim01PimstatRxMalformedPacketRsp :
09276       public Pim01PimstatRxMalformedPacketCB {
09277         struct args_str {
09278             uint32_t value;
09279         };
09280 
09281     private:
09282         args_str args;
09283 
09284     public:
09285         Pim01PimstatRxMalformedPacketRsp(const Pim01PimstatRxMalformedPacketRF& cb)
09286           : Pim01PimstatRxMalformedPacketCB(cb) { }
09287 
09288         void respond() const {
09289             Pim01PimstatRxMalformedPacketCB::
09290             respond(args.value);
09291         }
09292 
09293         args_str* operator ->() {
09294             return &args;
09295         }
09296     };
09297 
09298     virtual void async_pim_0_1_pimstat_rx_malformed_packet
09299        (
09300     Pim01PimstatRxMalformedPacketCB);
09301 #endif
09302 
09303     virtual XrlCmdError pim_0_1_pimstat_no_rp(
09304     // Output values,
09305     uint32_t&   value) = 0;
09306 #ifdef XORP_ENABLE_ASYNC_SERVER
09307     typedef
09308     XorpCallback2<void, const XrlCmdError &,
09309     const uint32_t*>::RefPtr
09310     Pim01PimstatNoRpRF;
09311 
09312     class Pim01PimstatNoRpCB {
09313         Pim01PimstatNoRpRF cb;
09314 
09315     public:
09316         operator const Pim01PimstatNoRpRF& () const { return cb; }
09317         const Pim01PimstatNoRpRF& operator ->() const { return cb; }
09318         Pim01PimstatNoRpCB(const Pim01PimstatNoRpRF& cb)
09319           : cb(cb) { }
09320 
09321         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
09322 
09323         void respond(const uint32_t& arg_value) const {
09324             cb->dispatch(XrlCmdError::OKAY(),
09325                          &arg_value);
09326         }
09327     };
09328 
09329     struct Pim01PimstatNoRpRsp :
09330       public Pim01PimstatNoRpCB {
09331         struct args_str {
09332             uint32_t value;
09333         };
09334 
09335     private:
09336         args_str args;
09337 
09338     public:
09339         Pim01PimstatNoRpRsp(const Pim01PimstatNoRpRF& cb)
09340           : Pim01PimstatNoRpCB(cb) { }
09341 
09342         void respond() const {
09343             Pim01PimstatNoRpCB::
09344             respond(args.value);
09345         }
09346 
09347         args_str* operator ->() {
09348             return &args;
09349         }
09350     };
09351 
09352     virtual void async_pim_0_1_pimstat_no_rp
09353        (
09354     Pim01PimstatNoRpCB);
09355 #endif
09356 
09357     virtual XrlCmdError pim_0_1_pimstat_no_route_upstream(
09358     // Output values,
09359     uint32_t&   value) = 0;
09360 #ifdef XORP_ENABLE_ASYNC_SERVER
09361     typedef
09362     XorpCallback2<void, const XrlCmdError &,
09363     const uint32_t*>::RefPtr
09364     Pim01PimstatNoRouteUpstreamRF;
09365 
09366     class Pim01PimstatNoRouteUpstreamCB {
09367         Pim01PimstatNoRouteUpstreamRF cb;
09368 
09369     public:
09370         operator const Pim01PimstatNoRouteUpstreamRF& () const { return cb; }
09371         const Pim01PimstatNoRouteUpstreamRF& operator ->() const { return cb; }
09372         Pim01PimstatNoRouteUpstreamCB(const Pim01PimstatNoRouteUpstreamRF& cb)
09373           : cb(cb) { }
09374 
09375         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
09376 
09377         void respond(const uint32_t& arg_value) const {
09378             cb->dispatch(XrlCmdError::OKAY(),
09379                          &arg_value);
09380         }
09381     };
09382 
09383     struct Pim01PimstatNoRouteUpstreamRsp :
09384       public Pim01PimstatNoRouteUpstreamCB {
09385         struct args_str {
09386             uint32_t value;
09387         };
09388 
09389     private:
09390         args_str args;
09391 
09392     public:
09393         Pim01PimstatNoRouteUpstreamRsp(const Pim01PimstatNoRouteUpstreamRF& cb)
09394           : Pim01PimstatNoRouteUpstreamCB(cb) { }
09395 
09396         void respond() const {
09397             Pim01PimstatNoRouteUpstreamCB::
09398             respond(args.value);
09399         }
09400 
09401         args_str* operator ->() {
09402             return &args;
09403         }
09404     };
09405 
09406     virtual void async_pim_0_1_pimstat_no_route_upstream
09407        (
09408     Pim01PimstatNoRouteUpstreamCB);
09409 #endif
09410 
09411     virtual XrlCmdError pim_0_1_pimstat_rp_mismatch(
09412     // Output values,
09413     uint32_t&   value) = 0;
09414 #ifdef XORP_ENABLE_ASYNC_SERVER
09415     typedef
09416     XorpCallback2<void, const XrlCmdError &,
09417     const uint32_t*>::RefPtr
09418     Pim01PimstatRpMismatchRF;
09419 
09420     class Pim01PimstatRpMismatchCB {
09421         Pim01PimstatRpMismatchRF cb;
09422 
09423     public:
09424         operator const Pim01PimstatRpMismatchRF& () const { return cb; }
09425         const Pim01PimstatRpMismatchRF& operator ->() const { return cb; }
09426         Pim01PimstatRpMismatchCB(const Pim01PimstatRpMismatchRF& cb)
09427           : cb(cb) { }
09428 
09429         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
09430 
09431         void respond(const uint32_t& arg_value) const {
09432             cb->dispatch(XrlCmdError::OKAY(),
09433                          &arg_value);
09434         }
09435     };
09436 
09437     struct Pim01PimstatRpMismatchRsp :
09438       public Pim01PimstatRpMismatchCB {
09439         struct args_str {
09440             uint32_t value;
09441         };
09442 
09443     private:
09444         args_str args;
09445 
09446     public:
09447         Pim01PimstatRpMismatchRsp(const Pim01PimstatRpMismatchRF& cb)
09448           : Pim01PimstatRpMismatchCB(cb) { }
09449 
09450         void respond() const {
09451             Pim01PimstatRpMismatchCB::
09452             respond(args.value);
09453         }
09454 
09455         args_str* operator ->() {
09456             return &args;
09457         }
09458     };
09459 
09460     virtual void async_pim_0_1_pimstat_rp_mismatch
09461        (
09462     Pim01PimstatRpMismatchCB);
09463 #endif
09464 
09465     virtual XrlCmdError pim_0_1_pimstat_rpf_neighbor_unknown(
09466     // Output values,
09467     uint32_t&   value) = 0;
09468 #ifdef XORP_ENABLE_ASYNC_SERVER
09469     typedef
09470     XorpCallback2<void, const XrlCmdError &,
09471     const uint32_t*>::RefPtr
09472     Pim01PimstatRpfNeighborUnknownRF;
09473 
09474     class Pim01PimstatRpfNeighborUnknownCB {
09475         Pim01PimstatRpfNeighborUnknownRF cb;
09476 
09477     public:
09478         operator const Pim01PimstatRpfNeighborUnknownRF& () const { return cb; }
09479         const Pim01PimstatRpfNeighborUnknownRF& operator ->() const { return cb; }
09480         Pim01PimstatRpfNeighborUnknownCB(const Pim01PimstatRpfNeighborUnknownRF& cb)
09481           : cb(cb) { }
09482 
09483         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
09484 
09485         void respond(const uint32_t& arg_value) const {
09486             cb->dispatch(XrlCmdError::OKAY(),
09487                          &arg_value);
09488         }
09489     };
09490 
09491     struct Pim01PimstatRpfNeighborUnknownRsp :
09492       public Pim01PimstatRpfNeighborUnknownCB {
09493         struct args_str {
09494             uint32_t value;
09495         };
09496 
09497     private:
09498         args_str args;
09499 
09500     public:
09501         Pim01PimstatRpfNeighborUnknownRsp(const Pim01PimstatRpfNeighborUnknownRF& cb)
09502           : Pim01PimstatRpfNeighborUnknownCB(cb) { }
09503 
09504         void respond() const {
09505             Pim01PimstatRpfNeighborUnknownCB::
09506             respond(args.value);
09507         }
09508 
09509         args_str* operator ->() {
09510             return &args;
09511         }
09512     };
09513 
09514     virtual void async_pim_0_1_pimstat_rpf_neighbor_unknown
09515        (
09516     Pim01PimstatRpfNeighborUnknownCB);
09517 #endif
09518 
09519     virtual XrlCmdError pim_0_1_pimstat_rx_join_rp(
09520     // Output values,
09521     uint32_t&   value) = 0;
09522 #ifdef XORP_ENABLE_ASYNC_SERVER
09523     typedef
09524     XorpCallback2<void, const XrlCmdError &,
09525     const uint32_t*>::RefPtr
09526     Pim01PimstatRxJoinRpRF;
09527 
09528     class Pim01PimstatRxJoinRpCB {
09529         Pim01PimstatRxJoinRpRF cb;
09530 
09531     public:
09532         operator const Pim01PimstatRxJoinRpRF& () const { return cb; }
09533         const Pim01PimstatRxJoinRpRF& operator ->() const { return cb; }
09534         Pim01PimstatRxJoinRpCB(const Pim01PimstatRxJoinRpRF& cb)
09535           : cb(cb) { }
09536 
09537         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
09538 
09539         void respond(const uint32_t& arg_value) const {
09540             cb->dispatch(XrlCmdError::OKAY(),
09541                          &arg_value);
09542         }
09543     };
09544 
09545     struct Pim01PimstatRxJoinRpRsp :
09546       public Pim01PimstatRxJoinRpCB {
09547         struct args_str {
09548             uint32_t value;
09549         };
09550 
09551     private:
09552         args_str args;
09553 
09554     public:
09555         Pim01PimstatRxJoinRpRsp(const Pim01PimstatRxJoinRpRF& cb)
09556           : Pim01PimstatRxJoinRpCB(cb) { }
09557 
09558         void respond() const {
09559             Pim01PimstatRxJoinRpCB::
09560             respond(args.value);
09561         }
09562 
09563         args_str* operator ->() {
09564             return &args;
09565         }
09566     };
09567 
09568     virtual void async_pim_0_1_pimstat_rx_join_rp
09569        (
09570     Pim01PimstatRxJoinRpCB);
09571 #endif
09572 
09573     virtual XrlCmdError pim_0_1_pimstat_rx_prune_rp(
09574     // Output values,
09575     uint32_t&   value) = 0;
09576 #ifdef XORP_ENABLE_ASYNC_SERVER
09577     typedef
09578     XorpCallback2<void, const XrlCmdError &,
09579     const uint32_t*>::RefPtr
09580     Pim01PimstatRxPruneRpRF;
09581 
09582     class Pim01PimstatRxPruneRpCB {
09583         Pim01PimstatRxPruneRpRF cb;
09584 
09585     public:
09586         operator const Pim01PimstatRxPruneRpRF& () const { return cb; }
09587         const Pim01PimstatRxPruneRpRF& operator ->() const { return cb; }
09588         Pim01PimstatRxPruneRpCB(const Pim01PimstatRxPruneRpRF& cb)
09589           : cb(cb) { }
09590 
09591         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
09592 
09593         void respond(const uint32_t& arg_value) const {
09594             cb->dispatch(XrlCmdError::OKAY(),
09595                          &arg_value);
09596         }
09597     };
09598 
09599     struct Pim01PimstatRxPruneRpRsp :
09600       public Pim01PimstatRxPruneRpCB {
09601         struct args_str {
09602             uint32_t value;
09603         };
09604 
09605     private:
09606         args_str args;
09607 
09608     public:
09609         Pim01PimstatRxPruneRpRsp(const Pim01PimstatRxPruneRpRF& cb)
09610           : Pim01PimstatRxPruneRpCB(cb) { }
09611 
09612         void respond() const {
09613             Pim01PimstatRxPruneRpCB::
09614             respond(args.value);
09615         }
09616 
09617         args_str* operator ->() {
09618             return &args;
09619         }
09620     };
09621 
09622     virtual void async_pim_0_1_pimstat_rx_prune_rp
09623        (
09624     Pim01PimstatRxPruneRpCB);
09625 #endif
09626 
09627     virtual XrlCmdError pim_0_1_pimstat_rx_join_wc(
09628     // Output values,
09629     uint32_t&   value) = 0;
09630 #ifdef XORP_ENABLE_ASYNC_SERVER
09631     typedef
09632     XorpCallback2<void, const XrlCmdError &,
09633     const uint32_t*>::RefPtr
09634     Pim01PimstatRxJoinWcRF;
09635 
09636     class Pim01PimstatRxJoinWcCB {
09637         Pim01PimstatRxJoinWcRF cb;
09638 
09639     public:
09640         operator const Pim01PimstatRxJoinWcRF& () const { return cb; }
09641         const Pim01PimstatRxJoinWcRF& operator ->() const { return cb; }
09642         Pim01PimstatRxJoinWcCB(const Pim01PimstatRxJoinWcRF& cb)
09643           : cb(cb) { }
09644 
09645         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
09646 
09647         void respond(const uint32_t& arg_value) const {
09648             cb->dispatch(XrlCmdError::OKAY(),
09649                          &arg_value);
09650         }
09651     };
09652 
09653     struct Pim01PimstatRxJoinWcRsp :
09654       public Pim01PimstatRxJoinWcCB {
09655         struct args_str {
09656             uint32_t value;
09657         };
09658 
09659     private:
09660         args_str args;
09661 
09662     public:
09663         Pim01PimstatRxJoinWcRsp(const Pim01PimstatRxJoinWcRF& cb)
09664           : Pim01PimstatRxJoinWcCB(cb) { }
09665 
09666         void respond() const {
09667             Pim01PimstatRxJoinWcCB::
09668             respond(args.value);
09669         }
09670 
09671         args_str* operator ->() {
09672             return &args;
09673         }
09674     };
09675 
09676     virtual void async_pim_0_1_pimstat_rx_join_wc
09677        (
09678     Pim01PimstatRxJoinWcCB);
09679 #endif
09680 
09681     virtual XrlCmdError pim_0_1_pimstat_rx_prune_wc(
09682     // Output values,
09683     uint32_t&   value) = 0;
09684 #ifdef XORP_ENABLE_ASYNC_SERVER
09685     typedef
09686     XorpCallback2<void, const XrlCmdError &,
09687     const uint32_t*>::RefPtr
09688     Pim01PimstatRxPruneWcRF;
09689 
09690     class Pim01PimstatRxPruneWcCB {
09691         Pim01PimstatRxPruneWcRF cb;
09692 
09693     public:
09694         operator const Pim01PimstatRxPruneWcRF& () const { return cb; }
09695         const Pim01PimstatRxPruneWcRF& operator ->() const { return cb; }
09696         Pim01PimstatRxPruneWcCB(const Pim01PimstatRxPruneWcRF& cb)
09697           : cb(cb) { }
09698 
09699         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
09700 
09701         void respond(const uint32_t& arg_value) const {
09702             cb->dispatch(XrlCmdError::OKAY(),
09703                          &arg_value);
09704         }
09705     };
09706 
09707     struct Pim01PimstatRxPruneWcRsp :
09708       public Pim01PimstatRxPruneWcCB {
09709         struct args_str {
09710             uint32_t value;
09711         };
09712 
09713     private:
09714         args_str args;
09715 
09716     public:
09717         Pim01PimstatRxPruneWcRsp(const Pim01PimstatRxPruneWcRF& cb)
09718           : Pim01PimstatRxPruneWcCB(cb) { }
09719 
09720         void respond() const {
09721             Pim01PimstatRxPruneWcCB::
09722             respond(args.value);
09723         }
09724 
09725         args_str* operator ->() {
09726             return &args;
09727         }
09728     };
09729 
09730     virtual void async_pim_0_1_pimstat_rx_prune_wc
09731        (
09732     Pim01PimstatRxPruneWcCB);
09733 #endif
09734 
09735     virtual XrlCmdError pim_0_1_pimstat_rx_join_sg(
09736     // Output values,
09737     uint32_t&   value) = 0;
09738 #ifdef XORP_ENABLE_ASYNC_SERVER
09739     typedef
09740     XorpCallback2<void, const XrlCmdError &,
09741     const uint32_t*>::RefPtr
09742     Pim01PimstatRxJoinSgRF;
09743 
09744     class Pim01PimstatRxJoinSgCB {
09745         Pim01PimstatRxJoinSgRF cb;
09746 
09747     public:
09748         operator const Pim01PimstatRxJoinSgRF& () const { return cb; }
09749         const Pim01PimstatRxJoinSgRF& operator ->() const { return cb; }
09750         Pim01PimstatRxJoinSgCB(const Pim01PimstatRxJoinSgRF& cb)
09751           : cb(cb) { }
09752 
09753         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
09754 
09755         void respond(const uint32_t& arg_value) const {
09756             cb->dispatch(XrlCmdError::OKAY(),
09757                          &arg_value);
09758         }
09759     };
09760 
09761     struct Pim01PimstatRxJoinSgRsp :
09762       public Pim01PimstatRxJoinSgCB {
09763         struct args_str {
09764             uint32_t value;
09765         };
09766 
09767     private:
09768         args_str args;
09769 
09770     public:
09771         Pim01PimstatRxJoinSgRsp(const Pim01PimstatRxJoinSgRF& cb)
09772           : Pim01PimstatRxJoinSgCB(cb) { }
09773 
09774         void respond() const {
09775             Pim01PimstatRxJoinSgCB::
09776             respond(args.value);
09777         }
09778 
09779         args_str* operator ->() {
09780             return &args;
09781         }
09782     };
09783 
09784     virtual void async_pim_0_1_pimstat_rx_join_sg
09785        (
09786     Pim01PimstatRxJoinSgCB);
09787 #endif
09788 
09789     virtual XrlCmdError pim_0_1_pimstat_rx_prune_sg(
09790     // Output values,
09791     uint32_t&   value) = 0;
09792 #ifdef XORP_ENABLE_ASYNC_SERVER
09793     typedef
09794     XorpCallback2<void, const XrlCmdError &,
09795     const uint32_t*>::RefPtr
09796     Pim01PimstatRxPruneSgRF;
09797 
09798     class Pim01PimstatRxPruneSgCB {
09799         Pim01PimstatRxPruneSgRF cb;
09800 
09801     public:
09802         operator const Pim01PimstatRxPruneSgRF& () const { return cb; }
09803         const Pim01PimstatRxPruneSgRF& operator ->() const { return cb; }
09804         Pim01PimstatRxPruneSgCB(const Pim01PimstatRxPruneSgRF& cb)
09805           : cb(cb) { }
09806 
09807         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
09808 
09809         void respond(const uint32_t& arg_value) const {
09810             cb->dispatch(XrlCmdError::OKAY(),
09811                          &arg_value);
09812         }
09813     };
09814 
09815     struct Pim01PimstatRxPruneSgRsp :
09816       public Pim01PimstatRxPruneSgCB {
09817         struct args_str {
09818             uint32_t value;
09819         };
09820 
09821     private:
09822         args_str args;
09823 
09824     public:
09825         Pim01PimstatRxPruneSgRsp(const Pim01PimstatRxPruneSgRF& cb)
09826           : Pim01PimstatRxPruneSgCB(cb) { }
09827 
09828         void respond() const {
09829             Pim01PimstatRxPruneSgCB::
09830             respond(args.value);
09831         }
09832 
09833         args_str* operator ->() {
09834             return &args;
09835         }
09836     };
09837 
09838     virtual void async_pim_0_1_pimstat_rx_prune_sg
09839        (
09840     Pim01PimstatRxPruneSgCB);
09841 #endif
09842 
09843     virtual XrlCmdError pim_0_1_pimstat_rx_join_sg_rpt(
09844     // Output values,
09845     uint32_t&   value) = 0;
09846 #ifdef XORP_ENABLE_ASYNC_SERVER
09847     typedef
09848     XorpCallback2<void, const XrlCmdError &,
09849     const uint32_t*>::RefPtr
09850     Pim01PimstatRxJoinSgRptRF;
09851 
09852     class Pim01PimstatRxJoinSgRptCB {
09853         Pim01PimstatRxJoinSgRptRF cb;
09854 
09855     public:
09856         operator const Pim01PimstatRxJoinSgRptRF& () const { return cb; }
09857         const Pim01PimstatRxJoinSgRptRF& operator ->() const { return cb; }
09858         Pim01PimstatRxJoinSgRptCB(const Pim01PimstatRxJoinSgRptRF& cb)
09859           : cb(cb) { }
09860 
09861         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
09862 
09863         void respond(const uint32_t& arg_value) const {
09864             cb->dispatch(XrlCmdError::OKAY(),
09865                          &arg_value);
09866         }
09867     };
09868 
09869     struct Pim01PimstatRxJoinSgRptRsp :
09870       public Pim01PimstatRxJoinSgRptCB {
09871         struct args_str {
09872             uint32_t value;
09873         };
09874 
09875     private:
09876         args_str args;
09877 
09878     public:
09879         Pim01PimstatRxJoinSgRptRsp(const Pim01PimstatRxJoinSgRptRF& cb)
09880           : Pim01PimstatRxJoinSgRptCB(cb) { }
09881 
09882         void respond() const {
09883             Pim01PimstatRxJoinSgRptCB::
09884             respond(args.value);
09885         }
09886 
09887         args_str* operator ->() {
09888             return &args;
09889         }
09890     };
09891 
09892     virtual void async_pim_0_1_pimstat_rx_join_sg_rpt
09893        (
09894     Pim01PimstatRxJoinSgRptCB);
09895 #endif
09896 
09897     virtual XrlCmdError pim_0_1_pimstat_rx_prune_sg_rpt(
09898     // Output values,
09899     uint32_t&   value) = 0;
09900 #ifdef XORP_ENABLE_ASYNC_SERVER
09901     typedef
09902     XorpCallback2<void, const XrlCmdError &,
09903     const uint32_t*>::RefPtr
09904     Pim01PimstatRxPruneSgRptRF;
09905 
09906     class Pim01PimstatRxPruneSgRptCB {
09907         Pim01PimstatRxPruneSgRptRF cb;
09908 
09909     public:
09910         operator const Pim01PimstatRxPruneSgRptRF& () const { return cb; }
09911         const Pim01PimstatRxPruneSgRptRF& operator ->() const { return cb; }
09912         Pim01PimstatRxPruneSgRptCB(const Pim01PimstatRxPruneSgRptRF& cb)
09913           : cb(cb) { }
09914 
09915         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
09916 
09917         void respond(const uint32_t& arg_value) const {
09918             cb->dispatch(XrlCmdError::OKAY(),
09919                          &arg_value);
09920         }
09921     };
09922 
09923     struct Pim01PimstatRxPruneSgRptRsp :
09924       public Pim01PimstatRxPruneSgRptCB {
09925         struct args_str {
09926             uint32_t value;
09927         };
09928 
09929     private:
09930         args_str args;
09931 
09932     public:
09933         Pim01PimstatRxPruneSgRptRsp(const Pim01PimstatRxPruneSgRptRF& cb)
09934           : Pim01PimstatRxPruneSgRptCB(cb) { }
09935 
09936         void respond() const {
09937             Pim01PimstatRxPruneSgRptCB::
09938             respond(args.value);
09939         }
09940 
09941         args_str* operator ->() {
09942             return &args;
09943         }
09944     };
09945 
09946     virtual void async_pim_0_1_pimstat_rx_prune_sg_rpt
09947        (
09948     Pim01PimstatRxPruneSgRptCB);
09949 #endif
09950 
09951     virtual XrlCmdError pim_0_1_pimstat_hello_messages_received_per_vif(
09952     // Input values,
09953     const string&   vif_name,
09954     // Output values,
09955     uint32_t&   value) = 0;
09956 #ifdef XORP_ENABLE_ASYNC_SERVER
09957     typedef
09958     XorpCallback2<void, const XrlCmdError &,
09959     const uint32_t*>::RefPtr
09960     Pim01PimstatHelloMessagesReceivedPerVifRF;
09961 
09962     class Pim01PimstatHelloMessagesReceivedPerVifCB {
09963         Pim01PimstatHelloMessagesReceivedPerVifRF cb;
09964 
09965     public:
09966         operator const Pim01PimstatHelloMessagesReceivedPerVifRF& () const { return cb; }
09967         const Pim01PimstatHelloMessagesReceivedPerVifRF& operator ->() const { return cb; }
09968         Pim01PimstatHelloMessagesReceivedPerVifCB(const Pim01PimstatHelloMessagesReceivedPerVifRF& cb)
09969           : cb(cb) { }
09970 
09971         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
09972 
09973         void respond(const uint32_t& arg_value) const {
09974             cb->dispatch(XrlCmdError::OKAY(),
09975                          &arg_value);
09976         }
09977     };
09978 
09979     struct Pim01PimstatHelloMessagesReceivedPerVifRsp :
09980       public Pim01PimstatHelloMessagesReceivedPerVifCB {
09981         struct args_str {
09982             uint32_t value;
09983         };
09984 
09985     private:
09986         args_str args;
09987 
09988     public:
09989         Pim01PimstatHelloMessagesReceivedPerVifRsp(const Pim01PimstatHelloMessagesReceivedPerVifRF& cb)
09990           : Pim01PimstatHelloMessagesReceivedPerVifCB(cb) { }
09991 
09992         void respond() const {
09993             Pim01PimstatHelloMessagesReceivedPerVifCB::
09994             respond(args.value);
09995         }
09996 
09997         args_str* operator ->() {
09998             return &args;
09999         }
10000     };
10001 
10002     virtual void async_pim_0_1_pimstat_hello_messages_received_per_vif
10003        (
10004     const string&   vif_name,
10005     Pim01PimstatHelloMessagesReceivedPerVifCB);
10006 #endif
10007 
10008     virtual XrlCmdError pim_0_1_pimstat_hello_messages_sent_per_vif(
10009     // Input values,
10010     const string&   vif_name,
10011     // Output values,
10012     uint32_t&   value) = 0;
10013 #ifdef XORP_ENABLE_ASYNC_SERVER
10014     typedef
10015     XorpCallback2<void, const XrlCmdError &,
10016     const uint32_t*>::RefPtr
10017     Pim01PimstatHelloMessagesSentPerVifRF;
10018 
10019     class Pim01PimstatHelloMessagesSentPerVifCB {
10020         Pim01PimstatHelloMessagesSentPerVifRF cb;
10021 
10022     public:
10023         operator const Pim01PimstatHelloMessagesSentPerVifRF& () const { return cb; }
10024         const Pim01PimstatHelloMessagesSentPerVifRF& operator ->() const { return cb; }
10025         Pim01PimstatHelloMessagesSentPerVifCB(const Pim01PimstatHelloMessagesSentPerVifRF& cb)
10026           : cb(cb) { }
10027 
10028         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
10029 
10030         void respond(const uint32_t& arg_value) const {
10031             cb->dispatch(XrlCmdError::OKAY(),
10032                          &arg_value);
10033         }
10034     };
10035 
10036     struct Pim01PimstatHelloMessagesSentPerVifRsp :
10037       public Pim01PimstatHelloMessagesSentPerVifCB {
10038         struct args_str {
10039             uint32_t value;
10040         };
10041 
10042     private:
10043         args_str args;
10044 
10045     public:
10046         Pim01PimstatHelloMessagesSentPerVifRsp(const Pim01PimstatHelloMessagesSentPerVifRF& cb)
10047           : Pim01PimstatHelloMessagesSentPerVifCB(cb) { }
10048 
10049         void respond() const {
10050             Pim01PimstatHelloMessagesSentPerVifCB::
10051             respond(args.value);
10052         }
10053 
10054         args_str* operator ->() {
10055             return &args;
10056         }
10057     };
10058 
10059     virtual void async_pim_0_1_pimstat_hello_messages_sent_per_vif
10060        (
10061     const string&   vif_name,
10062     Pim01PimstatHelloMessagesSentPerVifCB);
10063 #endif
10064 
10065     virtual XrlCmdError pim_0_1_pimstat_hello_messages_rx_errors_per_vif(
10066     // Input values,
10067     const string&   vif_name,
10068     // Output values,
10069     uint32_t&   value) = 0;
10070 #ifdef XORP_ENABLE_ASYNC_SERVER
10071     typedef
10072     XorpCallback2<void, const XrlCmdError &,
10073     const uint32_t*>::RefPtr
10074     Pim01PimstatHelloMessagesRxErrorsPerVifRF;
10075 
10076     class Pim01PimstatHelloMessagesRxErrorsPerVifCB {
10077         Pim01PimstatHelloMessagesRxErrorsPerVifRF cb;
10078 
10079     public:
10080         operator const Pim01PimstatHelloMessagesRxErrorsPerVifRF& () const { return cb; }
10081         const Pim01PimstatHelloMessagesRxErrorsPerVifRF& operator ->() const { return cb; }
10082         Pim01PimstatHelloMessagesRxErrorsPerVifCB(const Pim01PimstatHelloMessagesRxErrorsPerVifRF& cb)
10083           : cb(cb) { }
10084 
10085         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
10086 
10087         void respond(const uint32_t& arg_value) const {
10088             cb->dispatch(XrlCmdError::OKAY(),
10089                          &arg_value);
10090         }
10091     };
10092 
10093     struct Pim01PimstatHelloMessagesRxErrorsPerVifRsp :
10094       public Pim01PimstatHelloMessagesRxErrorsPerVifCB {
10095         struct args_str {
10096             uint32_t value;
10097         };
10098 
10099     private:
10100         args_str args;
10101 
10102     public:
10103         Pim01PimstatHelloMessagesRxErrorsPerVifRsp(const Pim01PimstatHelloMessagesRxErrorsPerVifRF& cb)
10104           : Pim01PimstatHelloMessagesRxErrorsPerVifCB(cb) { }
10105 
10106         void respond() const {
10107             Pim01PimstatHelloMessagesRxErrorsPerVifCB::
10108             respond(args.value);
10109         }
10110 
10111         args_str* operator ->() {
10112             return &args;
10113         }
10114     };
10115 
10116     virtual void async_pim_0_1_pimstat_hello_messages_rx_errors_per_vif
10117        (
10118     const string&   vif_name,
10119     Pim01PimstatHelloMessagesRxErrorsPerVifCB);
10120 #endif
10121 
10122     virtual XrlCmdError pim_0_1_pimstat_register_messages_received_per_vif(
10123     // Input values,
10124     const string&   vif_name,
10125     // Output values,
10126     uint32_t&   value) = 0;
10127 #ifdef XORP_ENABLE_ASYNC_SERVER
10128     typedef
10129     XorpCallback2<void, const XrlCmdError &,
10130     const uint32_t*>::RefPtr
10131     Pim01PimstatRegisterMessagesReceivedPerVifRF;
10132 
10133     class Pim01PimstatRegisterMessagesReceivedPerVifCB {
10134         Pim01PimstatRegisterMessagesReceivedPerVifRF cb;
10135 
10136     public:
10137         operator const Pim01PimstatRegisterMessagesReceivedPerVifRF& () const { return cb; }
10138         const Pim01PimstatRegisterMessagesReceivedPerVifRF& operator ->() const { return cb; }
10139         Pim01PimstatRegisterMessagesReceivedPerVifCB(const Pim01PimstatRegisterMessagesReceivedPerVifRF& cb)
10140           : cb(cb) { }
10141 
10142         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
10143 
10144         void respond(const uint32_t& arg_value) const {
10145             cb->dispatch(XrlCmdError::OKAY(),
10146                          &arg_value);
10147         }
10148     };
10149 
10150     struct Pim01PimstatRegisterMessagesReceivedPerVifRsp :
10151       public Pim01PimstatRegisterMessagesReceivedPerVifCB {
10152         struct args_str {
10153             uint32_t value;
10154         };
10155 
10156     private:
10157         args_str args;
10158 
10159     public:
10160         Pim01PimstatRegisterMessagesReceivedPerVifRsp(const Pim01PimstatRegisterMessagesReceivedPerVifRF& cb)
10161           : Pim01PimstatRegisterMessagesReceivedPerVifCB(cb) { }
10162 
10163         void respond() const {
10164             Pim01PimstatRegisterMessagesReceivedPerVifCB::
10165             respond(args.value);
10166         }
10167 
10168         args_str* operator ->() {
10169             return &args;
10170         }
10171     };
10172 
10173     virtual void async_pim_0_1_pimstat_register_messages_received_per_vif
10174        (
10175     const string&   vif_name,
10176     Pim01PimstatRegisterMessagesReceivedPerVifCB);
10177 #endif
10178 
10179     virtual XrlCmdError pim_0_1_pimstat_register_messages_sent_per_vif(
10180     // Input values,
10181     const string&   vif_name,
10182     // Output values,
10183     uint32_t&   value) = 0;
10184 #ifdef XORP_ENABLE_ASYNC_SERVER
10185     typedef
10186     XorpCallback2<void, const XrlCmdError &,
10187     const uint32_t*>::RefPtr
10188     Pim01PimstatRegisterMessagesSentPerVifRF;
10189 
10190     class Pim01PimstatRegisterMessagesSentPerVifCB {
10191         Pim01PimstatRegisterMessagesSentPerVifRF cb;
10192 
10193     public:
10194         operator const Pim01PimstatRegisterMessagesSentPerVifRF& () const { return cb; }
10195         const Pim01PimstatRegisterMessagesSentPerVifRF& operator ->() const { return cb; }
10196         Pim01PimstatRegisterMessagesSentPerVifCB(const Pim01PimstatRegisterMessagesSentPerVifRF& cb)
10197           : cb(cb) { }
10198 
10199         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
10200 
10201         void respond(const uint32_t& arg_value) const {
10202             cb->dispatch(XrlCmdError::OKAY(),
10203                          &arg_value);
10204         }
10205     };
10206 
10207     struct Pim01PimstatRegisterMessagesSentPerVifRsp :
10208       public Pim01PimstatRegisterMessagesSentPerVifCB {
10209         struct args_str {
10210             uint32_t value;
10211         };
10212 
10213     private:
10214         args_str args;
10215 
10216     public:
10217         Pim01PimstatRegisterMessagesSentPerVifRsp(const Pim01PimstatRegisterMessagesSentPerVifRF& cb)
10218           : Pim01PimstatRegisterMessagesSentPerVifCB(cb) { }
10219 
10220         void respond() const {
10221             Pim01PimstatRegisterMessagesSentPerVifCB::
10222             respond(args.value);
10223         }
10224 
10225         args_str* operator ->() {
10226             return &args;
10227         }
10228     };
10229 
10230     virtual void async_pim_0_1_pimstat_register_messages_sent_per_vif
10231        (
10232     const string&   vif_name,
10233     Pim01PimstatRegisterMessagesSentPerVifCB);
10234 #endif
10235 
10236     virtual XrlCmdError pim_0_1_pimstat_register_messages_rx_errors_per_vif(
10237     // Input values,
10238     const string&   vif_name,
10239     // Output values,
10240     uint32_t&   value) = 0;
10241 #ifdef XORP_ENABLE_ASYNC_SERVER
10242     typedef
10243     XorpCallback2<void, const XrlCmdError &,
10244     const uint32_t*>::RefPtr
10245     Pim01PimstatRegisterMessagesRxErrorsPerVifRF;
10246 
10247     class Pim01PimstatRegisterMessagesRxErrorsPerVifCB {
10248         Pim01PimstatRegisterMessagesRxErrorsPerVifRF cb;
10249 
10250     public:
10251         operator const Pim01PimstatRegisterMessagesRxErrorsPerVifRF& () const { return cb; }
10252         const Pim01PimstatRegisterMessagesRxErrorsPerVifRF& operator ->() const { return cb; }
10253         Pim01PimstatRegisterMessagesRxErrorsPerVifCB(const Pim01PimstatRegisterMessagesRxErrorsPerVifRF& cb)
10254           : cb(cb) { }
10255 
10256         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
10257 
10258         void respond(const uint32_t& arg_value) const {
10259             cb->dispatch(XrlCmdError::OKAY(),
10260                          &arg_value);
10261         }
10262     };
10263 
10264     struct Pim01PimstatRegisterMessagesRxErrorsPerVifRsp :
10265       public Pim01PimstatRegisterMessagesRxErrorsPerVifCB {
10266         struct args_str {
10267             uint32_t value;
10268         };
10269 
10270     private:
10271         args_str args;
10272 
10273     public:
10274         Pim01PimstatRegisterMessagesRxErrorsPerVifRsp(const Pim01PimstatRegisterMessagesRxErrorsPerVifRF& cb)
10275           : Pim01PimstatRegisterMessagesRxErrorsPerVifCB(cb) { }
10276 
10277         void respond() const {
10278             Pim01PimstatRegisterMessagesRxErrorsPerVifCB::
10279             respond(args.value);
10280         }
10281 
10282         args_str* operator ->() {
10283             return &args;
10284         }
10285     };
10286 
10287     virtual void async_pim_0_1_pimstat_register_messages_rx_errors_per_vif
10288        (
10289     const string&   vif_name,
10290     Pim01PimstatRegisterMessagesRxErrorsPerVifCB);
10291 #endif
10292 
10293     virtual XrlCmdError pim_0_1_pimstat_register_stop_messages_received_per_vif(
10294     // Input values,
10295     const string&   vif_name,
10296     // Output values,
10297     uint32_t&   value) = 0;
10298 #ifdef XORP_ENABLE_ASYNC_SERVER
10299     typedef
10300     XorpCallback2<void, const XrlCmdError &,
10301     const uint32_t*>::RefPtr
10302     Pim01PimstatRegisterStopMessagesReceivedPerVifRF;
10303 
10304     class Pim01PimstatRegisterStopMessagesReceivedPerVifCB {
10305         Pim01PimstatRegisterStopMessagesReceivedPerVifRF cb;
10306 
10307     public:
10308         operator const Pim01PimstatRegisterStopMessagesReceivedPerVifRF& () const { return cb; }
10309         const Pim01PimstatRegisterStopMessagesReceivedPerVifRF& operator ->() const { return cb; }
10310         Pim01PimstatRegisterStopMessagesReceivedPerVifCB(const Pim01PimstatRegisterStopMessagesReceivedPerVifRF& cb)
10311           : cb(cb) { }
10312 
10313         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
10314 
10315         void respond(const uint32_t& arg_value) const {
10316             cb->dispatch(XrlCmdError::OKAY(),
10317                          &arg_value);
10318         }
10319     };
10320 
10321     struct Pim01PimstatRegisterStopMessagesReceivedPerVifRsp :
10322       public Pim01PimstatRegisterStopMessagesReceivedPerVifCB {
10323         struct args_str {
10324             uint32_t value;
10325         };
10326 
10327     private:
10328         args_str args;
10329 
10330     public:
10331         Pim01PimstatRegisterStopMessagesReceivedPerVifRsp(const Pim01PimstatRegisterStopMessagesReceivedPerVifRF& cb)
10332           : Pim01PimstatRegisterStopMessagesReceivedPerVifCB(cb) { }
10333 
10334         void respond() const {
10335             Pim01PimstatRegisterStopMessagesReceivedPerVifCB::
10336             respond(args.value);
10337         }
10338 
10339         args_str* operator ->() {
10340             return &args;
10341         }
10342     };
10343 
10344     virtual void async_pim_0_1_pimstat_register_stop_messages_received_per_vif
10345        (
10346     const string&   vif_name,
10347     Pim01PimstatRegisterStopMessagesReceivedPerVifCB);
10348 #endif
10349 
10350     virtual XrlCmdError pim_0_1_pimstat_register_stop_messages_sent_per_vif(
10351     // Input values,
10352     const string&   vif_name,
10353     // Output values,
10354     uint32_t&   value) = 0;
10355 #ifdef XORP_ENABLE_ASYNC_SERVER
10356     typedef
10357     XorpCallback2<void, const XrlCmdError &,
10358     const uint32_t*>::RefPtr
10359     Pim01PimstatRegisterStopMessagesSentPerVifRF;
10360 
10361     class Pim01PimstatRegisterStopMessagesSentPerVifCB {
10362         Pim01PimstatRegisterStopMessagesSentPerVifRF cb;
10363 
10364     public:
10365         operator const Pim01PimstatRegisterStopMessagesSentPerVifRF& () const { return cb; }
10366         const Pim01PimstatRegisterStopMessagesSentPerVifRF& operator ->() const { return cb; }
10367         Pim01PimstatRegisterStopMessagesSentPerVifCB(const Pim01PimstatRegisterStopMessagesSentPerVifRF& cb)
10368           : cb(cb) { }
10369 
10370         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
10371 
10372         void respond(const uint32_t& arg_value) const {
10373             cb->dispatch(XrlCmdError::OKAY(),
10374                          &arg_value);
10375         }
10376     };
10377 
10378     struct Pim01PimstatRegisterStopMessagesSentPerVifRsp :
10379       public Pim01PimstatRegisterStopMessagesSentPerVifCB {
10380         struct args_str {
10381             uint32_t value;
10382         };
10383 
10384     private:
10385         args_str args;
10386 
10387     public:
10388         Pim01PimstatRegisterStopMessagesSentPerVifRsp(const Pim01PimstatRegisterStopMessagesSentPerVifRF& cb)
10389           : Pim01PimstatRegisterStopMessagesSentPerVifCB(cb) { }
10390 
10391         void respond() const {
10392             Pim01PimstatRegisterStopMessagesSentPerVifCB::
10393             respond(args.value);
10394         }
10395 
10396         args_str* operator ->() {
10397             return &args;
10398         }
10399     };
10400 
10401     virtual void async_pim_0_1_pimstat_register_stop_messages_sent_per_vif
10402        (
10403     const string&   vif_name,
10404     Pim01PimstatRegisterStopMessagesSentPerVifCB);
10405 #endif
10406 
10407     virtual XrlCmdError pim_0_1_pimstat_register_stop_messages_rx_errors_per_vif(
10408     // Input values,
10409     const string&   vif_name,
10410     // Output values,
10411     uint32_t&   value) = 0;
10412 #ifdef XORP_ENABLE_ASYNC_SERVER
10413     typedef
10414     XorpCallback2<void, const XrlCmdError &,
10415     const uint32_t*>::RefPtr
10416     Pim01PimstatRegisterStopMessagesRxErrorsPerVifRF;
10417 
10418     class Pim01PimstatRegisterStopMessagesRxErrorsPerVifCB {
10419         Pim01PimstatRegisterStopMessagesRxErrorsPerVifRF cb;
10420 
10421     public:
10422         operator const Pim01PimstatRegisterStopMessagesRxErrorsPerVifRF& () const { return cb; }
10423         const Pim01PimstatRegisterStopMessagesRxErrorsPerVifRF& operator ->() const { return cb; }
10424         Pim01PimstatRegisterStopMessagesRxErrorsPerVifCB(const Pim01PimstatRegisterStopMessagesRxErrorsPerVifRF& cb)
10425           : cb(cb) { }
10426 
10427         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
10428 
10429         void respond(const uint32_t& arg_value) const {
10430             cb->dispatch(XrlCmdError::OKAY(),
10431                          &arg_value);
10432         }
10433     };
10434 
10435     struct Pim01PimstatRegisterStopMessagesRxErrorsPerVifRsp :
10436       public Pim01PimstatRegisterStopMessagesRxErrorsPerVifCB {
10437         struct args_str {
10438             uint32_t value;
10439         };
10440 
10441     private:
10442         args_str args;
10443 
10444     public:
10445         Pim01PimstatRegisterStopMessagesRxErrorsPerVifRsp(const Pim01PimstatRegisterStopMessagesRxErrorsPerVifRF& cb)
10446           : Pim01PimstatRegisterStopMessagesRxErrorsPerVifCB(cb) { }
10447 
10448         void respond() const {
10449             Pim01PimstatRegisterStopMessagesRxErrorsPerVifCB::
10450             respond(args.value);
10451         }
10452 
10453         args_str* operator ->() {
10454             return &args;
10455         }
10456     };
10457 
10458     virtual void async_pim_0_1_pimstat_register_stop_messages_rx_errors_per_vif
10459        (
10460     const string&   vif_name,
10461     Pim01PimstatRegisterStopMessagesRxErrorsPerVifCB);
10462 #endif
10463 
10464     virtual XrlCmdError pim_0_1_pimstat_join_prune_messages_received_per_vif(
10465     // Input values,
10466     const string&   vif_name,
10467     // Output values,
10468     uint32_t&   value) = 0;
10469 #ifdef XORP_ENABLE_ASYNC_SERVER
10470     typedef
10471     XorpCallback2<void, const XrlCmdError &,
10472     const uint32_t*>::RefPtr
10473     Pim01PimstatJoinPruneMessagesReceivedPerVifRF;
10474 
10475     class Pim01PimstatJoinPruneMessagesReceivedPerVifCB {
10476         Pim01PimstatJoinPruneMessagesReceivedPerVifRF cb;
10477 
10478     public:
10479         operator const Pim01PimstatJoinPruneMessagesReceivedPerVifRF& () const { return cb; }
10480         const Pim01PimstatJoinPruneMessagesReceivedPerVifRF& operator ->() const { return cb; }
10481         Pim01PimstatJoinPruneMessagesReceivedPerVifCB(const Pim01PimstatJoinPruneMessagesReceivedPerVifRF& cb)
10482           : cb(cb) { }
10483 
10484         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
10485 
10486         void respond(const uint32_t& arg_value) const {
10487             cb->dispatch(XrlCmdError::OKAY(),
10488                          &arg_value);
10489         }
10490     };
10491 
10492     struct Pim01PimstatJoinPruneMessagesReceivedPerVifRsp :
10493       public Pim01PimstatJoinPruneMessagesReceivedPerVifCB {
10494         struct args_str {
10495             uint32_t value;
10496         };
10497 
10498     private:
10499         args_str args;
10500 
10501     public:
10502         Pim01PimstatJoinPruneMessagesReceivedPerVifRsp(const Pim01PimstatJoinPruneMessagesReceivedPerVifRF& cb)
10503           : Pim01PimstatJoinPruneMessagesReceivedPerVifCB(cb) { }
10504 
10505         void respond() const {
10506             Pim01PimstatJoinPruneMessagesReceivedPerVifCB::
10507             respond(args.value);
10508         }
10509 
10510         args_str* operator ->() {
10511             return &args;
10512         }
10513     };
10514 
10515     virtual void async_pim_0_1_pimstat_join_prune_messages_received_per_vif
10516        (
10517     const string&   vif_name,
10518     Pim01PimstatJoinPruneMessagesReceivedPerVifCB);
10519 #endif
10520 
10521     virtual XrlCmdError pim_0_1_pimstat_join_prune_messages_sent_per_vif(
10522     // Input values,
10523     const string&   vif_name,
10524     // Output values,
10525     uint32_t&   value) = 0;
10526 #ifdef XORP_ENABLE_ASYNC_SERVER
10527     typedef
10528     XorpCallback2<void, const XrlCmdError &,
10529     const uint32_t*>::RefPtr
10530     Pim01PimstatJoinPruneMessagesSentPerVifRF;
10531 
10532     class Pim01PimstatJoinPruneMessagesSentPerVifCB {
10533         Pim01PimstatJoinPruneMessagesSentPerVifRF cb;
10534 
10535     public:
10536         operator const Pim01PimstatJoinPruneMessagesSentPerVifRF& () const { return cb; }
10537         const Pim01PimstatJoinPruneMessagesSentPerVifRF& operator ->() const { return cb; }
10538         Pim01PimstatJoinPruneMessagesSentPerVifCB(const Pim01PimstatJoinPruneMessagesSentPerVifRF& cb)
10539           : cb(cb) { }
10540 
10541         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
10542 
10543         void respond(const uint32_t& arg_value) const {
10544             cb->dispatch(XrlCmdError::OKAY(),
10545                          &arg_value);
10546         }
10547     };
10548 
10549     struct Pim01PimstatJoinPruneMessagesSentPerVifRsp :
10550       public Pim01PimstatJoinPruneMessagesSentPerVifCB {
10551         struct args_str {
10552             uint32_t value;
10553         };
10554 
10555     private:
10556         args_str args;
10557 
10558     public:
10559         Pim01PimstatJoinPruneMessagesSentPerVifRsp(const Pim01PimstatJoinPruneMessagesSentPerVifRF& cb)
10560           : Pim01PimstatJoinPruneMessagesSentPerVifCB(cb) { }
10561 
10562         void respond() const {
10563             Pim01PimstatJoinPruneMessagesSentPerVifCB::
10564             respond(args.value);
10565         }
10566 
10567         args_str* operator ->() {
10568             return &args;
10569         }
10570     };
10571 
10572     virtual void async_pim_0_1_pimstat_join_prune_messages_sent_per_vif
10573        (
10574     const string&   vif_name,
10575     Pim01PimstatJoinPruneMessagesSentPerVifCB);
10576 #endif
10577 
10578     virtual XrlCmdError pim_0_1_pimstat_join_prune_messages_rx_errors_per_vif(
10579     // Input values,
10580     const string&   vif_name,
10581     // Output values,
10582     uint32_t&   value) = 0;
10583 #ifdef XORP_ENABLE_ASYNC_SERVER
10584     typedef
10585     XorpCallback2<void, const XrlCmdError &,
10586     const uint32_t*>::RefPtr
10587     Pim01PimstatJoinPruneMessagesRxErrorsPerVifRF;
10588 
10589     class Pim01PimstatJoinPruneMessagesRxErrorsPerVifCB {
10590         Pim01PimstatJoinPruneMessagesRxErrorsPerVifRF cb;
10591 
10592     public:
10593         operator const Pim01PimstatJoinPruneMessagesRxErrorsPerVifRF& () const { return cb; }
10594         const Pim01PimstatJoinPruneMessagesRxErrorsPerVifRF& operator ->() const { return cb; }
10595         Pim01PimstatJoinPruneMessagesRxErrorsPerVifCB(const Pim01PimstatJoinPruneMessagesRxErrorsPerVifRF& cb)
10596           : cb(cb) { }
10597 
10598         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
10599 
10600         void respond(const uint32_t& arg_value) const {
10601             cb->dispatch(XrlCmdError::OKAY(),
10602                          &arg_value);
10603         }
10604     };
10605 
10606     struct Pim01PimstatJoinPruneMessagesRxErrorsPerVifRsp :
10607       public Pim01PimstatJoinPruneMessagesRxErrorsPerVifCB {
10608         struct args_str {
10609             uint32_t value;
10610         };
10611 
10612     private:
10613         args_str args;
10614 
10615     public:
10616         Pim01PimstatJoinPruneMessagesRxErrorsPerVifRsp(const Pim01PimstatJoinPruneMessagesRxErrorsPerVifRF& cb)
10617           : Pim01PimstatJoinPruneMessagesRxErrorsPerVifCB(cb) { }
10618 
10619         void respond() const {
10620             Pim01PimstatJoinPruneMessagesRxErrorsPerVifCB::
10621             respond(args.value);
10622         }
10623 
10624         args_str* operator ->() {
10625             return &args;
10626         }
10627     };
10628 
10629     virtual void async_pim_0_1_pimstat_join_prune_messages_rx_errors_per_vif
10630        (
10631     const string&   vif_name,
10632     Pim01PimstatJoinPruneMessagesRxErrorsPerVifCB);
10633 #endif
10634 
10635     virtual XrlCmdError pim_0_1_pimstat_bootstrap_messages_received_per_vif(
10636     // Input values,
10637     const string&   vif_name,
10638     // Output values,
10639     uint32_t&   value) = 0;
10640 #ifdef XORP_ENABLE_ASYNC_SERVER
10641     typedef
10642     XorpCallback2<void, const XrlCmdError &,
10643     const uint32_t*>::RefPtr
10644     Pim01PimstatBootstrapMessagesReceivedPerVifRF;
10645 
10646     class Pim01PimstatBootstrapMessagesReceivedPerVifCB {
10647         Pim01PimstatBootstrapMessagesReceivedPerVifRF cb;
10648 
10649     public:
10650         operator const Pim01PimstatBootstrapMessagesReceivedPerVifRF& () const { return cb; }
10651         const Pim01PimstatBootstrapMessagesReceivedPerVifRF& operator ->() const { return cb; }
10652         Pim01PimstatBootstrapMessagesReceivedPerVifCB(const Pim01PimstatBootstrapMessagesReceivedPerVifRF& cb)
10653           : cb(cb) { }
10654 
10655         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
10656 
10657         void respond(const uint32_t& arg_value) const {
10658             cb->dispatch(XrlCmdError::OKAY(),
10659                          &arg_value);
10660         }
10661     };
10662 
10663     struct Pim01PimstatBootstrapMessagesReceivedPerVifRsp :
10664       public Pim01PimstatBootstrapMessagesReceivedPerVifCB {
10665         struct args_str {
10666             uint32_t value;
10667         };
10668 
10669     private:
10670         args_str args;
10671 
10672     public:
10673         Pim01PimstatBootstrapMessagesReceivedPerVifRsp(const Pim01PimstatBootstrapMessagesReceivedPerVifRF& cb)
10674           : Pim01PimstatBootstrapMessagesReceivedPerVifCB(cb) { }
10675 
10676         void respond() const {
10677             Pim01PimstatBootstrapMessagesReceivedPerVifCB::
10678             respond(args.value);
10679         }
10680 
10681         args_str* operator ->() {
10682             return &args;
10683         }
10684     };
10685 
10686     virtual void async_pim_0_1_pimstat_bootstrap_messages_received_per_vif
10687        (
10688     const string&   vif_name,
10689     Pim01PimstatBootstrapMessagesReceivedPerVifCB);
10690 #endif
10691 
10692     virtual XrlCmdError pim_0_1_pimstat_bootstrap_messages_sent_per_vif(
10693     // Input values,
10694     const string&   vif_name,
10695     // Output values,
10696     uint32_t&   value) = 0;
10697 #ifdef XORP_ENABLE_ASYNC_SERVER
10698     typedef
10699     XorpCallback2<void, const XrlCmdError &,
10700     const uint32_t*>::RefPtr
10701     Pim01PimstatBootstrapMessagesSentPerVifRF;
10702 
10703     class Pim01PimstatBootstrapMessagesSentPerVifCB {
10704         Pim01PimstatBootstrapMessagesSentPerVifRF cb;
10705 
10706     public:
10707         operator const Pim01PimstatBootstrapMessagesSentPerVifRF& () const { return cb; }
10708         const Pim01PimstatBootstrapMessagesSentPerVifRF& operator ->() const { return cb; }
10709         Pim01PimstatBootstrapMessagesSentPerVifCB(const Pim01PimstatBootstrapMessagesSentPerVifRF& cb)
10710           : cb(cb) { }
10711 
10712         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
10713 
10714         void respond(const uint32_t& arg_value) const {
10715             cb->dispatch(XrlCmdError::OKAY(),
10716                          &arg_value);
10717         }
10718     };
10719 
10720     struct Pim01PimstatBootstrapMessagesSentPerVifRsp :
10721       public Pim01PimstatBootstrapMessagesSentPerVifCB {
10722         struct args_str {
10723             uint32_t value;
10724         };
10725 
10726     private:
10727         args_str args;
10728 
10729     public:
10730         Pim01PimstatBootstrapMessagesSentPerVifRsp(const Pim01PimstatBootstrapMessagesSentPerVifRF& cb)
10731           : Pim01PimstatBootstrapMessagesSentPerVifCB(cb) { }
10732 
10733         void respond() const {
10734             Pim01PimstatBootstrapMessagesSentPerVifCB::
10735             respond(args.value);
10736         }
10737 
10738         args_str* operator ->() {
10739             return &args;
10740         }
10741     };
10742 
10743     virtual void async_pim_0_1_pimstat_bootstrap_messages_sent_per_vif
10744        (
10745     const string&   vif_name,
10746     Pim01PimstatBootstrapMessagesSentPerVifCB);
10747 #endif
10748 
10749     virtual XrlCmdError pim_0_1_pimstat_bootstrap_messages_rx_errors_per_vif(
10750     // Input values,
10751     const string&   vif_name,
10752     // Output values,
10753     uint32_t&   value) = 0;
10754 #ifdef XORP_ENABLE_ASYNC_SERVER
10755     typedef
10756     XorpCallback2<void, const XrlCmdError &,
10757     const uint32_t*>::RefPtr
10758     Pim01PimstatBootstrapMessagesRxErrorsPerVifRF;
10759 
10760     class Pim01PimstatBootstrapMessagesRxErrorsPerVifCB {
10761         Pim01PimstatBootstrapMessagesRxErrorsPerVifRF cb;
10762 
10763     public:
10764         operator const Pim01PimstatBootstrapMessagesRxErrorsPerVifRF& () const { return cb; }
10765         const Pim01PimstatBootstrapMessagesRxErrorsPerVifRF& operator ->() const { return cb; }
10766         Pim01PimstatBootstrapMessagesRxErrorsPerVifCB(const Pim01PimstatBootstrapMessagesRxErrorsPerVifRF& cb)
10767           : cb(cb) { }
10768 
10769         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
10770 
10771         void respond(const uint32_t& arg_value) const {
10772             cb->dispatch(XrlCmdError::OKAY(),
10773                          &arg_value);
10774         }
10775     };
10776 
10777     struct Pim01PimstatBootstrapMessagesRxErrorsPerVifRsp :
10778       public Pim01PimstatBootstrapMessagesRxErrorsPerVifCB {
10779         struct args_str {
10780             uint32_t value;
10781         };
10782 
10783     private:
10784         args_str args;
10785 
10786     public:
10787         Pim01PimstatBootstrapMessagesRxErrorsPerVifRsp(const Pim01PimstatBootstrapMessagesRxErrorsPerVifRF& cb)
10788           : Pim01PimstatBootstrapMessagesRxErrorsPerVifCB(cb) { }
10789 
10790         void respond() const {
10791             Pim01PimstatBootstrapMessagesRxErrorsPerVifCB::
10792             respond(args.value);
10793         }
10794 
10795         args_str* operator ->() {
10796             return &args;
10797         }
10798     };
10799 
10800     virtual void async_pim_0_1_pimstat_bootstrap_messages_rx_errors_per_vif
10801        (
10802     const string&   vif_name,
10803     Pim01PimstatBootstrapMessagesRxErrorsPerVifCB);
10804 #endif
10805 
10806     virtual XrlCmdError pim_0_1_pimstat_assert_messages_received_per_vif(
10807     // Input values,
10808     const string&   vif_name,
10809     // Output values,
10810     uint32_t&   value) = 0;
10811 #ifdef XORP_ENABLE_ASYNC_SERVER
10812     typedef
10813     XorpCallback2<void, const XrlCmdError &,
10814     const uint32_t*>::RefPtr
10815     Pim01PimstatAssertMessagesReceivedPerVifRF;
10816 
10817     class Pim01PimstatAssertMessagesReceivedPerVifCB {
10818         Pim01PimstatAssertMessagesReceivedPerVifRF cb;
10819 
10820     public:
10821         operator const Pim01PimstatAssertMessagesReceivedPerVifRF& () const { return cb; }
10822         const Pim01PimstatAssertMessagesReceivedPerVifRF& operator ->() const { return cb; }
10823         Pim01PimstatAssertMessagesReceivedPerVifCB(const Pim01PimstatAssertMessagesReceivedPerVifRF& cb)
10824           : cb(cb) { }
10825 
10826         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
10827 
10828         void respond(const uint32_t& arg_value) const {
10829             cb->dispatch(XrlCmdError::OKAY(),
10830                          &arg_value);
10831         }
10832     };
10833 
10834     struct Pim01PimstatAssertMessagesReceivedPerVifRsp :
10835       public Pim01PimstatAssertMessagesReceivedPerVifCB {
10836         struct args_str {
10837             uint32_t value;
10838         };
10839 
10840     private:
10841         args_str args;
10842 
10843     public:
10844         Pim01PimstatAssertMessagesReceivedPerVifRsp(const Pim01PimstatAssertMessagesReceivedPerVifRF& cb)
10845           : Pim01PimstatAssertMessagesReceivedPerVifCB(cb) { }
10846 
10847         void respond() const {
10848             Pim01PimstatAssertMessagesReceivedPerVifCB::
10849             respond(args.value);
10850         }
10851 
10852         args_str* operator ->() {
10853             return &args;
10854         }
10855     };
10856 
10857     virtual void async_pim_0_1_pimstat_assert_messages_received_per_vif
10858        (
10859     const string&   vif_name,
10860     Pim01PimstatAssertMessagesReceivedPerVifCB);
10861 #endif
10862 
10863     virtual XrlCmdError pim_0_1_pimstat_assert_messages_sent_per_vif(
10864     // Input values,
10865     const string&   vif_name,
10866     // Output values,
10867     uint32_t&   value) = 0;
10868 #ifdef XORP_ENABLE_ASYNC_SERVER
10869     typedef
10870     XorpCallback2<void, const XrlCmdError &,
10871     const uint32_t*>::RefPtr
10872     Pim01PimstatAssertMessagesSentPerVifRF;
10873 
10874     class Pim01PimstatAssertMessagesSentPerVifCB {
10875         Pim01PimstatAssertMessagesSentPerVifRF cb;
10876 
10877     public:
10878         operator const Pim01PimstatAssertMessagesSentPerVifRF& () const { return cb; }
10879         const Pim01PimstatAssertMessagesSentPerVifRF& operator ->() const { return cb; }
10880         Pim01PimstatAssertMessagesSentPerVifCB(const Pim01PimstatAssertMessagesSentPerVifRF& cb)
10881           : cb(cb) { }
10882 
10883         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
10884 
10885         void respond(const uint32_t& arg_value) const {
10886             cb->dispatch(XrlCmdError::OKAY(),
10887                          &arg_value);
10888         }
10889     };
10890 
10891     struct Pim01PimstatAssertMessagesSentPerVifRsp :
10892       public Pim01PimstatAssertMessagesSentPerVifCB {
10893         struct args_str {
10894             uint32_t value;
10895         };
10896 
10897     private:
10898         args_str args;
10899 
10900     public:
10901         Pim01PimstatAssertMessagesSentPerVifRsp(const Pim01PimstatAssertMessagesSentPerVifRF& cb)
10902           : Pim01PimstatAssertMessagesSentPerVifCB(cb) { }
10903 
10904         void respond() const {
10905             Pim01PimstatAssertMessagesSentPerVifCB::
10906             respond(args.value);
10907         }
10908 
10909         args_str* operator ->() {
10910             return &args;
10911         }
10912     };
10913 
10914     virtual void async_pim_0_1_pimstat_assert_messages_sent_per_vif
10915        (
10916     const string&   vif_name,
10917     Pim01PimstatAssertMessagesSentPerVifCB);
10918 #endif
10919 
10920     virtual XrlCmdError pim_0_1_pimstat_assert_messages_rx_errors_per_vif(
10921     // Input values,
10922     const string&   vif_name,
10923     // Output values,
10924     uint32_t&   value) = 0;
10925 #ifdef XORP_ENABLE_ASYNC_SERVER
10926     typedef
10927     XorpCallback2<void, const XrlCmdError &,
10928     const uint32_t*>::RefPtr
10929     Pim01PimstatAssertMessagesRxErrorsPerVifRF;
10930 
10931     class Pim01PimstatAssertMessagesRxErrorsPerVifCB {
10932         Pim01PimstatAssertMessagesRxErrorsPerVifRF cb;
10933 
10934     public:
10935         operator const Pim01PimstatAssertMessagesRxErrorsPerVifRF& () const { return cb; }
10936         const Pim01PimstatAssertMessagesRxErrorsPerVifRF& operator ->() const { return cb; }
10937         Pim01PimstatAssertMessagesRxErrorsPerVifCB(const Pim01PimstatAssertMessagesRxErrorsPerVifRF& cb)
10938           : cb(cb) { }
10939 
10940         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
10941 
10942         void respond(const uint32_t& arg_value) const {
10943             cb->dispatch(XrlCmdError::OKAY(),
10944                          &arg_value);
10945         }
10946     };
10947 
10948     struct Pim01PimstatAssertMessagesRxErrorsPerVifRsp :
10949       public Pim01PimstatAssertMessagesRxErrorsPerVifCB {
10950         struct args_str {
10951             uint32_t value;
10952         };
10953 
10954     private:
10955         args_str args;
10956 
10957     public:
10958         Pim01PimstatAssertMessagesRxErrorsPerVifRsp(const Pim01PimstatAssertMessagesRxErrorsPerVifRF& cb)
10959           : Pim01PimstatAssertMessagesRxErrorsPerVifCB(cb) { }
10960 
10961         void respond() const {
10962             Pim01PimstatAssertMessagesRxErrorsPerVifCB::
10963             respond(args.value);
10964         }
10965 
10966         args_str* operator ->() {
10967             return &args;
10968         }
10969     };
10970 
10971     virtual void async_pim_0_1_pimstat_assert_messages_rx_errors_per_vif
10972        (
10973     const string&   vif_name,
10974     Pim01PimstatAssertMessagesRxErrorsPerVifCB);
10975 #endif
10976 
10977     virtual XrlCmdError pim_0_1_pimstat_graft_messages_received_per_vif(
10978     // Input values,
10979     const string&   vif_name,
10980     // Output values,
10981     uint32_t&   value) = 0;
10982 #ifdef XORP_ENABLE_ASYNC_SERVER
10983     typedef
10984     XorpCallback2<void, const XrlCmdError &,
10985     const uint32_t*>::RefPtr
10986     Pim01PimstatGraftMessagesReceivedPerVifRF;
10987 
10988     class Pim01PimstatGraftMessagesReceivedPerVifCB {
10989         Pim01PimstatGraftMessagesReceivedPerVifRF cb;
10990 
10991     public:
10992         operator const Pim01PimstatGraftMessagesReceivedPerVifRF& () const { return cb; }
10993         const Pim01PimstatGraftMessagesReceivedPerVifRF& operator ->() const { return cb; }
10994         Pim01PimstatGraftMessagesReceivedPerVifCB(const Pim01PimstatGraftMessagesReceivedPerVifRF& cb)
10995           : cb(cb) { }
10996 
10997         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
10998 
10999         void respond(const uint32_t& arg_value) const {
11000             cb->dispatch(XrlCmdError::OKAY(),
11001                          &arg_value);
11002         }
11003     };
11004 
11005     struct Pim01PimstatGraftMessagesReceivedPerVifRsp :
11006       public Pim01PimstatGraftMessagesReceivedPerVifCB {
11007         struct args_str {
11008             uint32_t value;
11009         };
11010 
11011     private:
11012         args_str args;
11013 
11014     public:
11015         Pim01PimstatGraftMessagesReceivedPerVifRsp(const Pim01PimstatGraftMessagesReceivedPerVifRF& cb)
11016           : Pim01PimstatGraftMessagesReceivedPerVifCB(cb) { }
11017 
11018         void respond() const {
11019             Pim01PimstatGraftMessagesReceivedPerVifCB::
11020             respond(args.value);
11021         }
11022 
11023         args_str* operator ->() {
11024             return &args;
11025         }
11026     };
11027 
11028     virtual void async_pim_0_1_pimstat_graft_messages_received_per_vif
11029        (
11030     const string&   vif_name,
11031     Pim01PimstatGraftMessagesReceivedPerVifCB);
11032 #endif
11033 
11034     virtual XrlCmdError pim_0_1_pimstat_graft_messages_sent_per_vif(
11035     // Input values,
11036     const string&   vif_name,
11037     // Output values,
11038     uint32_t&   value) = 0;
11039 #ifdef XORP_ENABLE_ASYNC_SERVER
11040     typedef
11041     XorpCallback2<void, const XrlCmdError &,
11042     const uint32_t*>::RefPtr
11043     Pim01PimstatGraftMessagesSentPerVifRF;
11044 
11045     class Pim01PimstatGraftMessagesSentPerVifCB {
11046         Pim01PimstatGraftMessagesSentPerVifRF cb;
11047 
11048     public:
11049         operator const Pim01PimstatGraftMessagesSentPerVifRF& () const { return cb; }
11050         const Pim01PimstatGraftMessagesSentPerVifRF& operator ->() const { return cb; }
11051         Pim01PimstatGraftMessagesSentPerVifCB(const Pim01PimstatGraftMessagesSentPerVifRF& cb)
11052           : cb(cb) { }
11053 
11054         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
11055 
11056         void respond(const uint32_t& arg_value) const {
11057             cb->dispatch(XrlCmdError::OKAY(),
11058                          &arg_value);
11059         }
11060     };
11061 
11062     struct Pim01PimstatGraftMessagesSentPerVifRsp :
11063       public Pim01PimstatGraftMessagesSentPerVifCB {
11064         struct args_str {
11065             uint32_t value;
11066         };
11067 
11068     private:
11069         args_str args;
11070 
11071     public:
11072         Pim01PimstatGraftMessagesSentPerVifRsp(const Pim01PimstatGraftMessagesSentPerVifRF& cb)
11073           : Pim01PimstatGraftMessagesSentPerVifCB(cb) { }
11074 
11075         void respond() const {
11076             Pim01PimstatGraftMessagesSentPerVifCB::
11077             respond(args.value);
11078         }
11079 
11080         args_str* operator ->() {
11081             return &args;
11082         }
11083     };
11084 
11085     virtual void async_pim_0_1_pimstat_graft_messages_sent_per_vif
11086        (
11087     const string&   vif_name,
11088     Pim01PimstatGraftMessagesSentPerVifCB);
11089 #endif
11090 
11091     virtual XrlCmdError pim_0_1_pimstat_graft_messages_rx_errors_per_vif(
11092     // Input values,
11093     const string&   vif_name,
11094     // Output values,
11095     uint32_t&   value) = 0;
11096 #ifdef XORP_ENABLE_ASYNC_SERVER
11097     typedef
11098     XorpCallback2<void, const XrlCmdError &,
11099     const uint32_t*>::RefPtr
11100     Pim01PimstatGraftMessagesRxErrorsPerVifRF;
11101 
11102     class Pim01PimstatGraftMessagesRxErrorsPerVifCB {
11103         Pim01PimstatGraftMessagesRxErrorsPerVifRF cb;
11104 
11105     public:
11106         operator const Pim01PimstatGraftMessagesRxErrorsPerVifRF& () const { return cb; }
11107         const Pim01PimstatGraftMessagesRxErrorsPerVifRF& operator ->() const { return cb; }
11108         Pim01PimstatGraftMessagesRxErrorsPerVifCB(const Pim01PimstatGraftMessagesRxErrorsPerVifRF& cb)
11109           : cb(cb) { }
11110 
11111         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
11112 
11113         void respond(const uint32_t& arg_value) const {
11114             cb->dispatch(XrlCmdError::OKAY(),
11115                          &arg_value);
11116         }
11117     };
11118 
11119     struct Pim01PimstatGraftMessagesRxErrorsPerVifRsp :
11120       public Pim01PimstatGraftMessagesRxErrorsPerVifCB {
11121         struct args_str {
11122             uint32_t value;
11123         };
11124 
11125     private:
11126         args_str args;
11127 
11128     public:
11129         Pim01PimstatGraftMessagesRxErrorsPerVifRsp(const Pim01PimstatGraftMessagesRxErrorsPerVifRF& cb)
11130           : Pim01PimstatGraftMessagesRxErrorsPerVifCB(cb) { }
11131 
11132         void respond() const {
11133             Pim01PimstatGraftMessagesRxErrorsPerVifCB::
11134             respond(args.value);
11135         }
11136 
11137         args_str* operator ->() {
11138             return &args;
11139         }
11140     };
11141 
11142     virtual void async_pim_0_1_pimstat_graft_messages_rx_errors_per_vif
11143        (
11144     const string&   vif_name,
11145     Pim01PimstatGraftMessagesRxErrorsPerVifCB);
11146 #endif
11147 
11148     virtual XrlCmdError pim_0_1_pimstat_graft_ack_messages_received_per_vif(
11149     // Input values,
11150     const string&   vif_name,
11151     // Output values,
11152     uint32_t&   value) = 0;
11153 #ifdef XORP_ENABLE_ASYNC_SERVER
11154     typedef
11155     XorpCallback2<void, const XrlCmdError &,
11156     const uint32_t*>::RefPtr
11157     Pim01PimstatGraftAckMessagesReceivedPerVifRF;
11158 
11159     class Pim01PimstatGraftAckMessagesReceivedPerVifCB {
11160         Pim01PimstatGraftAckMessagesReceivedPerVifRF cb;
11161 
11162     public:
11163         operator const Pim01PimstatGraftAckMessagesReceivedPerVifRF& () const { return cb; }
11164         const Pim01PimstatGraftAckMessagesReceivedPerVifRF& operator ->() const { return cb; }
11165         Pim01PimstatGraftAckMessagesReceivedPerVifCB(const Pim01PimstatGraftAckMessagesReceivedPerVifRF& cb)
11166           : cb(cb) { }
11167 
11168         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
11169 
11170         void respond(const uint32_t& arg_value) const {
11171             cb->dispatch(XrlCmdError::OKAY(),
11172                          &arg_value);
11173         }
11174     };
11175 
11176     struct Pim01PimstatGraftAckMessagesReceivedPerVifRsp :
11177       public Pim01PimstatGraftAckMessagesReceivedPerVifCB {
11178         struct args_str {
11179             uint32_t value;
11180         };
11181 
11182     private:
11183         args_str args;
11184 
11185     public:
11186         Pim01PimstatGraftAckMessagesReceivedPerVifRsp(const Pim01PimstatGraftAckMessagesReceivedPerVifRF& cb)
11187           : Pim01PimstatGraftAckMessagesReceivedPerVifCB(cb) { }
11188 
11189         void respond() const {
11190             Pim01PimstatGraftAckMessagesReceivedPerVifCB::
11191             respond(args.value);
11192         }
11193 
11194         args_str* operator ->() {
11195             return &args;
11196         }
11197     };
11198 
11199     virtual void async_pim_0_1_pimstat_graft_ack_messages_received_per_vif
11200        (
11201     const string&   vif_name,
11202     Pim01PimstatGraftAckMessagesReceivedPerVifCB);
11203 #endif
11204 
11205     virtual XrlCmdError pim_0_1_pimstat_graft_ack_messages_sent_per_vif(
11206     // Input values,
11207     const string&   vif_name,
11208     // Output values,
11209     uint32_t&   value) = 0;
11210 #ifdef XORP_ENABLE_ASYNC_SERVER
11211     typedef
11212     XorpCallback2<void, const XrlCmdError &,
11213     const uint32_t*>::RefPtr
11214     Pim01PimstatGraftAckMessagesSentPerVifRF;
11215 
11216     class Pim01PimstatGraftAckMessagesSentPerVifCB {
11217         Pim01PimstatGraftAckMessagesSentPerVifRF cb;
11218 
11219     public:
11220         operator const Pim01PimstatGraftAckMessagesSentPerVifRF& () const { return cb; }
11221         const Pim01PimstatGraftAckMessagesSentPerVifRF& operator ->() const { return cb; }
11222         Pim01PimstatGraftAckMessagesSentPerVifCB(const Pim01PimstatGraftAckMessagesSentPerVifRF& cb)
11223           : cb(cb) { }
11224 
11225         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
11226 
11227         void respond(const uint32_t& arg_value) const {
11228             cb->dispatch(XrlCmdError::OKAY(),
11229                          &arg_value);
11230         }
11231     };
11232 
11233     struct Pim01PimstatGraftAckMessagesSentPerVifRsp :
11234       public Pim01PimstatGraftAckMessagesSentPerVifCB {
11235         struct args_str {
11236             uint32_t value;
11237         };
11238 
11239     private:
11240         args_str args;
11241 
11242     public:
11243         Pim01PimstatGraftAckMessagesSentPerVifRsp(const Pim01PimstatGraftAckMessagesSentPerVifRF& cb)
11244           : Pim01PimstatGraftAckMessagesSentPerVifCB(cb) { }
11245 
11246         void respond() const {
11247             Pim01PimstatGraftAckMessagesSentPerVifCB::
11248             respond(args.value);
11249         }
11250 
11251         args_str* operator ->() {
11252             return &args;
11253         }
11254     };
11255 
11256     virtual void async_pim_0_1_pimstat_graft_ack_messages_sent_per_vif
11257        (
11258     const string&   vif_name,
11259     Pim01PimstatGraftAckMessagesSentPerVifCB);
11260 #endif
11261 
11262     virtual XrlCmdError pim_0_1_pimstat_graft_ack_messages_rx_errors_per_vif(
11263     // Input values,
11264     const string&   vif_name,
11265     // Output values,
11266     uint32_t&   value) = 0;
11267 #ifdef XORP_ENABLE_ASYNC_SERVER
11268     typedef
11269     XorpCallback2<void, const XrlCmdError &,
11270     const uint32_t*>::RefPtr
11271     Pim01PimstatGraftAckMessagesRxErrorsPerVifRF;
11272 
11273     class Pim01PimstatGraftAckMessagesRxErrorsPerVifCB {
11274         Pim01PimstatGraftAckMessagesRxErrorsPerVifRF cb;
11275 
11276     public:
11277         operator const Pim01PimstatGraftAckMessagesRxErrorsPerVifRF& () const { return cb; }
11278         const Pim01PimstatGraftAckMessagesRxErrorsPerVifRF& operator ->() const { return cb; }
11279         Pim01PimstatGraftAckMessagesRxErrorsPerVifCB(const Pim01PimstatGraftAckMessagesRxErrorsPerVifRF& cb)
11280           : cb(cb) { }
11281 
11282         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
11283 
11284         void respond(const uint32_t& arg_value) const {
11285             cb->dispatch(XrlCmdError::OKAY(),
11286                          &arg_value);
11287         }
11288     };
11289 
11290     struct Pim01PimstatGraftAckMessagesRxErrorsPerVifRsp :
11291       public Pim01PimstatGraftAckMessagesRxErrorsPerVifCB {
11292         struct args_str {
11293             uint32_t value;
11294         };
11295 
11296     private:
11297         args_str args;
11298 
11299     public:
11300         Pim01PimstatGraftAckMessagesRxErrorsPerVifRsp(const Pim01PimstatGraftAckMessagesRxErrorsPerVifRF& cb)
11301           : Pim01PimstatGraftAckMessagesRxErrorsPerVifCB(cb) { }
11302 
11303         void respond() const {
11304             Pim01PimstatGraftAckMessagesRxErrorsPerVifCB::
11305             respond(args.value);
11306         }
11307 
11308         args_str* operator ->() {
11309             return &args;
11310         }
11311     };
11312 
11313     virtual void async_pim_0_1_pimstat_graft_ack_messages_rx_errors_per_vif
11314        (
11315     const string&   vif_name,
11316     Pim01PimstatGraftAckMessagesRxErrorsPerVifCB);
11317 #endif
11318 
11319     virtual XrlCmdError pim_0_1_pimstat_candidate_rp_messages_received_per_vif(
11320     // Input values,
11321     const string&   vif_name,
11322     // Output values,
11323     uint32_t&   value) = 0;
11324 #ifdef XORP_ENABLE_ASYNC_SERVER
11325     typedef
11326     XorpCallback2<void, const XrlCmdError &,
11327     const uint32_t*>::RefPtr
11328     Pim01PimstatCandidateRpMessagesReceivedPerVifRF;
11329 
11330     class Pim01PimstatCandidateRpMessagesReceivedPerVifCB {
11331         Pim01PimstatCandidateRpMessagesReceivedPerVifRF cb;
11332 
11333     public:
11334         operator const Pim01PimstatCandidateRpMessagesReceivedPerVifRF& () const { return cb; }
11335         const Pim01PimstatCandidateRpMessagesReceivedPerVifRF& operator ->() const { return cb; }
11336         Pim01PimstatCandidateRpMessagesReceivedPerVifCB(const Pim01PimstatCandidateRpMessagesReceivedPerVifRF& cb)
11337           : cb(cb) { }
11338 
11339         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
11340 
11341         void respond(const uint32_t& arg_value) const {
11342             cb->dispatch(XrlCmdError::OKAY(),
11343                          &arg_value);
11344         }
11345     };
11346 
11347     struct Pim01PimstatCandidateRpMessagesReceivedPerVifRsp :
11348       public Pim01PimstatCandidateRpMessagesReceivedPerVifCB {
11349         struct args_str {
11350             uint32_t value;
11351         };
11352 
11353     private:
11354         args_str args;
11355 
11356     public:
11357         Pim01PimstatCandidateRpMessagesReceivedPerVifRsp(const Pim01PimstatCandidateRpMessagesReceivedPerVifRF& cb)
11358           : Pim01PimstatCandidateRpMessagesReceivedPerVifCB(cb) { }
11359 
11360         void respond() const {
11361             Pim01PimstatCandidateRpMessagesReceivedPerVifCB::
11362             respond(args.value);
11363         }
11364 
11365         args_str* operator ->() {
11366             return &args;
11367         }
11368     };
11369 
11370     virtual void async_pim_0_1_pimstat_candidate_rp_messages_received_per_vif
11371        (
11372     const string&   vif_name,
11373     Pim01PimstatCandidateRpMessagesReceivedPerVifCB);
11374 #endif
11375 
11376     virtual XrlCmdError pim_0_1_pimstat_candidate_rp_messages_sent_per_vif(
11377     // Input values,
11378     const string&   vif_name,
11379     // Output values,
11380     uint32_t&   value) = 0;
11381 #ifdef XORP_ENABLE_ASYNC_SERVER
11382     typedef
11383     XorpCallback2<void, const XrlCmdError &,
11384     const uint32_t*>::RefPtr
11385     Pim01PimstatCandidateRpMessagesSentPerVifRF;
11386 
11387     class Pim01PimstatCandidateRpMessagesSentPerVifCB {
11388         Pim01PimstatCandidateRpMessagesSentPerVifRF cb;
11389 
11390     public:
11391         operator const Pim01PimstatCandidateRpMessagesSentPerVifRF& () const { return cb; }
11392         const Pim01PimstatCandidateRpMessagesSentPerVifRF& operator ->() const { return cb; }
11393         Pim01PimstatCandidateRpMessagesSentPerVifCB(const Pim01PimstatCandidateRpMessagesSentPerVifRF& cb)
11394           : cb(cb) { }
11395 
11396         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
11397 
11398         void respond(const uint32_t& arg_value) const {
11399             cb->dispatch(XrlCmdError::OKAY(),
11400                          &arg_value);
11401         }
11402     };
11403 
11404     struct Pim01PimstatCandidateRpMessagesSentPerVifRsp :
11405       public Pim01PimstatCandidateRpMessagesSentPerVifCB {
11406         struct args_str {
11407             uint32_t value;
11408         };
11409 
11410     private:
11411         args_str args;
11412 
11413     public:
11414         Pim01PimstatCandidateRpMessagesSentPerVifRsp(const Pim01PimstatCandidateRpMessagesSentPerVifRF& cb)
11415           : Pim01PimstatCandidateRpMessagesSentPerVifCB(cb) { }
11416 
11417         void respond() const {
11418             Pim01PimstatCandidateRpMessagesSentPerVifCB::
11419             respond(args.value);
11420         }
11421 
11422         args_str* operator ->() {
11423             return &args;
11424         }
11425     };
11426 
11427     virtual void async_pim_0_1_pimstat_candidate_rp_messages_sent_per_vif
11428        (
11429     const string&   vif_name,
11430     Pim01PimstatCandidateRpMessagesSentPerVifCB);
11431 #endif
11432 
11433     virtual XrlCmdError pim_0_1_pimstat_candidate_rp_messages_rx_errors_per_vif(
11434     // Input values,
11435     const string&   vif_name,
11436     // Output values,
11437     uint32_t&   value) = 0;
11438 #ifdef XORP_ENABLE_ASYNC_SERVER
11439     typedef
11440     XorpCallback2<void, const XrlCmdError &,
11441     const uint32_t*>::RefPtr
11442     Pim01PimstatCandidateRpMessagesRxErrorsPerVifRF;
11443 
11444     class Pim01PimstatCandidateRpMessagesRxErrorsPerVifCB {
11445         Pim01PimstatCandidateRpMessagesRxErrorsPerVifRF cb;
11446 
11447     public:
11448         operator const Pim01PimstatCandidateRpMessagesRxErrorsPerVifRF& () const { return cb; }
11449         const Pim01PimstatCandidateRpMessagesRxErrorsPerVifRF& operator ->() const { return cb; }
11450         Pim01PimstatCandidateRpMessagesRxErrorsPerVifCB(const Pim01PimstatCandidateRpMessagesRxErrorsPerVifRF& cb)
11451           : cb(cb) { }
11452 
11453         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
11454 
11455         void respond(const uint32_t& arg_value) const {
11456             cb->dispatch(XrlCmdError::OKAY(),
11457                          &arg_value);
11458         }
11459     };
11460 
11461     struct Pim01PimstatCandidateRpMessagesRxErrorsPerVifRsp :
11462       public Pim01PimstatCandidateRpMessagesRxErrorsPerVifCB {
11463         struct args_str {
11464             uint32_t value;
11465         };
11466 
11467     private:
11468         args_str args;
11469 
11470     public:
11471         Pim01PimstatCandidateRpMessagesRxErrorsPerVifRsp(const Pim01PimstatCandidateRpMessagesRxErrorsPerVifRF& cb)
11472           : Pim01PimstatCandidateRpMessagesRxErrorsPerVifCB(cb) { }
11473 
11474         void respond() const {
11475             Pim01PimstatCandidateRpMessagesRxErrorsPerVifCB::
11476             respond(args.value);
11477         }
11478 
11479         args_str* operator ->() {
11480             return &args;
11481         }
11482     };
11483 
11484     virtual void async_pim_0_1_pimstat_candidate_rp_messages_rx_errors_per_vif
11485        (
11486     const string&   vif_name,
11487     Pim01PimstatCandidateRpMessagesRxErrorsPerVifCB);
11488 #endif
11489 
11490     virtual XrlCmdError pim_0_1_pimstat_unknown_type_messages_per_vif(
11491     // Input values,
11492     const string&   vif_name,
11493     // Output values,
11494     uint32_t&   value) = 0;
11495 #ifdef XORP_ENABLE_ASYNC_SERVER
11496     typedef
11497     XorpCallback2<void, const XrlCmdError &,
11498     const uint32_t*>::RefPtr
11499     Pim01PimstatUnknownTypeMessagesPerVifRF;
11500 
11501     class Pim01PimstatUnknownTypeMessagesPerVifCB {
11502         Pim01PimstatUnknownTypeMessagesPerVifRF cb;
11503 
11504     public:
11505         operator const Pim01PimstatUnknownTypeMessagesPerVifRF& () const { return cb; }
11506         const Pim01PimstatUnknownTypeMessagesPerVifRF& operator ->() const { return cb; }
11507         Pim01PimstatUnknownTypeMessagesPerVifCB(const Pim01PimstatUnknownTypeMessagesPerVifRF& cb)
11508           : cb(cb) { }
11509 
11510         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
11511 
11512         void respond(const uint32_t& arg_value) const {
11513             cb->dispatch(XrlCmdError::OKAY(),
11514                          &arg_value);
11515         }
11516     };
11517 
11518     struct Pim01PimstatUnknownTypeMessagesPerVifRsp :
11519       public Pim01PimstatUnknownTypeMessagesPerVifCB {
11520         struct args_str {
11521             uint32_t value;
11522         };
11523 
11524     private:
11525         args_str args;
11526 
11527     public:
11528         Pim01PimstatUnknownTypeMessagesPerVifRsp(const Pim01PimstatUnknownTypeMessagesPerVifRF& cb)
11529           : Pim01PimstatUnknownTypeMessagesPerVifCB(cb) { }
11530 
11531         void respond() const {
11532             Pim01PimstatUnknownTypeMessagesPerVifCB::
11533             respond(args.value);
11534         }
11535 
11536         args_str* operator ->() {
11537             return &args;
11538         }
11539     };
11540 
11541     virtual void async_pim_0_1_pimstat_unknown_type_messages_per_vif
11542        (
11543     const string&   vif_name,
11544     Pim01PimstatUnknownTypeMessagesPerVifCB);
11545 #endif
11546 
11547     virtual XrlCmdError pim_0_1_pimstat_unknown_version_messages_per_vif(
11548     // Input values,
11549     const string&   vif_name,
11550     // Output values,
11551     uint32_t&   value) = 0;
11552 #ifdef XORP_ENABLE_ASYNC_SERVER
11553     typedef
11554     XorpCallback2<void, const XrlCmdError &,
11555     const uint32_t*>::RefPtr
11556     Pim01PimstatUnknownVersionMessagesPerVifRF;
11557 
11558     class Pim01PimstatUnknownVersionMessagesPerVifCB {
11559         Pim01PimstatUnknownVersionMessagesPerVifRF cb;
11560 
11561     public:
11562         operator const Pim01PimstatUnknownVersionMessagesPerVifRF& () const { return cb; }
11563         const Pim01PimstatUnknownVersionMessagesPerVifRF& operator ->() const { return cb; }
11564         Pim01PimstatUnknownVersionMessagesPerVifCB(const Pim01PimstatUnknownVersionMessagesPerVifRF& cb)
11565           : cb(cb) { }
11566 
11567         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
11568 
11569         void respond(const uint32_t& arg_value) const {
11570             cb->dispatch(XrlCmdError::OKAY(),
11571                          &arg_value);
11572         }
11573     };
11574 
11575     struct Pim01PimstatUnknownVersionMessagesPerVifRsp :
11576       public Pim01PimstatUnknownVersionMessagesPerVifCB {
11577         struct args_str {
11578             uint32_t value;
11579         };
11580 
11581     private:
11582         args_str args;
11583 
11584     public:
11585         Pim01PimstatUnknownVersionMessagesPerVifRsp(const Pim01PimstatUnknownVersionMessagesPerVifRF& cb)
11586           : Pim01PimstatUnknownVersionMessagesPerVifCB(cb) { }
11587 
11588         void respond() const {
11589             Pim01PimstatUnknownVersionMessagesPerVifCB::
11590             respond(args.value);
11591         }
11592 
11593         args_str* operator ->() {
11594             return &args;
11595         }
11596     };
11597 
11598     virtual void async_pim_0_1_pimstat_unknown_version_messages_per_vif
11599        (
11600     const string&   vif_name,
11601     Pim01PimstatUnknownVersionMessagesPerVifCB);
11602 #endif
11603 
11604     virtual XrlCmdError pim_0_1_pimstat_neighbor_unknown_messages_per_vif(
11605     // Input values,
11606     const string&   vif_name,
11607     // Output values,
11608     uint32_t&   value) = 0;
11609 #ifdef XORP_ENABLE_ASYNC_SERVER
11610     typedef
11611     XorpCallback2<void, const XrlCmdError &,
11612     const uint32_t*>::RefPtr
11613     Pim01PimstatNeighborUnknownMessagesPerVifRF;
11614 
11615     class Pim01PimstatNeighborUnknownMessagesPerVifCB {
11616         Pim01PimstatNeighborUnknownMessagesPerVifRF cb;
11617 
11618     public:
11619         operator const Pim01PimstatNeighborUnknownMessagesPerVifRF& () const { return cb; }
11620         const Pim01PimstatNeighborUnknownMessagesPerVifRF& operator ->() const { return cb; }
11621         Pim01PimstatNeighborUnknownMessagesPerVifCB(const Pim01PimstatNeighborUnknownMessagesPerVifRF& cb)
11622           : cb(cb) { }
11623 
11624         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
11625 
11626         void respond(const uint32_t& arg_value) const {
11627             cb->dispatch(XrlCmdError::OKAY(),
11628                          &arg_value);
11629         }
11630     };
11631 
11632     struct Pim01PimstatNeighborUnknownMessagesPerVifRsp :
11633       public Pim01PimstatNeighborUnknownMessagesPerVifCB {
11634         struct args_str {
11635             uint32_t value;
11636         };
11637 
11638     private:
11639         args_str args;
11640 
11641     public:
11642         Pim01PimstatNeighborUnknownMessagesPerVifRsp(const Pim01PimstatNeighborUnknownMessagesPerVifRF& cb)
11643           : Pim01PimstatNeighborUnknownMessagesPerVifCB(cb) { }
11644 
11645         void respond() const {
11646             Pim01PimstatNeighborUnknownMessagesPerVifCB::
11647             respond(args.value);
11648         }
11649 
11650         args_str* operator ->() {
11651             return &args;
11652         }
11653     };
11654 
11655     virtual void async_pim_0_1_pimstat_neighbor_unknown_messages_per_vif
11656        (
11657     const string&   vif_name,
11658     Pim01PimstatNeighborUnknownMessagesPerVifCB);
11659 #endif
11660 
11661     virtual XrlCmdError pim_0_1_pimstat_bad_length_messages_per_vif(
11662     // Input values,
11663     const string&   vif_name,
11664     // Output values,
11665     uint32_t&   value) = 0;
11666 #ifdef XORP_ENABLE_ASYNC_SERVER
11667     typedef
11668     XorpCallback2<void, const XrlCmdError &,
11669     const uint32_t*>::RefPtr
11670     Pim01PimstatBadLengthMessagesPerVifRF;
11671 
11672     class Pim01PimstatBadLengthMessagesPerVifCB {
11673         Pim01PimstatBadLengthMessagesPerVifRF cb;
11674 
11675     public:
11676         operator const Pim01PimstatBadLengthMessagesPerVifRF& () const { return cb; }
11677         const Pim01PimstatBadLengthMessagesPerVifRF& operator ->() const { return cb; }
11678         Pim01PimstatBadLengthMessagesPerVifCB(const Pim01PimstatBadLengthMessagesPerVifRF& cb)
11679           : cb(cb) { }
11680 
11681         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
11682 
11683         void respond(const uint32_t& arg_value) const {
11684             cb->dispatch(XrlCmdError::OKAY(),
11685                          &arg_value);
11686         }
11687     };
11688 
11689     struct Pim01PimstatBadLengthMessagesPerVifRsp :
11690       public Pim01PimstatBadLengthMessagesPerVifCB {
11691         struct args_str {
11692             uint32_t value;
11693         };
11694 
11695     private:
11696         args_str args;
11697 
11698     public:
11699         Pim01PimstatBadLengthMessagesPerVifRsp(const Pim01PimstatBadLengthMessagesPerVifRF& cb)
11700           : Pim01PimstatBadLengthMessagesPerVifCB(cb) { }
11701 
11702         void respond() const {
11703             Pim01PimstatBadLengthMessagesPerVifCB::
11704             respond(args.value);
11705         }
11706 
11707         args_str* operator ->() {
11708             return &args;
11709         }
11710     };
11711 
11712     virtual void async_pim_0_1_pimstat_bad_length_messages_per_vif
11713        (
11714     const string&   vif_name,
11715     Pim01PimstatBadLengthMessagesPerVifCB);
11716 #endif
11717 
11718     virtual XrlCmdError pim_0_1_pimstat_bad_checksum_messages_per_vif(
11719     // Input values,
11720     const string&   vif_name,
11721     // Output values,
11722     uint32_t&   value) = 0;
11723 #ifdef XORP_ENABLE_ASYNC_SERVER
11724     typedef
11725     XorpCallback2<void, const XrlCmdError &,
11726     const uint32_t*>::RefPtr
11727     Pim01PimstatBadChecksumMessagesPerVifRF;
11728 
11729     class Pim01PimstatBadChecksumMessagesPerVifCB {
11730         Pim01PimstatBadChecksumMessagesPerVifRF cb;
11731 
11732     public:
11733         operator const Pim01PimstatBadChecksumMessagesPerVifRF& () const { return cb; }
11734         const Pim01PimstatBadChecksumMessagesPerVifRF& operator ->() const { return cb; }
11735         Pim01PimstatBadChecksumMessagesPerVifCB(const Pim01PimstatBadChecksumMessagesPerVifRF& cb)
11736           : cb(cb) { }
11737 
11738         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
11739 
11740         void respond(const uint32_t& arg_value) const {
11741             cb->dispatch(XrlCmdError::OKAY(),
11742                          &arg_value);
11743         }
11744     };
11745 
11746     struct Pim01PimstatBadChecksumMessagesPerVifRsp :
11747       public Pim01PimstatBadChecksumMessagesPerVifCB {
11748         struct args_str {
11749             uint32_t value;
11750         };
11751 
11752     private:
11753         args_str args;
11754 
11755     public:
11756         Pim01PimstatBadChecksumMessagesPerVifRsp(const Pim01PimstatBadChecksumMessagesPerVifRF& cb)
11757           : Pim01PimstatBadChecksumMessagesPerVifCB(cb) { }
11758 
11759         void respond() const {
11760             Pim01PimstatBadChecksumMessagesPerVifCB::
11761             respond(args.value);
11762         }
11763 
11764         args_str* operator ->() {
11765             return &args;
11766         }
11767     };
11768 
11769     virtual void async_pim_0_1_pimstat_bad_checksum_messages_per_vif
11770        (
11771     const string&   vif_name,
11772     Pim01PimstatBadChecksumMessagesPerVifCB);
11773 #endif
11774 
11775     virtual XrlCmdError pim_0_1_pimstat_bad_receive_interface_messages_per_vif(
11776     // Input values,
11777     const string&   vif_name,
11778     // Output values,
11779     uint32_t&   value) = 0;
11780 #ifdef XORP_ENABLE_ASYNC_SERVER
11781     typedef
11782     XorpCallback2<void, const XrlCmdError &,
11783     const uint32_t*>::RefPtr
11784     Pim01PimstatBadReceiveInterfaceMessagesPerVifRF;
11785 
11786     class Pim01PimstatBadReceiveInterfaceMessagesPerVifCB {
11787         Pim01PimstatBadReceiveInterfaceMessagesPerVifRF cb;
11788 
11789     public:
11790         operator const Pim01PimstatBadReceiveInterfaceMessagesPerVifRF& () const { return cb; }
11791         const Pim01PimstatBadReceiveInterfaceMessagesPerVifRF& operator ->() const { return cb; }
11792         Pim01PimstatBadReceiveInterfaceMessagesPerVifCB(const Pim01PimstatBadReceiveInterfaceMessagesPerVifRF& cb)
11793           : cb(cb) { }
11794 
11795         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
11796 
11797         void respond(const uint32_t& arg_value) const {
11798             cb->dispatch(XrlCmdError::OKAY(),
11799                          &arg_value);
11800         }
11801     };
11802 
11803     struct Pim01PimstatBadReceiveInterfaceMessagesPerVifRsp :
11804       public Pim01PimstatBadReceiveInterfaceMessagesPerVifCB {
11805         struct args_str {
11806             uint32_t value;
11807         };
11808 
11809     private:
11810         args_str args;
11811 
11812     public:
11813         Pim01PimstatBadReceiveInterfaceMessagesPerVifRsp(const Pim01PimstatBadReceiveInterfaceMessagesPerVifRF& cb)
11814           : Pim01PimstatBadReceiveInterfaceMessagesPerVifCB(cb) { }
11815 
11816         void respond() const {
11817             Pim01PimstatBadReceiveInterfaceMessagesPerVifCB::
11818             respond(args.value);
11819         }
11820 
11821         args_str* operator ->() {
11822             return &args;
11823         }
11824     };
11825 
11826     virtual void async_pim_0_1_pimstat_bad_receive_interface_messages_per_vif
11827        (
11828     const string&   vif_name,
11829     Pim01PimstatBadReceiveInterfaceMessagesPerVifCB);
11830 #endif
11831 
11832     virtual XrlCmdError pim_0_1_pimstat_rx_interface_disabled_messages_per_vif(
11833     // Input values,
11834     const string&   vif_name,
11835     // Output values,
11836     uint32_t&   value) = 0;
11837 #ifdef XORP_ENABLE_ASYNC_SERVER
11838     typedef
11839     XorpCallback2<void, const XrlCmdError &,
11840     const uint32_t*>::RefPtr
11841     Pim01PimstatRxInterfaceDisabledMessagesPerVifRF;
11842 
11843     class Pim01PimstatRxInterfaceDisabledMessagesPerVifCB {
11844         Pim01PimstatRxInterfaceDisabledMessagesPerVifRF cb;
11845 
11846     public:
11847         operator const Pim01PimstatRxInterfaceDisabledMessagesPerVifRF& () const { return cb; }
11848         const Pim01PimstatRxInterfaceDisabledMessagesPerVifRF& operator ->() const { return cb; }
11849         Pim01PimstatRxInterfaceDisabledMessagesPerVifCB(const Pim01PimstatRxInterfaceDisabledMessagesPerVifRF& cb)
11850           : cb(cb) { }
11851 
11852         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
11853 
11854         void respond(const uint32_t& arg_value) const {
11855             cb->dispatch(XrlCmdError::OKAY(),
11856                          &arg_value);
11857         }
11858     };
11859 
11860     struct Pim01PimstatRxInterfaceDisabledMessagesPerVifRsp :
11861       public Pim01PimstatRxInterfaceDisabledMessagesPerVifCB {
11862         struct args_str {
11863             uint32_t value;
11864         };
11865 
11866     private:
11867         args_str args;
11868 
11869     public:
11870         Pim01PimstatRxInterfaceDisabledMessagesPerVifRsp(const Pim01PimstatRxInterfaceDisabledMessagesPerVifRF& cb)
11871           : Pim01PimstatRxInterfaceDisabledMessagesPerVifCB(cb) { }
11872 
11873         void respond() const {
11874             Pim01PimstatRxInterfaceDisabledMessagesPerVifCB::
11875             respond(args.value);
11876         }
11877 
11878         args_str* operator ->() {
11879             return &args;
11880         }
11881     };
11882 
11883     virtual void async_pim_0_1_pimstat_rx_interface_disabled_messages_per_vif
11884        (
11885     const string&   vif_name,
11886     Pim01PimstatRxInterfaceDisabledMessagesPerVifCB);
11887 #endif
11888 
11889     virtual XrlCmdError pim_0_1_pimstat_rx_register_not_rp_per_vif(
11890     // Input values,
11891     const string&   vif_name,
11892     // Output values,
11893     uint32_t&   value) = 0;
11894 #ifdef XORP_ENABLE_ASYNC_SERVER
11895     typedef
11896     XorpCallback2<void, const XrlCmdError &,
11897     const uint32_t*>::RefPtr
11898     Pim01PimstatRxRegisterNotRpPerVifRF;
11899 
11900     class Pim01PimstatRxRegisterNotRpPerVifCB {
11901         Pim01PimstatRxRegisterNotRpPerVifRF cb;
11902 
11903     public:
11904         operator const Pim01PimstatRxRegisterNotRpPerVifRF& () const { return cb; }
11905         const Pim01PimstatRxRegisterNotRpPerVifRF& operator ->() const { return cb; }
11906         Pim01PimstatRxRegisterNotRpPerVifCB(const Pim01PimstatRxRegisterNotRpPerVifRF& cb)
11907           : cb(cb) { }
11908 
11909         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
11910 
11911         void respond(const uint32_t& arg_value) const {
11912             cb->dispatch(XrlCmdError::OKAY(),
11913                          &arg_value);
11914         }
11915     };
11916 
11917     struct Pim01PimstatRxRegisterNotRpPerVifRsp :
11918       public Pim01PimstatRxRegisterNotRpPerVifCB {
11919         struct args_str {
11920             uint32_t value;
11921         };
11922 
11923     private:
11924         args_str args;
11925 
11926     public:
11927         Pim01PimstatRxRegisterNotRpPerVifRsp(const Pim01PimstatRxRegisterNotRpPerVifRF& cb)
11928           : Pim01PimstatRxRegisterNotRpPerVifCB(cb) { }
11929 
11930         void respond() const {
11931             Pim01PimstatRxRegisterNotRpPerVifCB::
11932             respond(args.value);
11933         }
11934 
11935         args_str* operator ->() {
11936             return &args;
11937         }
11938     };
11939 
11940     virtual void async_pim_0_1_pimstat_rx_register_not_rp_per_vif
11941        (
11942     const string&   vif_name,
11943     Pim01PimstatRxRegisterNotRpPerVifCB);
11944 #endif
11945 
11946     virtual XrlCmdError pim_0_1_pimstat_rp_filtered_source_per_vif(
11947     // Input values,
11948     const string&   vif_name,
11949     // Output values,
11950     uint32_t&   value) = 0;
11951 #ifdef XORP_ENABLE_ASYNC_SERVER
11952     typedef
11953     XorpCallback2<void, const XrlCmdError &,
11954     const uint32_t*>::RefPtr
11955     Pim01PimstatRpFilteredSourcePerVifRF;
11956 
11957     class Pim01PimstatRpFilteredSourcePerVifCB {
11958         Pim01PimstatRpFilteredSourcePerVifRF cb;
11959 
11960     public:
11961         operator const Pim01PimstatRpFilteredSourcePerVifRF& () const { return cb; }
11962         const Pim01PimstatRpFilteredSourcePerVifRF& operator ->() const { return cb; }
11963         Pim01PimstatRpFilteredSourcePerVifCB(const Pim01PimstatRpFilteredSourcePerVifRF& cb)
11964           : cb(cb) { }
11965 
11966         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
11967 
11968         void respond(const uint32_t& arg_value) const {
11969             cb->dispatch(XrlCmdError::OKAY(),
11970                          &arg_value);
11971         }
11972     };
11973 
11974     struct Pim01PimstatRpFilteredSourcePerVifRsp :
11975       public Pim01PimstatRpFilteredSourcePerVifCB {
11976         struct args_str {
11977             uint32_t value;
11978         };
11979 
11980     private:
11981         args_str args;
11982 
11983     public:
11984         Pim01PimstatRpFilteredSourcePerVifRsp(const Pim01PimstatRpFilteredSourcePerVifRF& cb)
11985           : Pim01PimstatRpFilteredSourcePerVifCB(cb) { }
11986 
11987         void respond() const {
11988             Pim01PimstatRpFilteredSourcePerVifCB::
11989             respond(args.value);
11990         }
11991 
11992         args_str* operator ->() {
11993             return &args;
11994         }
11995     };
11996 
11997     virtual void async_pim_0_1_pimstat_rp_filtered_source_per_vif
11998        (
11999     const string&   vif_name,
12000     Pim01PimstatRpFilteredSourcePerVifCB);
12001 #endif
12002 
12003     virtual XrlCmdError pim_0_1_pimstat_unknown_register_stop_per_vif(
12004     // Input values,
12005     const string&   vif_name,
12006     // Output values,
12007     uint32_t&   value) = 0;
12008 #ifdef XORP_ENABLE_ASYNC_SERVER
12009     typedef
12010     XorpCallback2<void, const XrlCmdError &,
12011     const uint32_t*>::RefPtr
12012     Pim01PimstatUnknownRegisterStopPerVifRF;
12013 
12014     class Pim01PimstatUnknownRegisterStopPerVifCB {
12015         Pim01PimstatUnknownRegisterStopPerVifRF cb;
12016 
12017     public:
12018         operator const Pim01PimstatUnknownRegisterStopPerVifRF& () const { return cb; }
12019         const Pim01PimstatUnknownRegisterStopPerVifRF& operator ->() const { return cb; }
12020         Pim01PimstatUnknownRegisterStopPerVifCB(const Pim01PimstatUnknownRegisterStopPerVifRF& cb)
12021           : cb(cb) { }
12022 
12023         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
12024 
12025         void respond(const uint32_t& arg_value) const {
12026             cb->dispatch(XrlCmdError::OKAY(),
12027                          &arg_value);
12028         }
12029     };
12030 
12031     struct Pim01PimstatUnknownRegisterStopPerVifRsp :
12032       public Pim01PimstatUnknownRegisterStopPerVifCB {
12033         struct args_str {
12034             uint32_t value;
12035         };
12036 
12037     private:
12038         args_str args;
12039 
12040     public:
12041         Pim01PimstatUnknownRegisterStopPerVifRsp(const Pim01PimstatUnknownRegisterStopPerVifRF& cb)
12042           : Pim01PimstatUnknownRegisterStopPerVifCB(cb) { }
12043 
12044         void respond() const {
12045             Pim01PimstatUnknownRegisterStopPerVifCB::
12046             respond(args.value);
12047         }
12048 
12049         args_str* operator ->() {
12050             return &args;
12051         }
12052     };
12053 
12054     virtual void async_pim_0_1_pimstat_unknown_register_stop_per_vif
12055        (
12056     const string&   vif_name,
12057     Pim01PimstatUnknownRegisterStopPerVifCB);
12058 #endif
12059 
12060     virtual XrlCmdError pim_0_1_pimstat_rx_join_prune_no_state_per_vif(
12061     // Input values,
12062     const string&   vif_name,
12063     // Output values,
12064     uint32_t&   value) = 0;
12065 #ifdef XORP_ENABLE_ASYNC_SERVER
12066     typedef
12067     XorpCallback2<void, const XrlCmdError &,
12068     const uint32_t*>::RefPtr
12069     Pim01PimstatRxJoinPruneNoStatePerVifRF;
12070 
12071     class Pim01PimstatRxJoinPruneNoStatePerVifCB {
12072         Pim01PimstatRxJoinPruneNoStatePerVifRF cb;
12073 
12074     public:
12075         operator const Pim01PimstatRxJoinPruneNoStatePerVifRF& () const { return cb; }
12076         const Pim01PimstatRxJoinPruneNoStatePerVifRF& operator ->() const { return cb; }
12077         Pim01PimstatRxJoinPruneNoStatePerVifCB(const Pim01PimstatRxJoinPruneNoStatePerVifRF& cb)
12078           : cb(cb) { }
12079 
12080         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
12081 
12082         void respond(const uint32_t& arg_value) const {
12083             cb->dispatch(XrlCmdError::OKAY(),
12084                          &arg_value);
12085         }
12086     };
12087 
12088     struct Pim01PimstatRxJoinPruneNoStatePerVifRsp :
12089       public Pim01PimstatRxJoinPruneNoStatePerVifCB {
12090         struct args_str {
12091             uint32_t value;
12092         };
12093 
12094     private:
12095         args_str args;
12096 
12097     public:
12098         Pim01PimstatRxJoinPruneNoStatePerVifRsp(const Pim01PimstatRxJoinPruneNoStatePerVifRF& cb)
12099           : Pim01PimstatRxJoinPruneNoStatePerVifCB(cb) { }
12100 
12101         void respond() const {
12102             Pim01PimstatRxJoinPruneNoStatePerVifCB::
12103             respond(args.value);
12104         }
12105 
12106         args_str* operator ->() {
12107             return &args;
12108         }
12109     };
12110 
12111     virtual void async_pim_0_1_pimstat_rx_join_prune_no_state_per_vif
12112        (
12113     const string&   vif_name,
12114     Pim01PimstatRxJoinPruneNoStatePerVifCB);
12115 #endif
12116 
12117     virtual XrlCmdError pim_0_1_pimstat_rx_graft_graft_ack_no_state_per_vif(
12118     // Input values,
12119     const string&   vif_name,
12120     // Output values,
12121     uint32_t&   value) = 0;
12122 #ifdef XORP_ENABLE_ASYNC_SERVER
12123     typedef
12124     XorpCallback2<void, const XrlCmdError &,
12125     const uint32_t*>::RefPtr
12126     Pim01PimstatRxGraftGraftAckNoStatePerVifRF;
12127 
12128     class Pim01PimstatRxGraftGraftAckNoStatePerVifCB {
12129         Pim01PimstatRxGraftGraftAckNoStatePerVifRF cb;
12130 
12131     public:
12132         operator const Pim01PimstatRxGraftGraftAckNoStatePerVifRF& () const { return cb; }
12133         const Pim01PimstatRxGraftGraftAckNoStatePerVifRF& operator ->() const { return cb; }
12134         Pim01PimstatRxGraftGraftAckNoStatePerVifCB(const Pim01PimstatRxGraftGraftAckNoStatePerVifRF& cb)
12135           : cb(cb) { }
12136 
12137         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
12138 
12139         void respond(const uint32_t& arg_value) const {
12140             cb->dispatch(XrlCmdError::OKAY(),
12141                          &arg_value);
12142         }
12143     };
12144 
12145     struct Pim01PimstatRxGraftGraftAckNoStatePerVifRsp :
12146       public Pim01PimstatRxGraftGraftAckNoStatePerVifCB {
12147         struct args_str {
12148             uint32_t value;
12149         };
12150 
12151     private:
12152         args_str args;
12153 
12154     public:
12155         Pim01PimstatRxGraftGraftAckNoStatePerVifRsp(const Pim01PimstatRxGraftGraftAckNoStatePerVifRF& cb)
12156           : Pim01PimstatRxGraftGraftAckNoStatePerVifCB(cb) { }
12157 
12158         void respond() const {
12159             Pim01PimstatRxGraftGraftAckNoStatePerVifCB::
12160             respond(args.value);
12161         }
12162 
12163         args_str* operator ->() {
12164             return &args;
12165         }
12166     };
12167 
12168     virtual void async_pim_0_1_pimstat_rx_graft_graft_ack_no_state_per_vif
12169        (
12170     const string&   vif_name,
12171     Pim01PimstatRxGraftGraftAckNoStatePerVifCB);
12172 #endif
12173 
12174     virtual XrlCmdError pim_0_1_pimstat_rx_graft_on_upstream_interface_per_vif(
12175     // Input values,
12176     const string&   vif_name,
12177     // Output values,
12178     uint32_t&   value) = 0;
12179 #ifdef XORP_ENABLE_ASYNC_SERVER
12180     typedef
12181     XorpCallback2<void, const XrlCmdError &,
12182     const uint32_t*>::RefPtr
12183     Pim01PimstatRxGraftOnUpstreamInterfacePerVifRF;
12184 
12185     class Pim01PimstatRxGraftOnUpstreamInterfacePerVifCB {
12186         Pim01PimstatRxGraftOnUpstreamInterfacePerVifRF cb;
12187 
12188     public:
12189         operator const Pim01PimstatRxGraftOnUpstreamInterfacePerVifRF& () const { return cb; }
12190         const Pim01PimstatRxGraftOnUpstreamInterfacePerVifRF& operator ->() const { return cb; }
12191         Pim01PimstatRxGraftOnUpstreamInterfacePerVifCB(const Pim01PimstatRxGraftOnUpstreamInterfacePerVifRF& cb)
12192           : cb(cb) { }
12193 
12194         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
12195 
12196         void respond(const uint32_t& arg_value) const {
12197             cb->dispatch(XrlCmdError::OKAY(),
12198                          &arg_value);
12199         }
12200     };
12201 
12202     struct Pim01PimstatRxGraftOnUpstreamInterfacePerVifRsp :
12203       public Pim01PimstatRxGraftOnUpstreamInterfacePerVifCB {
12204         struct args_str {
12205             uint32_t value;
12206         };
12207 
12208     private:
12209         args_str args;
12210 
12211     public:
12212         Pim01PimstatRxGraftOnUpstreamInterfacePerVifRsp(const Pim01PimstatRxGraftOnUpstreamInterfacePerVifRF& cb)
12213           : Pim01PimstatRxGraftOnUpstreamInterfacePerVifCB(cb) { }
12214 
12215         void respond() const {
12216             Pim01PimstatRxGraftOnUpstreamInterfacePerVifCB::
12217             respond(args.value);
12218         }
12219 
12220         args_str* operator ->() {
12221             return &args;
12222         }
12223     };
12224 
12225     virtual void async_pim_0_1_pimstat_rx_graft_on_upstream_interface_per_vif
12226        (
12227     const string&   vif_name,
12228     Pim01PimstatRxGraftOnUpstreamInterfacePerVifCB);
12229 #endif
12230 
12231     virtual XrlCmdError pim_0_1_pimstat_rx_candidate_rp_not_bsr_per_vif(
12232     // Input values,
12233     const string&   vif_name,
12234     // Output values,
12235     uint32_t&   value) = 0;
12236 #ifdef XORP_ENABLE_ASYNC_SERVER
12237     typedef
12238     XorpCallback2<void, const XrlCmdError &,
12239     const uint32_t*>::RefPtr
12240     Pim01PimstatRxCandidateRpNotBsrPerVifRF;
12241 
12242     class Pim01PimstatRxCandidateRpNotBsrPerVifCB {
12243         Pim01PimstatRxCandidateRpNotBsrPerVifRF cb;
12244 
12245     public:
12246         operator const Pim01PimstatRxCandidateRpNotBsrPerVifRF& () const { return cb; }
12247         const Pim01PimstatRxCandidateRpNotBsrPerVifRF& operator ->() const { return cb; }
12248         Pim01PimstatRxCandidateRpNotBsrPerVifCB(const Pim01PimstatRxCandidateRpNotBsrPerVifRF& cb)
12249           : cb(cb) { }
12250 
12251         void fail(const XrlCmdError &e) const { cb->dispatch(e, NULL); }
12252 
12253         void respond(const