⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ospfv3_xif.cc

📁 xorp源码hg
💻 CC
📖 第 1 页 / 共 3 页
字号:
	const SetPassiveCB&	cb){    Xrl x(dst_xrl_target_name, "ospfv3/0.1/set_passive");    x.args().add("ifname", ifname);    x.args().add("vifname", vifname);    x.args().add("area", area);    x.args().add("passive", passive);    return _sender->send(x, callback(this, &XrlOspfv3V0p1Client::unmarshall_set_passive, cb));}/* Unmarshall set_passive */voidXrlOspfv3V0p1Client::unmarshall_set_passive(	const XrlError&	e,	XrlArgs*	a,	SetPassiveCB		cb){    if (e != XrlError::OKAY()) {	cb->dispatch(e);	return;    } else if (a && a->size() != 0) {	XLOG_ERROR("Wrong number of arguments (%u != %u)", XORP_UINT_CAST(a->size()), XORP_UINT_CAST(0));	cb->dispatch(XrlError::BAD_ARGS());	return;    }    cb->dispatch(e);}boolXrlOspfv3V0p1Client::send_originate_default_route(	const char*	dst_xrl_target_name,	const IPv4&	area,	const bool&	enable,	const OriginateDefaultRouteCB&	cb){    Xrl x(dst_xrl_target_name, "ospfv3/0.1/originate_default_route");    x.args().add("area", area);    x.args().add("enable", enable);    return _sender->send(x, callback(this, &XrlOspfv3V0p1Client::unmarshall_originate_default_route, cb));}/* Unmarshall originate_default_route */voidXrlOspfv3V0p1Client::unmarshall_originate_default_route(	const XrlError&	e,	XrlArgs*	a,	OriginateDefaultRouteCB		cb){    if (e != XrlError::OKAY()) {	cb->dispatch(e);	return;    } else if (a && a->size() != 0) {	XLOG_ERROR("Wrong number of arguments (%u != %u)", XORP_UINT_CAST(a->size()), XORP_UINT_CAST(0));	cb->dispatch(XrlError::BAD_ARGS());	return;    }    cb->dispatch(e);}boolXrlOspfv3V0p1Client::send_stub_default_cost(	const char*	dst_xrl_target_name,	const IPv4&	area,	const uint32_t&	cost,	const StubDefaultCostCB&	cb){    Xrl x(dst_xrl_target_name, "ospfv3/0.1/stub_default_cost");    x.args().add("area", area);    x.args().add("cost", cost);    return _sender->send(x, callback(this, &XrlOspfv3V0p1Client::unmarshall_stub_default_cost, cb));}/* Unmarshall stub_default_cost */voidXrlOspfv3V0p1Client::unmarshall_stub_default_cost(	const XrlError&	e,	XrlArgs*	a,	StubDefaultCostCB		cb){    if (e != XrlError::OKAY()) {	cb->dispatch(e);	return;    } else if (a && a->size() != 0) {	XLOG_ERROR("Wrong number of arguments (%u != %u)", XORP_UINT_CAST(a->size()), XORP_UINT_CAST(0));	cb->dispatch(XrlError::BAD_ARGS());	return;    }    cb->dispatch(e);}boolXrlOspfv3V0p1Client::send_summaries(	const char*	dst_xrl_target_name,	const IPv4&	area,	const bool&	enable,	const SummariesCB&	cb){    Xrl x(dst_xrl_target_name, "ospfv3/0.1/summaries");    x.args().add("area", area);    x.args().add("enable", enable);    return _sender->send(x, callback(this, &XrlOspfv3V0p1Client::unmarshall_summaries, cb));}/* Unmarshall summaries */voidXrlOspfv3V0p1Client::unmarshall_summaries(	const XrlError&	e,	XrlArgs*	a,	SummariesCB		cb){    if (e != XrlError::OKAY()) {	cb->dispatch(e);	return;    } else if (a && a->size() != 0) {	XLOG_ERROR("Wrong number of arguments (%u != %u)", XORP_UINT_CAST(a->size()), XORP_UINT_CAST(0));	cb->dispatch(XrlError::BAD_ARGS());	return;    }    cb->dispatch(e);}boolXrlOspfv3V0p1Client::send_area_range_add(	const char*	dst_xrl_target_name,	const IPv4&	area,	const IPv6Net&	net,	const bool&	advertise,	const AreaRangeAddCB&	cb){    Xrl x(dst_xrl_target_name, "ospfv3/0.1/area_range_add");    x.args().add("area", area);    x.args().add("net", net);    x.args().add("advertise", advertise);    return _sender->send(x, callback(this, &XrlOspfv3V0p1Client::unmarshall_area_range_add, cb));}/* Unmarshall area_range_add */voidXrlOspfv3V0p1Client::unmarshall_area_range_add(	const XrlError&	e,	XrlArgs*	a,	AreaRangeAddCB		cb){    if (e != XrlError::OKAY()) {	cb->dispatch(e);	return;    } else if (a && a->size() != 0) {	XLOG_ERROR("Wrong number of arguments (%u != %u)", XORP_UINT_CAST(a->size()), XORP_UINT_CAST(0));	cb->dispatch(XrlError::BAD_ARGS());	return;    }    cb->dispatch(e);}boolXrlOspfv3V0p1Client::send_area_range_delete(	const char*	dst_xrl_target_name,	const IPv4&	area,	const IPv6Net&	net,	const AreaRangeDeleteCB&	cb){    Xrl x(dst_xrl_target_name, "ospfv3/0.1/area_range_delete");    x.args().add("area", area);    x.args().add("net", net);    return _sender->send(x, callback(this, &XrlOspfv3V0p1Client::unmarshall_area_range_delete, cb));}/* Unmarshall area_range_delete */voidXrlOspfv3V0p1Client::unmarshall_area_range_delete(	const XrlError&	e,	XrlArgs*	a,	AreaRangeDeleteCB		cb){    if (e != XrlError::OKAY()) {	cb->dispatch(e);	return;    } else if (a && a->size() != 0) {	XLOG_ERROR("Wrong number of arguments (%u != %u)", XORP_UINT_CAST(a->size()), XORP_UINT_CAST(0));	cb->dispatch(XrlError::BAD_ARGS());	return;    }    cb->dispatch(e);}boolXrlOspfv3V0p1Client::send_area_range_change_state(	const char*	dst_xrl_target_name,	const IPv4&	area,	const IPv6Net&	net,	const bool&	advertise,	const AreaRangeChangeStateCB&	cb){    Xrl x(dst_xrl_target_name, "ospfv3/0.1/area_range_change_state");    x.args().add("area", area);    x.args().add("net", net);    x.args().add("advertise", advertise);    return _sender->send(x, callback(this, &XrlOspfv3V0p1Client::unmarshall_area_range_change_state, cb));}/* Unmarshall area_range_change_state */voidXrlOspfv3V0p1Client::unmarshall_area_range_change_state(	const XrlError&	e,	XrlArgs*	a,	AreaRangeChangeStateCB		cb){    if (e != XrlError::OKAY()) {	cb->dispatch(e);	return;    } else if (a && a->size() != 0) {	XLOG_ERROR("Wrong number of arguments (%u != %u)", XORP_UINT_CAST(a->size()), XORP_UINT_CAST(0));	cb->dispatch(XrlError::BAD_ARGS());	return;    }    cb->dispatch(e);}boolXrlOspfv3V0p1Client::send_trace(	const char*	dst_xrl_target_name,	const string&	tvar,	const bool&	enable,	const TraceCB&	cb){    Xrl x(dst_xrl_target_name, "ospfv3/0.1/trace");    x.args().add("tvar", tvar);    x.args().add("enable", enable);    return _sender->send(x, callback(this, &XrlOspfv3V0p1Client::unmarshall_trace, cb));}/* Unmarshall trace */voidXrlOspfv3V0p1Client::unmarshall_trace(	const XrlError&	e,	XrlArgs*	a,	TraceCB		cb){    if (e != XrlError::OKAY()) {	cb->dispatch(e);	return;    } else if (a && a->size() != 0) {	XLOG_ERROR("Wrong number of arguments (%u != %u)", XORP_UINT_CAST(a->size()), XORP_UINT_CAST(0));	cb->dispatch(XrlError::BAD_ARGS());	return;    }    cb->dispatch(e);}boolXrlOspfv3V0p1Client::send_get_lsa(	const char*	dst_xrl_target_name,	const IPv4&	area,	const uint32_t&	index,	const GetLsaCB&	cb){    Xrl x(dst_xrl_target_name, "ospfv3/0.1/get_lsa");    x.args().add("area", area);    x.args().add("index", index);    return _sender->send(x, callback(this, &XrlOspfv3V0p1Client::unmarshall_get_lsa, cb));}/* Unmarshall get_lsa */voidXrlOspfv3V0p1Client::unmarshall_get_lsa(	const XrlError&	e,	XrlArgs*	a,	GetLsaCB		cb){    if (e != XrlError::OKAY()) {	cb->dispatch(e, 0, 0, 0, 0);	return;    } else if (a && a->size() != 4) {	XLOG_ERROR("Wrong number of arguments (%u != %u)", XORP_UINT_CAST(a->size()), XORP_UINT_CAST(4));	cb->dispatch(XrlError::BAD_ARGS(), 0, 0, 0, 0);	return;    }    bool valid;    bool toohigh;    bool self;    vector<uint8_t> lsa;    try {	a->get("valid", valid);	a->get("toohigh", toohigh);	a->get("self", self);	a->get("lsa", lsa);    } catch (const XrlArgs::XrlAtomNotFound&) {	XLOG_ERROR("Atom not found");	cb->dispatch(XrlError::BAD_ARGS(), 0, 0, 0, 0);	return;    }    cb->dispatch(e, &valid, &toohigh, &self, &lsa);}boolXrlOspfv3V0p1Client::send_get_area_list(	const char*	dst_xrl_target_name,	const GetAreaListCB&	cb){    Xrl x(dst_xrl_target_name, "ospfv3/0.1/get_area_list");    return _sender->send(x, callback(this, &XrlOspfv3V0p1Client::unmarshall_get_area_list, cb));}/* Unmarshall get_area_list */voidXrlOspfv3V0p1Client::unmarshall_get_area_list(	const XrlError&	e,	XrlArgs*	a,	GetAreaListCB		cb){    if (e != XrlError::OKAY()) {	cb->dispatch(e, 0);	return;    } else if (a && a->size() != 1) {	XLOG_ERROR("Wrong number of arguments (%u != %u)", XORP_UINT_CAST(a->size()), XORP_UINT_CAST(1));	cb->dispatch(XrlError::BAD_ARGS(), 0);	return;    }    XrlAtomList areas;    try {	a->get("areas", areas);    } catch (const XrlArgs::XrlAtomNotFound&) {	XLOG_ERROR("Atom not found");	cb->dispatch(XrlError::BAD_ARGS(), 0);	return;    }    cb->dispatch(e, &areas);}boolXrlOspfv3V0p1Client::send_get_neighbour_list(	const char*	dst_xrl_target_name,	const GetNeighbourListCB&	cb){    Xrl x(dst_xrl_target_name, "ospfv3/0.1/get_neighbour_list");    return _sender->send(x, callback(this, &XrlOspfv3V0p1Client::unmarshall_get_neighbour_list, cb));}/* Unmarshall get_neighbour_list */voidXrlOspfv3V0p1Client::unmarshall_get_neighbour_list(	const XrlError&	e,	XrlArgs*	a,	GetNeighbourListCB		cb){    if (e != XrlError::OKAY()) {	cb->dispatch(e, 0);	return;    } else if (a && a->size() != 1) {	XLOG_ERROR("Wrong number of arguments (%u != %u)", XORP_UINT_CAST(a->size()), XORP_UINT_CAST(1));	cb->dispatch(XrlError::BAD_ARGS(), 0);	return;    }    XrlAtomList areas;    try {	a->get("areas", areas);    } catch (const XrlArgs::XrlAtomNotFound&) {	XLOG_ERROR("Atom not found");	cb->dispatch(XrlError::BAD_ARGS(), 0);	return;    }    cb->dispatch(e, &areas);}boolXrlOspfv3V0p1Client::send_get_neighbour_info(	const char*	dst_xrl_target_name,	const uint32_t&	nid,	const GetNeighbourInfoCB&	cb){    Xrl x(dst_xrl_target_name, "ospfv3/0.1/get_neighbour_info");    x.args().add("nid", nid);    return _sender->send(x, callback(this, &XrlOspfv3V0p1Client::unmarshall_get_neighbour_info, cb));}/* Unmarshall get_neighbour_info */voidXrlOspfv3V0p1Client::unmarshall_get_neighbour_info(	const XrlError&	e,	XrlArgs*	a,	GetNeighbourInfoCB		cb){    if (e != XrlError::OKAY()) {	cb->dispatch(e, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);	return;    } else if (a && a->size() != 12) {	XLOG_ERROR("Wrong number of arguments (%u != %u)", XORP_UINT_CAST(a->size()), XORP_UINT_CAST(12));	cb->dispatch(XrlError::BAD_ARGS(), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);	return;    }    string address;    string interface;    string state;    IPv4 rid;    uint32_t priority;    uint32_t deadtime;    IPv4 area;    uint32_t opt;    IPv4 dr;    IPv4 bdr;    uint32_t up;    uint32_t adjacent;    try {	a->get("address", address);	a->get("interface", interface);	a->get("state", state);	a->get("rid", rid);	a->get("priority", priority);	a->get("deadtime", deadtime);	a->get("area", area);	a->get("opt", opt);	a->get("dr", dr);	a->get("bdr", bdr);	a->get("up", up);	a->get("adjacent", adjacent);    } catch (const XrlArgs::XrlAtomNotFound&) {	XLOG_ERROR("Atom not found");	cb->dispatch(XrlError::BAD_ARGS(), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);	return;    }    cb->dispatch(e, &address, &interface, &state, &rid, &priority, &deadtime, &area, &opt, &dr, &bdr, &up, &adjacent);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -