|
xorp
|
00001 /* 00002 * obj/i686-pc-linux-gnu/xrl/targets/fib2mrib_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_FIB2MRIB_BASE_HH__ 00016 #define __XRL_TARGETS_FIB2MRIB_BASE_HH__ 00017 00018 #undef XORP_LIBRARY_NAME 00019 #define XORP_LIBRARY_NAME "XrlFib2mribTarget" 00020 00021 #include "libxorp/xlog.h" 00022 #include "libxipc/xrl_cmd_map.hh" 00023 00024 class XrlFib2mribTargetBase { 00025 protected: 00026 XrlCmdMap* _cmds; 00027 00028 public: 00036 XrlFib2mribTargetBase(XrlCmdMap* cmds = 0); 00037 00043 virtual ~XrlFib2mribTargetBase(); 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 "fib2mrib/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 00339 virtual XrlCmdError finder_event_observer_0_1_xrl_target_birth( 00340 // Input values, 00341 const string& target_class, 00342 const string& target_instance) = 0; 00343 #ifdef XORP_ENABLE_ASYNC_SERVER 00344 typedef 00345 XorpCallback1<void, const XrlCmdError &>::RefPtr 00346 FinderEventObserver01XrlTargetBirthRF; 00347 00348 class FinderEventObserver01XrlTargetBirthCB { 00349 FinderEventObserver01XrlTargetBirthRF cb; 00350 00351 public: 00352 operator const FinderEventObserver01XrlTargetBirthRF& () const { return cb; } 00353 const FinderEventObserver01XrlTargetBirthRF& operator ->() const { return cb; } 00354 FinderEventObserver01XrlTargetBirthCB(const FinderEventObserver01XrlTargetBirthRF& cb) 00355 : cb(cb) { } 00356 00357 void fail(const XrlCmdError &e) const { cb->dispatch(e); } 00358 00359 void respond() const { 00360 cb->dispatch(XrlCmdError::OKAY()); 00361 } 00362 }; 00363 00364 struct FinderEventObserver01XrlTargetBirthRsp : 00365 public FinderEventObserver01XrlTargetBirthCB { 00366 FinderEventObserver01XrlTargetBirthRsp(const FinderEventObserver01XrlTargetBirthRF& cb) 00367 : FinderEventObserver01XrlTargetBirthCB(cb) { } 00368 00369 }; 00370 00371 virtual void async_finder_event_observer_0_1_xrl_target_birth 00372 ( 00373 const string& target_class, 00374 const string& target_instance, 00375 FinderEventObserver01XrlTargetBirthCB); 00376 #endif 00377 00387 virtual XrlCmdError finder_event_observer_0_1_xrl_target_death( 00388 // Input values, 00389 const string& target_class, 00390 const string& target_instance) = 0; 00391 #ifdef XORP_ENABLE_ASYNC_SERVER 00392 typedef 00393 XorpCallback1<void, const XrlCmdError &>::RefPtr 00394 FinderEventObserver01XrlTargetDeathRF; 00395 00396 class FinderEventObserver01XrlTargetDeathCB { 00397 FinderEventObserver01XrlTargetDeathRF cb; 00398 00399 public: 00400 operator const FinderEventObserver01XrlTargetDeathRF& () const { return cb; } 00401 const FinderEventObserver01XrlTargetDeathRF& operator ->() const { return cb; } 00402 FinderEventObserver01XrlTargetDeathCB(const FinderEventObserver01XrlTargetDeathRF& cb) 00403 : cb(cb) { } 00404 00405 void fail(const XrlCmdError &e) const { cb->dispatch(e); } 00406 00407 void respond() const { 00408 cb->dispatch(XrlCmdError::OKAY()); 00409 } 00410 }; 00411 00412 struct FinderEventObserver01XrlTargetDeathRsp : 00413 public FinderEventObserver01XrlTargetDeathCB { 00414 FinderEventObserver01XrlTargetDeathRsp(const FinderEventObserver01XrlTargetDeathRF& cb) 00415 : FinderEventObserver01XrlTargetDeathCB(cb) { } 00416 00417 }; 00418 00419 virtual void async_finder_event_observer_0_1_xrl_target_death 00420 ( 00421 const string& target_class, 00422 const string& target_instance, 00423 FinderEventObserver01XrlTargetDeathCB); 00424 #endif 00425 00452 virtual XrlCmdError fea_fib_client_0_1_add_route4( 00453 // Input values, 00454 const IPv4Net& network, 00455 const IPv4& nexthop, 00456 const string& ifname, 00457 const string& vifname, 00458 const uint32_t& metric, 00459 const uint32_t& admin_distance, 00460 const string& protocol_origin, 00461 const bool& xorp_route) = 0; 00462 #ifdef XORP_ENABLE_ASYNC_SERVER 00463 typedef 00464 XorpCallback1<void, const XrlCmdError &>::RefPtr 00465 FeaFibClient01AddRoute4RF; 00466 00467 class FeaFibClient01AddRoute4CB { 00468 FeaFibClient01AddRoute4RF cb; 00469 00470 public: 00471 operator const FeaFibClient01AddRoute4RF& () const { return cb; } 00472 const FeaFibClient01AddRoute4RF& operator ->() const { return cb; } 00473 FeaFibClient01AddRoute4CB(const FeaFibClient01AddRoute4RF& cb) 00474 : cb(cb) { } 00475 00476 void fail(const XrlCmdError &e) const { cb->dispatch(e); } 00477 00478 void respond() const { 00479 cb->dispatch(XrlCmdError::OKAY()); 00480 } 00481 }; 00482 00483 struct FeaFibClient01AddRoute4Rsp : 00484 public FeaFibClient01AddRoute4CB { 00485 FeaFibClient01AddRoute4Rsp(const FeaFibClient01AddRoute4RF& cb) 00486 : FeaFibClient01AddRoute4CB(cb) { } 00487 00488 }; 00489 00490 virtual void async_fea_fib_client_0_1_add_route4 00491 ( 00492 const IPv4Net& network, 00493 const IPv4& nexthop, 00494 const string& ifname, 00495 const string& vifname, 00496 const uint32_t& metric, 00497 const uint32_t& admin_distance, 00498 const string& protocol_origin, 00499 const bool& xorp_route, 00500 FeaFibClient01AddRoute4CB); 00501 #endif 00502 00529 virtual XrlCmdError fea_fib_client_0_1_replace_route4( 00530 // Input values, 00531 const IPv4Net& network, 00532 const IPv4& nexthop, 00533 const string& ifname, 00534 const string& vifname, 00535 const uint32_t& metric, 00536 const uint32_t& admin_distance, 00537 const string& protocol_origin, 00538 const bool& xorp_route) = 0; 00539 #ifdef XORP_ENABLE_ASYNC_SERVER 00540 typedef 00541 XorpCallback1<void, const XrlCmdError &>::RefPtr 00542 FeaFibClient01ReplaceRoute4RF; 00543 00544 class FeaFibClient01ReplaceRoute4CB { 00545 FeaFibClient01ReplaceRoute4RF cb; 00546 00547 public: 00548 operator const FeaFibClient01ReplaceRoute4RF& () const { return cb; } 00549 const FeaFibClient01ReplaceRoute4RF& operator ->() const { return cb; } 00550 FeaFibClient01ReplaceRoute4CB(const FeaFibClient01ReplaceRoute4RF& cb) 00551 : cb(cb) { } 00552 00553 void fail(const XrlCmdError &e) const { cb->dispatch(e); } 00554 00555 void respond() const { 00556 cb->dispatch(XrlCmdError::OKAY()); 00557 } 00558 }; 00559 00560 struct FeaFibClient01ReplaceRoute4Rsp : 00561 public FeaFibClient01ReplaceRoute4CB { 00562 FeaFibClient01ReplaceRoute4Rsp(const FeaFibClient01ReplaceRoute4RF& cb) 00563 : FeaFibClient01ReplaceRoute4CB(cb) { } 00564 00565 }; 00566 00567 virtual void async_fea_fib_client_0_1_replace_route4 00568 ( 00569 const IPv4Net& network, 00570 const IPv4& nexthop, 00571 const string& ifname, 00572 const string& vifname, 00573 const uint32_t& metric, 00574 const uint32_t& admin_distance, 00575 const string& protocol_origin, 00576 const bool& xorp_route, 00577 FeaFibClient01ReplaceRoute4CB); 00578 #endif 00579 00593 virtual XrlCmdError fea_fib_client_0_1_delete_route4( 00594 // Input values, 00595 const IPv4Net& network, 00596 const string& ifname, 00597 const string& vifname) = 0; 00598 #ifdef XORP_ENABLE_ASYNC_SERVER 00599 typedef 00600 XorpCallback1<void, const XrlCmdError &>::RefPtr 00601 FeaFibClient01DeleteRoute4RF; 00602 00603 class FeaFibClient01DeleteRoute4CB { 00604 FeaFibClient01DeleteRoute4RF cb; 00605 00606 public: 00607 operator const FeaFibClient01DeleteRoute4RF& () const { return cb; } 00608 const FeaFibClient01DeleteRoute4RF& operator ->() const { return cb; } 00609 FeaFibClient01DeleteRoute4CB(const FeaFibClient01DeleteRoute4RF& cb) 00610 : cb(cb) { } 00611 00612 void fail(const XrlCmdError &e) const { cb->dispatch(e); } 00613 00614 void respond() const { 00615 cb->dispatch(XrlCmdError::OKAY()); 00616 } 00617 }; 00618 00619 struct FeaFibClient01DeleteRoute4Rsp : 00620 public FeaFibClient01DeleteRoute4CB { 00621 FeaFibClient01DeleteRoute4Rsp(const FeaFibClient01DeleteRoute4RF& cb) 00622 : FeaFibClient01DeleteRoute4CB(cb) { } 00623 00624 }; 00625 00626 virtual void async_fea_fib_client_0_1_delete_route4 00627 ( 00628 const IPv4Net& network, 00629 const string& ifname, 00630 const string& vifname, 00631 FeaFibClient01DeleteRoute4CB); 00632 #endif 00633 00644 virtual XrlCmdError fea_fib_client_0_1_resolve_route4( 00645 // Input values, 00646 const IPv4Net& network) = 0; 00647 #ifdef XORP_ENABLE_ASYNC_SERVER 00648 typedef 00649 XorpCallback1<void, const XrlCmdError &>::RefPtr 00650 FeaFibClient01ResolveRoute4RF; 00651 00652 class FeaFibClient01ResolveRoute4CB { 00653 FeaFibClient01ResolveRoute4RF cb; 00654 00655 public: 00656 operator const FeaFibClient01ResolveRoute4RF& () const { return cb; } 00657 const FeaFibClient01ResolveRoute4RF& operator ->() const { return cb; } 00658 FeaFibClient01ResolveRoute4CB(const FeaFibClient01ResolveRoute4RF& cb) 00659 : cb(cb) { } 00660 00661 void fail(const XrlCmdError &e) const { cb->dispatch(e); } 00662 00663 void respond() const { 00664 cb->dispatch(XrlCmdError::OKAY()); 00665 } 00666 }; 00667 00668 struct FeaFibClient01ResolveRoute4Rsp : 00669 public FeaFibClient01ResolveRoute4CB { 00670 FeaFibClient01ResolveRoute4Rsp(const FeaFibClient01ResolveRoute4RF& cb) 00671 : FeaFibClient01ResolveRoute4CB(cb) { } 00672 00673 }; 00674 00675 virtual void async_fea_fib_client_0_1_resolve_route4 00676 ( 00677 const IPv4Net& network, 00678 FeaFibClient01ResolveRoute4CB); 00679 #endif 00680 00681 virtual XrlCmdError fea_fib_client_0_1_add_route6( 00682 // Input values, 00683 const IPv6Net& network, 00684 const IPv6& nexthop, 00685 const string& ifname, 00686 const string& vifname, 00687 const uint32_t& metric, 00688 const uint32_t& admin_distance, 00689 const string& protocol_origin, 00690 const bool& xorp_route) = 0; 00691 #ifdef XORP_ENABLE_ASYNC_SERVER 00692 typedef 00693 XorpCallback1<void, const XrlCmdError &>::RefPtr 00694 FeaFibClient01AddRoute6RF; 00695 00696 class FeaFibClient01AddRoute6CB { 00697 FeaFibClient01AddRoute6RF cb; 00698 00699 public: 00700 operator const FeaFibClient01AddRoute6RF& () const { return cb; } 00701 const FeaFibClient01AddRoute6RF& operator ->() const { return cb; } 00702 FeaFibClient01AddRoute6CB(const FeaFibClient01AddRoute6RF& cb) 00703 : cb(cb) { } 00704 00705 void fail(const XrlCmdError &e) const { cb->dispatch(e); } 00706 00707 void respond() const { 00708 cb->dispatch(XrlCmdError::OKAY()); 00709 } 00710 }; 00711 00712 struct FeaFibClient01AddRoute6Rsp : 00713 public FeaFibClient01AddRoute6CB { 00714 FeaFibClient01AddRoute6Rsp(const FeaFibClient01AddRoute6RF& cb) 00715 : FeaFibClient01AddRoute6CB(cb) { } 00716 00717 }; 00718 00719 virtual void async_fea_fib_client_0_1_add_route6 00720 ( 00721 const IPv6Net& network, 00722 const IPv6& nexthop, 00723 const string& ifname, 00724 const string& vifname, 00725 const uint32_t& metric, 00726 const uint32_t& admin_distance, 00727 const string& protocol_origin, 00728 const bool& xorp_route, 00729 FeaFibClient01AddRoute6CB); 00730 #endif 00731 00732 virtual XrlCmdError fea_fib_client_0_1_resolve_route6( 00733 // Input values, 00734 const IPv6Net& network) = 0; 00735 #ifdef XORP_ENABLE_ASYNC_SERVER 00736 typedef 00737 XorpCallback1<void, const XrlCmdError &>::RefPtr 00738 FeaFibClient01ResolveRoute6RF; 00739 00740 class FeaFibClient01ResolveRoute6CB { 00741 FeaFibClient01ResolveRoute6RF cb; 00742 00743 public: 00744 operator const FeaFibClient01ResolveRoute6RF& () const { return cb; } 00745 const FeaFibClient01ResolveRoute6RF& operator ->() const { return cb; } 00746 FeaFibClient01ResolveRoute6CB(const FeaFibClient01ResolveRoute6RF& cb) 00747 : cb(cb) { } 00748 00749 void fail(const XrlCmdError &e) const { cb->dispatch(e); } 00750 00751 void respond() const { 00752 cb->dispatch(XrlCmdError::OKAY()); 00753 } 00754 }; 00755 00756 struct FeaFibClient01ResolveRoute6Rsp : 00757 public FeaFibClient01ResolveRoute6CB { 00758 FeaFibClient01ResolveRoute6Rsp(const FeaFibClient01ResolveRoute6RF& cb) 00759 : FeaFibClient01ResolveRoute6CB(cb) { } 00760 00761 }; 00762 00763 virtual void async_fea_fib_client_0_1_resolve_route6 00764 ( 00765 const IPv6Net& network, 00766 FeaFibClient01ResolveRoute6CB); 00767 #endif 00768 00769 virtual XrlCmdError fea_fib_client_0_1_replace_route6( 00770 // Input values, 00771 const IPv6Net& network, 00772 const IPv6& nexthop, 00773 const string& ifname, 00774 const string& vifname, 00775 const uint32_t& metric, 00776 const uint32_t& admin_distance, 00777 const string& protocol_origin, 00778 const bool& xorp_route) = 0; 00779 #ifdef XORP_ENABLE_ASYNC_SERVER 00780 typedef 00781 XorpCallback1<void, const XrlCmdError &>::RefPtr 00782 FeaFibClient01ReplaceRoute6RF; 00783 00784 class FeaFibClient01ReplaceRoute6CB { 00785 FeaFibClient01ReplaceRoute6RF cb; 00786 00787 public: 00788 operator const FeaFibClient01ReplaceRoute6RF& () const { return cb; } 00789 const FeaFibClient01ReplaceRoute6RF& operator ->() const { return cb; } 00790 FeaFibClient01ReplaceRoute6CB(const FeaFibClient01ReplaceRoute6RF& cb) 00791 : cb(cb) { } 00792 00793 void fail(const XrlCmdError &e) const { cb->dispatch(e); } 00794 00795 void respond() const { 00796 cb->dispatch(XrlCmdError::OKAY()); 00797 } 00798 }; 00799 00800 struct FeaFibClient01ReplaceRoute6Rsp : 00801 public FeaFibClient01ReplaceRoute6CB { 00802 FeaFibClient01ReplaceRoute6Rsp(const FeaFibClient01ReplaceRoute6RF& cb) 00803 : FeaFibClient01ReplaceRoute6CB(cb) { } 00804 00805 }; 00806 00807 virtual void async_fea_fib_client_0_1_replace_route6 00808 ( 00809 const IPv6Net& network, 00810 const IPv6& nexthop, 00811 const string& ifname, 00812 const string& vifname, 00813 const uint32_t& metric, 00814 const uint32_t& admin_distance, 00815 const string& protocol_origin, 00816 const bool& xorp_route, 00817 FeaFibClient01ReplaceRoute6CB); 00818 #endif 00819 00820 virtual XrlCmdError fea_fib_client_0_1_delete_route6( 00821 // Input values, 00822 const IPv6Net& network, 00823 const string& ifname, 00824 const string& vifname) = 0; 00825 #ifdef XORP_ENABLE_ASYNC_SERVER 00826 typedef 00827 XorpCallback1<void, const XrlCmdError &>::RefPtr 00828 FeaFibClient01DeleteRoute6RF; 00829 00830 class FeaFibClient01DeleteRoute6CB { 00831 FeaFibClient01DeleteRoute6RF cb; 00832 00833 public: 00834 operator const FeaFibClient01DeleteRoute6RF& () const { return cb; } 00835 const FeaFibClient01DeleteRoute6RF& operator ->() const { return cb; } 00836 FeaFibClient01DeleteRoute6CB(const FeaFibClient01DeleteRoute6RF& cb) 00837 : cb(cb) { } 00838 00839 void fail(const XrlCmdError &e) const { cb->dispatch(e); } 00840 00841 void respond() const { 00842 cb->dispatch(XrlCmdError::OKAY()); 00843 } 00844 }; 00845 00846 struct FeaFibClient01DeleteRoute6Rsp : 00847 public FeaFibClient01DeleteRoute6CB { 00848 FeaFibClient01DeleteRoute6Rsp(const FeaFibClient01DeleteRoute6RF& cb) 00849 : FeaFibClient01DeleteRoute6CB(cb) { } 00850 00851 }; 00852 00853 virtual void async_fea_fib_client_0_1_delete_route6 00854 ( 00855 const IPv6Net& network, 00856 const string& ifname, 00857 const string& vifname, 00858 FeaFibClient01DeleteRoute6CB); 00859 #endif 00860 00870 virtual XrlCmdError policy_backend_0_1_configure( 00871 // Input values, 00872 const uint32_t& filter, 00873 const string& conf) = 0; 00874 #ifdef XORP_ENABLE_ASYNC_SERVER 00875 typedef 00876 XorpCallback1<void, const XrlCmdError &>::RefPtr 00877 PolicyBackend01ConfigureRF; 00878 00879 class PolicyBackend01ConfigureCB { 00880 PolicyBackend01ConfigureRF cb; 00881 00882 public: 00883 operator const PolicyBackend01ConfigureRF& () const { return cb; } 00884 const PolicyBackend01ConfigureRF& operator ->() const { return cb; } 00885 PolicyBackend01ConfigureCB(const PolicyBackend01ConfigureRF& cb) 00886 : cb(cb) { } 00887 00888 void fail(const XrlCmdError &e) const { cb->dispatch(e); } 00889 00890 void respond() const { 00891 cb->dispatch(XrlCmdError::OKAY()); 00892 } 00893 }; 00894 00895 struct PolicyBackend01ConfigureRsp : 00896 public PolicyBackend01ConfigureCB { 00897 PolicyBackend01ConfigureRsp(const PolicyBackend01ConfigureRF& cb) 00898 : PolicyBackend01ConfigureCB(cb) { } 00899 00900 }; 00901 00902 virtual void async_policy_backend_0_1_configure 00903 ( 00904 const uint32_t& filter, 00905 const string& conf, 00906 PolicyBackend01ConfigureCB); 00907 #endif 00908 00916 virtual XrlCmdError policy_backend_0_1_reset( 00917 // Input values, 00918 const uint32_t& filter) = 0; 00919 #ifdef XORP_ENABLE_ASYNC_SERVER 00920 typedef 00921 XorpCallback1<void, const XrlCmdError &>::RefPtr 00922 PolicyBackend01ResetRF; 00923 00924 class PolicyBackend01ResetCB { 00925 PolicyBackend01ResetRF cb; 00926 00927 public: 00928 operator const PolicyBackend01ResetRF& () const { return cb; } 00929 const PolicyBackend01ResetRF& operator ->() const { return cb; } 00930 PolicyBackend01ResetCB(const PolicyBackend01ResetRF& cb) 00931 : cb(cb) { } 00932 00933 void fail(const XrlCmdError &e) const { cb->dispatch(e); } 00934 00935 void respond() const { 00936 cb->dispatch(XrlCmdError::OKAY()); 00937 } 00938 }; 00939 00940 struct PolicyBackend01ResetRsp : 00941 public PolicyBackend01ResetCB { 00942 PolicyBackend01ResetRsp(const PolicyBackend01ResetRF& cb) 00943 : PolicyBackend01ResetCB(cb) { } 00944 00945 }; 00946 00947 virtual void async_policy_backend_0_1_reset 00948 ( 00949 const uint32_t& filter, 00950 PolicyBackend01ResetCB); 00951 #endif 00952 00958 virtual XrlCmdError policy_backend_0_1_push_routes() = 0; 00959 #ifdef XORP_ENABLE_ASYNC_SERVER 00960 typedef 00961 XorpCallback1<void, const XrlCmdError &>::RefPtr 00962 PolicyBackend01PushRoutesRF; 00963 00964 class PolicyBackend01PushRoutesCB { 00965 PolicyBackend01PushRoutesRF cb; 00966 00967 public: 00968 operator const PolicyBackend01PushRoutesRF& () const { return cb; } 00969 const PolicyBackend01PushRoutesRF& operator ->() const { return cb; } 00970 PolicyBackend01PushRoutesCB(const PolicyBackend01PushRoutesRF& cb) 00971 : cb(cb) { } 00972 00973 void fail(const XrlCmdError &e) const { cb->dispatch(e); } 00974 00975 void respond() const { 00976 cb->dispatch(XrlCmdError::OKAY()); 00977 } 00978 }; 00979 00980 struct PolicyBackend01PushRoutesRsp : 00981 public PolicyBackend01PushRoutesCB { 00982 PolicyBackend01PushRoutesRsp(const PolicyBackend01PushRoutesRF& cb) 00983 : PolicyBackend01PushRoutesCB(cb) { } 00984 00985 }; 00986 00987 virtual void async_policy_backend_0_1_push_routes 00988 ( 00989 PolicyBackend01PushRoutesCB); 00990 #endif 00991 00999 virtual XrlCmdError fib2mrib_0_1_enable_fib2mrib( 01000 // Input values, 01001 const bool& enable) = 0; 01002 #ifdef XORP_ENABLE_ASYNC_SERVER 01003 typedef 01004 XorpCallback1<void, const XrlCmdError &>::RefPtr 01005 Fib2Mrib01EnableFib2MribRF; 01006 01007 class Fib2Mrib01EnableFib2MribCB { 01008 Fib2Mrib01EnableFib2MribRF cb; 01009 01010 public: 01011 operator const Fib2Mrib01EnableFib2MribRF& () const { return cb; } 01012 const Fib2Mrib01EnableFib2MribRF& operator ->() const { return cb; } 01013 Fib2Mrib01EnableFib2MribCB(const Fib2Mrib01EnableFib2MribRF& cb) 01014 : cb(cb) { } 01015 01016 void fail(const XrlCmdError &e) const { cb->dispatch(e); } 01017 01018 void respond() const { 01019 cb->dispatch(XrlCmdError::OKAY()); 01020 } 01021 }; 01022 01023 struct Fib2Mrib01EnableFib2MribRsp : 01024 public Fib2Mrib01EnableFib2MribCB { 01025 Fib2Mrib01EnableFib2MribRsp(const Fib2Mrib01EnableFib2MribRF& cb) 01026 : Fib2Mrib01EnableFib2MribCB(cb) { } 01027 01028 }; 01029 01030 virtual void async_fib2mrib_0_1_enable_fib2mrib 01031 ( 01032 const bool& enable, 01033 Fib2Mrib01EnableFib2MribCB); 01034 #endif 01035 01036 virtual XrlCmdError fib2mrib_0_1_start_fib2mrib() = 0; 01037 #ifdef XORP_ENABLE_ASYNC_SERVER 01038 typedef 01039 XorpCallback1<void, const XrlCmdError &>::RefPtr 01040 Fib2Mrib01StartFib2MribRF; 01041 01042 class Fib2Mrib01StartFib2MribCB { 01043 Fib2Mrib01StartFib2MribRF cb; 01044 01045 public: 01046 operator const Fib2Mrib01StartFib2MribRF& () const { return cb; } 01047 const Fib2Mrib01StartFib2MribRF& operator ->() const { return cb; } 01048 Fib2Mrib01StartFib2MribCB(const Fib2Mrib01StartFib2MribRF& cb) 01049 : cb(cb) { } 01050 01051 void fail(const XrlCmdError &e) const { cb->dispatch(e); } 01052 01053 void respond() const { 01054 cb->dispatch(XrlCmdError::OKAY()); 01055 } 01056 }; 01057 01058 struct Fib2Mrib01StartFib2MribRsp : 01059 public Fib2Mrib01StartFib2MribCB { 01060 Fib2Mrib01StartFib2MribRsp(const Fib2Mrib01StartFib2MribRF& cb) 01061 : Fib2Mrib01StartFib2MribCB(cb) { } 01062 01063 }; 01064 01065 virtual void async_fib2mrib_0_1_start_fib2mrib 01066 ( 01067 Fib2Mrib01StartFib2MribCB); 01068 #endif 01069 01070 virtual XrlCmdError fib2mrib_0_1_stop_fib2mrib() = 0; 01071 #ifdef XORP_ENABLE_ASYNC_SERVER 01072 typedef 01073 XorpCallback1<void, const XrlCmdError &>::RefPtr 01074 Fib2Mrib01StopFib2MribRF; 01075 01076 class Fib2Mrib01StopFib2MribCB { 01077 Fib2Mrib01StopFib2MribRF cb; 01078 01079 public: 01080 operator const Fib2Mrib01StopFib2MribRF& () const { return cb; } 01081 const Fib2Mrib01StopFib2MribRF& operator ->() const { return cb; } 01082 Fib2Mrib01StopFib2MribCB(const Fib2Mrib01StopFib2MribRF& cb) 01083 : cb(cb) { } 01084 01085 void fail(const XrlCmdError &e) const { cb->dispatch(e); } 01086 01087 void respond() const { 01088 cb->dispatch(XrlCmdError::OKAY()); 01089 } 01090 }; 01091 01092 struct Fib2Mrib01StopFib2MribRsp : 01093 public Fib2Mrib01StopFib2MribCB { 01094 Fib2Mrib01StopFib2MribRsp(const Fib2Mrib01StopFib2MribRF& cb) 01095 : Fib2Mrib01StopFib2MribCB(cb) { } 01096 01097 }; 01098 01099 virtual void async_fib2mrib_0_1_stop_fib2mrib 01100 ( 01101 Fib2Mrib01StopFib2MribCB); 01102 #endif 01103 01111 virtual XrlCmdError fib2mrib_0_1_enable_log_trace_all( 01112 // Input values, 01113 const bool& enable) = 0; 01114 #ifdef XORP_ENABLE_ASYNC_SERVER 01115 typedef 01116 XorpCallback1<void, const XrlCmdError &>::RefPtr 01117 Fib2Mrib01EnableLogTraceAllRF; 01118 01119 class Fib2Mrib01EnableLogTraceAllCB { 01120 Fib2Mrib01EnableLogTraceAllRF cb; 01121 01122 public: 01123 operator const Fib2Mrib01EnableLogTraceAllRF& () const { return cb; } 01124 const Fib2Mrib01EnableLogTraceAllRF& operator ->() const { return cb; } 01125 Fib2Mrib01EnableLogTraceAllCB(const Fib2Mrib01EnableLogTraceAllRF& cb) 01126 : cb(cb) { } 01127 01128 void fail(const XrlCmdError &e) const { cb->dispatch(e); } 01129 01130 void respond() const { 01131 cb->dispatch(XrlCmdError::OKAY()); 01132 } 01133 }; 01134 01135 struct Fib2Mrib01EnableLogTraceAllRsp : 01136 public Fib2Mrib01EnableLogTraceAllCB { 01137 Fib2Mrib01EnableLogTraceAllRsp(const Fib2Mrib01EnableLogTraceAllRF& cb) 01138 : Fib2Mrib01EnableLogTraceAllCB(cb) { } 01139 01140 }; 01141 01142 virtual void async_fib2mrib_0_1_enable_log_trace_all 01143 ( 01144 const bool& enable, 01145 Fib2Mrib01EnableLogTraceAllCB); 01146 #endif 01147 01148 private: 01149 XrlCmdRT handle_common_0_1_get_target_name(const XrlArgs& in, XrlCmdOT out); 01150 #ifdef XORP_ENABLE_ASYNC_SERVER 01151 void callback_common_0_1_get_target_name 01152 (const XrlCmdError &e, 01153 const string* arg_name, 01154 XrlRespCallback); 01155 #endif 01156 01157 XrlCmdRT handle_common_0_1_get_version(const XrlArgs& in, XrlCmdOT out); 01158 #ifdef XORP_ENABLE_ASYNC_SERVER 01159 void callback_common_0_1_get_version 01160 (const XrlCmdError &e, 01161 const string* arg_version, 01162 XrlRespCallback); 01163 #endif 01164 01165 XrlCmdRT handle_common_0_1_get_status(const XrlArgs& in, XrlCmdOT out); 01166 #ifdef XORP_ENABLE_ASYNC_SERVER 01167 void callback_common_0_1_get_status 01168 (const XrlCmdError &e, 01169 const uint32_t* arg_status, 01170 const string* arg_reason, 01171 XrlRespCallback); 01172 #endif 01173 01174 XrlCmdRT handle_common_0_1_shutdown(const XrlArgs& in, XrlCmdOT out); 01175 #ifdef XORP_ENABLE_ASYNC_SERVER 01176 void callback_common_0_1_shutdown 01177 (const XrlCmdError &e, 01178 XrlRespCallback); 01179 #endif 01180 01181 XrlCmdRT handle_common_0_1_startup(const XrlArgs& in, XrlCmdOT out); 01182 #ifdef XORP_ENABLE_ASYNC_SERVER 01183 void callback_common_0_1_startup 01184 (const XrlCmdError &e, 01185 XrlRespCallback); 01186 #endif 01187 01188 XrlCmdRT handle_finder_event_observer_0_1_xrl_target_birth(const XrlArgs& in, XrlCmdOT out); 01189 #ifdef XORP_ENABLE_ASYNC_SERVER 01190 void callback_finder_event_observer_0_1_xrl_target_birth 01191 (const XrlCmdError &e, 01192 XrlRespCallback); 01193 #endif 01194 01195 XrlCmdRT handle_finder_event_observer_0_1_xrl_target_death(const XrlArgs& in, XrlCmdOT out); 01196 #ifdef XORP_ENABLE_ASYNC_SERVER 01197 void callback_finder_event_observer_0_1_xrl_target_death 01198 (const XrlCmdError &e, 01199 XrlRespCallback); 01200 #endif 01201 01202 XrlCmdRT handle_fea_fib_client_0_1_add_route4(const XrlArgs& in, XrlCmdOT out); 01203 #ifdef XORP_ENABLE_ASYNC_SERVER 01204 void callback_fea_fib_client_0_1_add_route4 01205 (const XrlCmdError &e, 01206 XrlRespCallback); 01207 #endif 01208 01209 XrlCmdRT handle_fea_fib_client_0_1_replace_route4(const XrlArgs& in, XrlCmdOT out); 01210 #ifdef XORP_ENABLE_ASYNC_SERVER 01211 void callback_fea_fib_client_0_1_replace_route4 01212 (const XrlCmdError &e, 01213 XrlRespCallback); 01214 #endif 01215 01216 XrlCmdRT handle_fea_fib_client_0_1_delete_route4(const XrlArgs& in, XrlCmdOT out); 01217 #ifdef XORP_ENABLE_ASYNC_SERVER 01218 void callback_fea_fib_client_0_1_delete_route4 01219 (const XrlCmdError &e, 01220 XrlRespCallback); 01221 #endif 01222 01223 XrlCmdRT handle_fea_fib_client_0_1_resolve_route4(const XrlArgs& in, XrlCmdOT out); 01224 #ifdef XORP_ENABLE_ASYNC_SERVER 01225 void callback_fea_fib_client_0_1_resolve_route4 01226 (const XrlCmdError &e, 01227 XrlRespCallback); 01228 #endif 01229 01230 XrlCmdRT handle_fea_fib_client_0_1_add_route6(const XrlArgs& in, XrlCmdOT out); 01231 #ifdef XORP_ENABLE_ASYNC_SERVER 01232 void callback_fea_fib_client_0_1_add_route6 01233 (const XrlCmdError &e, 01234 XrlRespCallback); 01235 #endif 01236 01237 XrlCmdRT handle_fea_fib_client_0_1_resolve_route6(const XrlArgs& in, XrlCmdOT out); 01238 #ifdef XORP_ENABLE_ASYNC_SERVER 01239 void callback_fea_fib_client_0_1_resolve_route6 01240 (const XrlCmdError &e, 01241 XrlRespCallback); 01242 #endif 01243 01244 XrlCmdRT handle_fea_fib_client_0_1_replace_route6(const XrlArgs& in, XrlCmdOT out); 01245 #ifdef XORP_ENABLE_ASYNC_SERVER 01246 void callback_fea_fib_client_0_1_replace_route6 01247 (const XrlCmdError &e, 01248 XrlRespCallback); 01249 #endif 01250 01251 XrlCmdRT handle_fea_fib_client_0_1_delete_route6(const XrlArgs& in, XrlCmdOT out); 01252 #ifdef XORP_ENABLE_ASYNC_SERVER 01253 void callback_fea_fib_client_0_1_delete_route6 01254 (const XrlCmdError &e, 01255 XrlRespCallback); 01256 #endif 01257 01258 XrlCmdRT handle_policy_backend_0_1_configure(const XrlArgs& in, XrlCmdOT out); 01259 #ifdef XORP_ENABLE_ASYNC_SERVER 01260 void callback_policy_backend_0_1_configure 01261 (const XrlCmdError &e, 01262 XrlRespCallback); 01263 #endif 01264 01265 XrlCmdRT handle_policy_backend_0_1_reset(const XrlArgs& in, XrlCmdOT out); 01266 #ifdef XORP_ENABLE_ASYNC_SERVER 01267 void callback_policy_backend_0_1_reset 01268 (const XrlCmdError &e, 01269 XrlRespCallback); 01270 #endif 01271 01272 XrlCmdRT handle_policy_backend_0_1_push_routes(const XrlArgs& in, XrlCmdOT out); 01273 #ifdef XORP_ENABLE_ASYNC_SERVER 01274 void callback_policy_backend_0_1_push_routes 01275 (const XrlCmdError &e, 01276 XrlRespCallback); 01277 #endif 01278 01279 XrlCmdRT handle_fib2mrib_0_1_enable_fib2mrib(const XrlArgs& in, XrlCmdOT out); 01280 #ifdef XORP_ENABLE_ASYNC_SERVER 01281 void callback_fib2mrib_0_1_enable_fib2mrib 01282 (const XrlCmdError &e, 01283 XrlRespCallback); 01284 #endif 01285 01286 XrlCmdRT handle_fib2mrib_0_1_start_fib2mrib(const XrlArgs& in, XrlCmdOT out); 01287 #ifdef XORP_ENABLE_ASYNC_SERVER 01288 void callback_fib2mrib_0_1_start_fib2mrib 01289 (const XrlCmdError &e, 01290 XrlRespCallback); 01291 #endif 01292 01293 XrlCmdRT handle_fib2mrib_0_1_stop_fib2mrib(const XrlArgs& in, XrlCmdOT out); 01294 #ifdef XORP_ENABLE_ASYNC_SERVER 01295 void callback_fib2mrib_0_1_stop_fib2mrib 01296 (const XrlCmdError &e, 01297 XrlRespCallback); 01298 #endif 01299 01300 XrlCmdRT handle_fib2mrib_0_1_enable_log_trace_all(const XrlArgs& in, XrlCmdOT out); 01301 #ifdef XORP_ENABLE_ASYNC_SERVER 01302 void callback_fib2mrib_0_1_enable_log_trace_all 01303 (const XrlCmdError &e, 01304 XrlRespCallback); 01305 #endif 01306 01307 void add_handlers(); 01308 void remove_handlers(); 01309 01310 struct handler_table { 01311 const char *name; 01312 XrlCmdRT (XrlFib2mribTargetBase::*method)(const XrlArgs&, XrlCmdOT); 01313 }; 01314 01315 static const struct handler_table handlers[]; 01316 static const size_t num_handlers; 01317 }; 01318 01319 #endif // __XRL_TARGETS_FIB2MRIB_BASE_HH__