rib_xif.cc
来自「BCAST Implementation for NS2」· CC 代码 · 共 1,565 行 · 第 1/3 页
CC
1,565 行
boolXrlRibV0p1Client::send_lookup_route4( const char* the_tgt, const IPv4& addr, const bool& unicast, const bool& multicast, const LookupRoute4CB& cb){ Xrl x(the_tgt, "rib/0.1/lookup_route4"); x.args().add("addr", addr); x.args().add("unicast", unicast); x.args().add("multicast", multicast); return _sender->send(x, callback(this, &XrlRibV0p1Client::unmarshall_lookup_route4, cb));}/* Unmarshall lookup_route4 */voidXrlRibV0p1Client::unmarshall_lookup_route4( const XrlError& e, XrlArgs* a, LookupRoute4CB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e, 0); return; } else if (a && a->size() != 1) { XLOG_ERROR("Wrong number of arguments (%u != 1)", (uint32_t)a->size()); cb->dispatch(XrlError::BAD_ARGS(), 0); return; } IPv4 nexthop; try { a->get("nexthop", nexthop); } catch (const XrlArgs::XrlAtomNotFound&) { XLOG_ERROR("Atom not found"); cb->dispatch(XrlError::BAD_ARGS(), 0); return; } cb->dispatch(e, &nexthop);}boolXrlRibV0p1Client::send_lookup_route6( const char* the_tgt, const IPv6& addr, const bool& unicast, const bool& multicast, const LookupRoute6CB& cb){ Xrl x(the_tgt, "rib/0.1/lookup_route6"); x.args().add("addr", addr); x.args().add("unicast", unicast); x.args().add("multicast", multicast); return _sender->send(x, callback(this, &XrlRibV0p1Client::unmarshall_lookup_route6, cb));}/* Unmarshall lookup_route6 */voidXrlRibV0p1Client::unmarshall_lookup_route6( const XrlError& e, XrlArgs* a, LookupRoute6CB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e, 0); return; } else if (a && a->size() != 1) { XLOG_ERROR("Wrong number of arguments (%u != 1)", (uint32_t)a->size()); cb->dispatch(XrlError::BAD_ARGS(), 0); return; } IPv6 nexthop; try { a->get("nexthop", nexthop); } catch (const XrlArgs::XrlAtomNotFound&) { XLOG_ERROR("Atom not found"); cb->dispatch(XrlError::BAD_ARGS(), 0); return; } cb->dispatch(e, &nexthop);}boolXrlRibV0p1Client::send_new_vif( const char* the_tgt, const string& name, const NewVifCB& cb){ Xrl x(the_tgt, "rib/0.1/new_vif"); x.args().add("name", name); return _sender->send(x, callback(this, &XrlRibV0p1Client::unmarshall_new_vif, cb));}/* Unmarshall new_vif */voidXrlRibV0p1Client::unmarshall_new_vif( const XrlError& e, XrlArgs* a, NewVifCB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e); return; } else if (a && a->size() != 0) { XLOG_ERROR("Wrong number of arguments (%u != 0)", (uint32_t)a->size()); cb->dispatch(XrlError::BAD_ARGS()); return; } cb->dispatch(e);}boolXrlRibV0p1Client::send_add_vif_addr4( const char* the_tgt, const string& name, const IPv4& addr, const IPv4Net& subnet, const AddVifAddr4CB& cb){ Xrl x(the_tgt, "rib/0.1/add_vif_addr4"); x.args().add("name", name); x.args().add("addr", addr); x.args().add("subnet", subnet); return _sender->send(x, callback(this, &XrlRibV0p1Client::unmarshall_add_vif_addr4, cb));}/* Unmarshall add_vif_addr4 */voidXrlRibV0p1Client::unmarshall_add_vif_addr4( const XrlError& e, XrlArgs* a, AddVifAddr4CB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e); return; } else if (a && a->size() != 0) { XLOG_ERROR("Wrong number of arguments (%u != 0)", (uint32_t)a->size()); cb->dispatch(XrlError::BAD_ARGS()); return; } cb->dispatch(e);}boolXrlRibV0p1Client::send_add_vif_addr6( const char* the_tgt, const string& name, const IPv6& addr, const IPv6Net& subnet, const AddVifAddr6CB& cb){ Xrl x(the_tgt, "rib/0.1/add_vif_addr6"); x.args().add("name", name); x.args().add("addr", addr); x.args().add("subnet", subnet); return _sender->send(x, callback(this, &XrlRibV0p1Client::unmarshall_add_vif_addr6, cb));}/* Unmarshall add_vif_addr6 */voidXrlRibV0p1Client::unmarshall_add_vif_addr6( const XrlError& e, XrlArgs* a, AddVifAddr6CB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e); return; } else if (a && a->size() != 0) { XLOG_ERROR("Wrong number of arguments (%u != 0)", (uint32_t)a->size()); cb->dispatch(XrlError::BAD_ARGS()); return; } cb->dispatch(e);}boolXrlRibV0p1Client::send_redist_enable4( const char* the_tgt, const string& from, const string& to, const bool& unicast, const bool& multicast, const RedistEnable4CB& cb){ Xrl x(the_tgt, "rib/0.1/redist_enable4"); x.args().add("from", from); x.args().add("to", to); x.args().add("unicast", unicast); x.args().add("multicast", multicast); return _sender->send(x, callback(this, &XrlRibV0p1Client::unmarshall_redist_enable4, cb));}/* Unmarshall redist_enable4 */voidXrlRibV0p1Client::unmarshall_redist_enable4( const XrlError& e, XrlArgs* a, RedistEnable4CB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e); return; } else if (a && a->size() != 0) { XLOG_ERROR("Wrong number of arguments (%u != 0)", (uint32_t)a->size()); cb->dispatch(XrlError::BAD_ARGS()); return; } cb->dispatch(e);}boolXrlRibV0p1Client::send_redist_enable6( const char* the_tgt, const string& from, const string& to, const bool& unicast, const bool& multicast, const RedistEnable6CB& cb){ Xrl x(the_tgt, "rib/0.1/redist_enable6"); x.args().add("from", from); x.args().add("to", to); x.args().add("unicast", unicast); x.args().add("multicast", multicast); return _sender->send(x, callback(this, &XrlRibV0p1Client::unmarshall_redist_enable6, cb));}/* Unmarshall redist_enable6 */voidXrlRibV0p1Client::unmarshall_redist_enable6( const XrlError& e, XrlArgs* a, RedistEnable6CB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e); return; } else if (a && a->size() != 0) { XLOG_ERROR("Wrong number of arguments (%u != 0)", (uint32_t)a->size()); cb->dispatch(XrlError::BAD_ARGS()); return; } cb->dispatch(e);}boolXrlRibV0p1Client::send_redist_disable4( const char* the_tgt, const string& from, const string& to, const bool& unicast, const bool& multicast, const RedistDisable4CB& cb){ Xrl x(the_tgt, "rib/0.1/redist_disable4"); x.args().add("from", from); x.args().add("to", to); x.args().add("unicast", unicast); x.args().add("multicast", multicast); return _sender->send(x, callback(this, &XrlRibV0p1Client::unmarshall_redist_disable4, cb));}/* Unmarshall redist_disable4 */voidXrlRibV0p1Client::unmarshall_redist_disable4( const XrlError& e, XrlArgs* a, RedistDisable4CB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e); return; } else if (a && a->size() != 0) { XLOG_ERROR("Wrong number of arguments (%u != 0)", (uint32_t)a->size()); cb->dispatch(XrlError::BAD_ARGS()); return; } cb->dispatch(e);}boolXrlRibV0p1Client::send_redist_disable6( const char* the_tgt, const string& from, const string& to, const bool& unicast, const bool& multicast, const RedistDisable6CB& cb){ Xrl x(the_tgt, "rib/0.1/redist_disable6"); x.args().add("from", from); x.args().add("to", to); x.args().add("unicast", unicast); x.args().add("multicast", multicast); return _sender->send(x, callback(this, &XrlRibV0p1Client::unmarshall_redist_disable6, cb));}/* Unmarshall redist_disable6 */voidXrlRibV0p1Client::unmarshall_redist_disable6( const XrlError& e, XrlArgs* a, RedistDisable6CB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e); return; } else if (a && a->size() != 0) { XLOG_ERROR("Wrong number of arguments (%u != 0)", (uint32_t)a->size()); cb->dispatch(XrlError::BAD_ARGS()); return; } cb->dispatch(e);}boolXrlRibV0p1Client::send_register_interest4( const char* the_tgt, const string& target, const IPv4& addr, const RegisterInterest4CB& cb){ Xrl x(the_tgt, "rib/0.1/register_interest4"); x.args().add("target", target); x.args().add("addr", addr); return _sender->send(x, callback(this, &XrlRibV0p1Client::unmarshall_register_interest4, cb));}/* Unmarshall register_interest4 */voidXrlRibV0p1Client::unmarshall_register_interest4( const XrlError& e, XrlArgs* a, RegisterInterest4CB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e, 0, 0, 0, 0, 0, 0); return; } else if (a && a->size() != 6) { XLOG_ERROR("Wrong number of arguments (%u != 6)", (uint32_t)a->size()); cb->dispatch(XrlError::BAD_ARGS(), 0, 0, 0, 0, 0, 0); return; } bool resolves; IPv4 base_addr; uint32_t prefix_len; uint32_t real_prefix_len; IPv4 nexthop; uint32_t metric; try { a->get("resolves", resolves); a->get("base_addr", base_addr); a->get("prefix_len", prefix_len); a->get("real_prefix_len", real_prefix_len); a->get("nexthop", nexthop); a->get("metric", metric); } catch (const XrlArgs::XrlAtomNotFound&) { XLOG_ERROR("Atom not found"); cb->dispatch(XrlError::BAD_ARGS(), 0, 0, 0, 0, 0, 0); return; } cb->dispatch(e, &resolves, &base_addr, &prefix_len, &real_prefix_len, &nexthop, &metric);}boolXrlRibV0p1Client::send_deregister_interest4( const char* the_tgt, const string& target, const IPv4& addr, const uint32_t& prefix_len, const DeregisterInterest4CB& cb){ Xrl x(the_tgt, "rib/0.1/deregister_interest4"); x.args().add("target", target); x.args().add("addr", addr); x.args().add("prefix_len", prefix_len); return _sender->send(x, callback(this, &XrlRibV0p1Client::unmarshall_deregister_interest4, cb));}/* Unmarshall deregister_interest4 */voidXrlRibV0p1Client::unmarshall_deregister_interest4( const XrlError& e, XrlArgs* a, DeregisterInterest4CB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e); return; } else if (a && a->size() != 0) { XLOG_ERROR("Wrong number of arguments (%u != 0)", (uint32_t)a->size()); cb->dispatch(XrlError::BAD_ARGS()); return; } cb->dispatch(e);}boolXrlRibV0p1Client::send_register_interest6( const char* the_tgt, const string& target, const IPv6& addr, const RegisterInterest6CB& cb){ Xrl x(the_tgt, "rib/0.1/register_interest6"); x.args().add("target", target); x.args().add("addr", addr); return _sender->send(x, callback(this, &XrlRibV0p1Client::unmarshall_register_interest6, cb));}/* Unmarshall register_interest6 */voidXrlRibV0p1Client::unmarshall_register_interest6( const XrlError& e, XrlArgs* a, RegisterInterest6CB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e, 0, 0, 0, 0, 0, 0); return; } else if (a && a->size() != 6) { XLOG_ERROR("Wrong number of arguments (%u != 6)", (uint32_t)a->size()); cb->dispatch(XrlError::BAD_ARGS(), 0, 0, 0, 0, 0, 0); return; } bool resolves; IPv6 base_addr; uint32_t prefix_len; uint32_t real_prefix_len; IPv6 nexthop; uint32_t metric; try { a->get("resolves", resolves); a->get("base_addr", base_addr); a->get("prefix_len", prefix_len); a->get("real_prefix_len", real_prefix_len); a->get("nexthop", nexthop); a->get("metric", metric); } catch (const XrlArgs::XrlAtomNotFound&) { XLOG_ERROR("Atom not found"); cb->dispatch(XrlError::BAD_ARGS(), 0, 0, 0, 0, 0, 0); return; } cb->dispatch(e, &resolves, &base_addr, &prefix_len, &real_prefix_len, &nexthop, &metric);}boolXrlRibV0p1Client::send_deregister_interest6( const char* the_tgt, const string& target, const IPv6& addr, const uint32_t& prefix_len, const DeregisterInterest6CB& cb){ Xrl x(the_tgt, "rib/0.1/deregister_interest6"); x.args().add("target", target); x.args().add("addr", addr); x.args().add("prefix_len", prefix_len); return _sender->send(x, callback(this, &XrlRibV0p1Client::unmarshall_deregister_interest6, cb));}/* Unmarshall deregister_interest6 */voidXrlRibV0p1Client::unmarshall_deregister_interest6( const XrlError& e, XrlArgs* a, DeregisterInterest6CB cb){ if (e != XrlError::OKAY()) { cb->dispatch(e); return; } else if (a && a->size() != 0) { XLOG_ERROR("Wrong number of arguments (%u != 0)", (uint32_t)a->size()); cb->dispatch(XrlError::BAD_ARGS()); return; } cb->dispatch(e);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?