📄 socket_server_base.cc
字号:
XrlCmdError e = socket6_0_1_send_with_flags( xa_inputs.get_string("sockid"), xa_inputs.get_binary("data"), xa_inputs.get_bool("out_of_band"), xa_inputs.get_bool("end_of_record"), xa_inputs.get_bool("end_of_file")); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for %s failed: %s", "socket6/0.1/send_with_flags", e.str().c_str()); return e; } } catch (const XrlArgs::XrlAtomNotFound& e) { XLOG_ERROR("Argument not found"); return XrlCmdError::BAD_ARGS(); } return XrlCmdError::OKAY();}const XrlCmdErrorXrlSocketServerTargetBase::handle_socket6_0_1_send_to(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){ if (xa_inputs.size() != 4) { XLOG_ERROR("Wrong number of arguments (%u != %u) handling %s", XORP_UINT_CAST(4), XORP_UINT_CAST(xa_inputs.size()), "socket6/0.1/send_to"); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ try { XrlCmdError e = socket6_0_1_send_to( xa_inputs.get_string("sockid"), xa_inputs.get_ipv6("remote_addr"), xa_inputs.get_uint32("remote_port"), xa_inputs.get_binary("data")); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for %s failed: %s", "socket6/0.1/send_to", e.str().c_str()); return e; } } catch (const XrlArgs::XrlAtomNotFound& e) { XLOG_ERROR("Argument not found"); return XrlCmdError::BAD_ARGS(); } return XrlCmdError::OKAY();}const XrlCmdErrorXrlSocketServerTargetBase::handle_socket6_0_1_send_to_with_flags(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){ if (xa_inputs.size() != 7) { XLOG_ERROR("Wrong number of arguments (%u != %u) handling %s", XORP_UINT_CAST(7), XORP_UINT_CAST(xa_inputs.size()), "socket6/0.1/send_to_with_flags"); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ try { XrlCmdError e = socket6_0_1_send_to_with_flags( xa_inputs.get_string("sockid"), xa_inputs.get_ipv6("remote_addr"), xa_inputs.get_uint32("remote_port"), xa_inputs.get_binary("data"), xa_inputs.get_bool("out_of_band"), xa_inputs.get_bool("end_of_record"), xa_inputs.get_bool("end_of_file")); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for %s failed: %s", "socket6/0.1/send_to_with_flags", e.str().c_str()); return e; } } catch (const XrlArgs::XrlAtomNotFound& e) { XLOG_ERROR("Argument not found"); return XrlCmdError::BAD_ARGS(); } return XrlCmdError::OKAY();}const XrlCmdErrorXrlSocketServerTargetBase::handle_socket6_0_1_send_from_multicast_if(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){ if (xa_inputs.size() != 5) { XLOG_ERROR("Wrong number of arguments (%u != %u) handling %s", XORP_UINT_CAST(5), XORP_UINT_CAST(xa_inputs.size()), "socket6/0.1/send_from_multicast_if"); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ try { XrlCmdError e = socket6_0_1_send_from_multicast_if( xa_inputs.get_string("sockid"), xa_inputs.get_ipv6("group_addr"), xa_inputs.get_uint32("group_port"), xa_inputs.get_ipv6("ifaddr"), xa_inputs.get_binary("data")); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for %s failed: %s", "socket6/0.1/send_from_multicast_if", e.str().c_str()); return e; } } catch (const XrlArgs::XrlAtomNotFound& e) { XLOG_ERROR("Argument not found"); return XrlCmdError::BAD_ARGS(); } return XrlCmdError::OKAY();}const XrlCmdErrorXrlSocketServerTargetBase::handle_socket6_0_1_set_socket_option(const XrlArgs& xa_inputs, XrlArgs* /* pxa_outputs */){ if (xa_inputs.size() != 3) { XLOG_ERROR("Wrong number of arguments (%u != %u) handling %s", XORP_UINT_CAST(3), XORP_UINT_CAST(xa_inputs.size()), "socket6/0.1/set_socket_option"); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ try { XrlCmdError e = socket6_0_1_set_socket_option( xa_inputs.get_string("sockid"), xa_inputs.get_string("optname"), xa_inputs.get_uint32("optval")); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for %s failed: %s", "socket6/0.1/set_socket_option", e.str().c_str()); return e; } } catch (const XrlArgs::XrlAtomNotFound& e) { XLOG_ERROR("Argument not found"); return XrlCmdError::BAD_ARGS(); } return XrlCmdError::OKAY();}const XrlCmdErrorXrlSocketServerTargetBase::handle_socket6_0_1_get_socket_option(const XrlArgs& xa_inputs, XrlArgs* pxa_outputs){ if (xa_inputs.size() != 2) { XLOG_ERROR("Wrong number of arguments (%u != %u) handling %s", XORP_UINT_CAST(2), XORP_UINT_CAST(xa_inputs.size()), "socket6/0.1/get_socket_option"); return XrlCmdError::BAD_ARGS(); } if (pxa_outputs == 0) { XLOG_FATAL("Return list empty"); return XrlCmdError::BAD_ARGS(); } /* Return value declarations */ uint32_t optval; try { XrlCmdError e = socket6_0_1_get_socket_option( xa_inputs.get_string("sockid"), xa_inputs.get_string("optname"), optval); if (e != XrlCmdError::OKAY()) { XLOG_WARNING("Handling method for %s failed: %s", "socket6/0.1/get_socket_option", e.str().c_str()); return e; } } catch (const XrlArgs::XrlAtomNotFound& e) { XLOG_ERROR("Argument not found"); return XrlCmdError::BAD_ARGS(); } /* Marshall return values */ try { pxa_outputs->add("optval", optval); } catch (const XrlArgs::XrlAtomFound& ) { XLOG_FATAL("Duplicate atom name"); /* XXX Should never happen */ } return XrlCmdError::OKAY();}voidXrlSocketServerTargetBase::add_handlers(){ if (_cmds->add_handler("common/0.1/get_target_name", callback(this, &XrlSocketServerTargetBase::handle_common_0_1_get_target_name)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "common/0.1/get_target_name"); } if (_cmds->add_handler("common/0.1/get_version", callback(this, &XrlSocketServerTargetBase::handle_common_0_1_get_version)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "common/0.1/get_version"); } if (_cmds->add_handler("common/0.1/get_status", callback(this, &XrlSocketServerTargetBase::handle_common_0_1_get_status)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "common/0.1/get_status"); } if (_cmds->add_handler("common/0.1/shutdown", callback(this, &XrlSocketServerTargetBase::handle_common_0_1_shutdown)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "common/0.1/shutdown"); } if (_cmds->add_handler("finder_event_observer/0.1/xrl_target_birth", callback(this, &XrlSocketServerTargetBase::handle_finder_event_observer_0_1_xrl_target_birth)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "finder_event_observer/0.1/xrl_target_birth"); } if (_cmds->add_handler("finder_event_observer/0.1/xrl_target_death", callback(this, &XrlSocketServerTargetBase::handle_finder_event_observer_0_1_xrl_target_death)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "finder_event_observer/0.1/xrl_target_death"); } if (_cmds->add_handler("socket4/0.1/tcp_open_and_bind", callback(this, &XrlSocketServerTargetBase::handle_socket4_0_1_tcp_open_and_bind)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket4/0.1/tcp_open_and_bind"); } if (_cmds->add_handler("socket4/0.1/udp_open_and_bind", callback(this, &XrlSocketServerTargetBase::handle_socket4_0_1_udp_open_and_bind)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket4/0.1/udp_open_and_bind"); } if (_cmds->add_handler("socket4/0.1/udp_open_bind_join", callback(this, &XrlSocketServerTargetBase::handle_socket4_0_1_udp_open_bind_join)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket4/0.1/udp_open_bind_join"); } if (_cmds->add_handler("socket4/0.1/tcp_open_bind_connect", callback(this, &XrlSocketServerTargetBase::handle_socket4_0_1_tcp_open_bind_connect)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket4/0.1/tcp_open_bind_connect"); } if (_cmds->add_handler("socket4/0.1/udp_open_bind_connect", callback(this, &XrlSocketServerTargetBase::handle_socket4_0_1_udp_open_bind_connect)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket4/0.1/udp_open_bind_connect"); } if (_cmds->add_handler("socket4/0.1/udp_join_group", callback(this, &XrlSocketServerTargetBase::handle_socket4_0_1_udp_join_group)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket4/0.1/udp_join_group"); } if (_cmds->add_handler("socket4/0.1/udp_leave_group", callback(this, &XrlSocketServerTargetBase::handle_socket4_0_1_udp_leave_group)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket4/0.1/udp_leave_group"); } if (_cmds->add_handler("socket4/0.1/close", callback(this, &XrlSocketServerTargetBase::handle_socket4_0_1_close)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket4/0.1/close"); } if (_cmds->add_handler("socket4/0.1/tcp_listen", callback(this, &XrlSocketServerTargetBase::handle_socket4_0_1_tcp_listen)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket4/0.1/tcp_listen"); } if (_cmds->add_handler("socket4/0.1/send", callback(this, &XrlSocketServerTargetBase::handle_socket4_0_1_send)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket4/0.1/send"); } if (_cmds->add_handler("socket4/0.1/send_with_flags", callback(this, &XrlSocketServerTargetBase::handle_socket4_0_1_send_with_flags)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket4/0.1/send_with_flags"); } if (_cmds->add_handler("socket4/0.1/send_to", callback(this, &XrlSocketServerTargetBase::handle_socket4_0_1_send_to)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket4/0.1/send_to"); } if (_cmds->add_handler("socket4/0.1/send_to_with_flags", callback(this, &XrlSocketServerTargetBase::handle_socket4_0_1_send_to_with_flags)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket4/0.1/send_to_with_flags"); } if (_cmds->add_handler("socket4/0.1/send_from_multicast_if", callback(this, &XrlSocketServerTargetBase::handle_socket4_0_1_send_from_multicast_if)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket4/0.1/send_from_multicast_if"); } if (_cmds->add_handler("socket4/0.1/set_socket_option", callback(this, &XrlSocketServerTargetBase::handle_socket4_0_1_set_socket_option)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket4/0.1/set_socket_option"); } if (_cmds->add_handler("socket4/0.1/get_socket_option", callback(this, &XrlSocketServerTargetBase::handle_socket4_0_1_get_socket_option)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket4/0.1/get_socket_option"); } if (_cmds->add_handler("socket6/0.1/tcp_open_and_bind", callback(this, &XrlSocketServerTargetBase::handle_socket6_0_1_tcp_open_and_bind)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket6/0.1/tcp_open_and_bind"); } if (_cmds->add_handler("socket6/0.1/udp_open_and_bind", callback(this, &XrlSocketServerTargetBase::handle_socket6_0_1_udp_open_and_bind)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket6/0.1/udp_open_and_bind"); } if (_cmds->add_handler("socket6/0.1/udp_open_bind_join", callback(this, &XrlSocketServerTargetBase::handle_socket6_0_1_udp_open_bind_join)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket6/0.1/udp_open_bind_join"); } if (_cmds->add_handler("socket6/0.1/tcp_open_bind_connect", callback(this, &XrlSocketServerTargetBase::handle_socket6_0_1_tcp_open_bind_connect)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket6/0.1/tcp_open_bind_connect"); } if (_cmds->add_handler("socket6/0.1/udp_open_bind_connect", callback(this, &XrlSocketServerTargetBase::handle_socket6_0_1_udp_open_bind_connect)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket6/0.1/udp_open_bind_connect"); } if (_cmds->add_handler("socket6/0.1/udp_join_group", callback(this, &XrlSocketServerTargetBase::handle_socket6_0_1_udp_join_group)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket6/0.1/udp_join_group"); } if (_cmds->add_handler("socket6/0.1/udp_leave_group", callback(this, &XrlSocketServerTargetBase::handle_socket6_0_1_udp_leave_group)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket6/0.1/udp_leave_group"); } if (_cmds->add_handler("socket6/0.1/close", callback(this, &XrlSocketServerTargetBase::handle_socket6_0_1_close)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket6/0.1/close"); } if (_cmds->add_handler("socket6/0.1/tcp_listen", callback(this, &XrlSocketServerTargetBase::handle_socket6_0_1_tcp_listen)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket6/0.1/tcp_listen"); } if (_cmds->add_handler("socket6/0.1/send", callback(this, &XrlSocketServerTargetBase::handle_socket6_0_1_send)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket6/0.1/send"); } if (_cmds->add_handler("socket6/0.1/send_with_flags", callback(this, &XrlSocketServerTargetBase::handle_socket6_0_1_send_with_flags)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket6/0.1/send_with_flags"); } if (_cmds->add_handler("socket6/0.1/send_to", callback(this, &XrlSocketServerTargetBase::handle_socket6_0_1_send_to)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket6/0.1/send_to"); } if (_cmds->add_handler("socket6/0.1/send_to_with_flags", callback(this, &XrlSocketServerTargetBase::handle_socket6_0_1_send_to_with_flags)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket6/0.1/send_to_with_flags"); } if (_cmds->add_handler("socket6/0.1/send_from_multicast_if", callback(this, &XrlSocketServerTargetBase::handle_socket6_0_1_send_from_multicast_if)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket6/0.1/send_from_multicast_if"); } if (_cmds->add_handler("socket6/0.1/set_socket_option", callback(this, &XrlSocketServerTargetBase::handle_socket6_0_1_set_socket_option)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket6/0.1/set_socket_option"); } if (_cmds->add_handler("socket6/0.1/get_socket_option", callback(this, &XrlSocketServerTargetBase::handle_socket6_0_1_get_socket_option)) == false) { XLOG_ERROR("Failed to xrl handler finder://%s/%s", "socket_server", "socket6/0.1/get_socket_option"); } _cmds->finalize();}voidXrlSocketServerTargetBase::remove_handlers(){ _cmds->remove_handler("common/0.1/get_target_name"); _cmds->remove_handler("common/0.1/get_version"); _cmds->remove_handler("common/0.1/get_status"); _cmds->remove_handler("common/0.1/shutdown"); _cmds->remove_handler("finder_event_observer/0.1/xrl_target_birth"); _cmds->remove_handler("finder_event_observer/0.1/xrl_target_death"); _cmds->remove_handler("socket4/0.1/tcp_open_and_bind"); _cmds->remove_handler("socket4/0.1/udp_open_and_bind"); _cmds->remove_handler("socket4/0.1/udp_open_bind_join"); _cmds->remove_handler("socket4/0.1/tcp_open_bind_connect"); _cmds->remove_handler("socket4/0.1/udp_open_bind_connect"); _cmds->remove_handler("socket4/0.1/udp_join_group"); _cmds->remove_handler("socket4/0.1/udp_leave_group"); _cmds->remove_handler("socket4/0.1/close"); _cmds->remove_handler("socket4/0.1/tcp_listen"); _cmds->remove_handler("socket4/0.1/send"); _cmds->remove_handler("socket4/0.1/send_with_flags"); _cmds->remove_handler("socket4/0.1/send_to"); _cmds->remove_handler("socket4/0.1/send_to_with_flags"); _cmds->remove_handler("socket4/0.1/send_from_multicast_if"); _cmds->remove_handler("socket4/0.1/set_socket_option"); _cmds->remove_handler("socket4/0.1/get_socket_option"); _cmds->remove_handler("socket6/0.1/tcp_open_and_bind"); _cmds->remove_handler("socket6/0.1/udp_open_and_bind"); _cmds->remove_handler("socket6/0.1/udp_open_bind_join"); _cmds->remove_handler("socket6/0.1/tcp_open_bind_connect"); _cmds->remove_handler("socket6/0.1/udp_open_bind_connect"); _cmds->remove_handler("socket6/0.1/udp_join_group"); _cmds->remove_handler("socket6/0.1/udp_leave_group"); _cmds->remove_handler("socket6/0.1/close"); _cmds->remove_handler("socket6/0.1/tcp_listen"); _cmds->remove_handler("socket6/0.1/send"); _cmds->remove_handler("socket6/0.1/send_with_flags"); _cmds->remove_handler("socket6/0.1/send_to"); _cmds->remove_handler("socket6/0.1/send_to_with_flags"); _cmds->remove_handler("socket6/0.1/send_from_multicast_if"); _cmds->remove_handler("socket6/0.1/set_socket_option"); _cmds->remove_handler("socket6/0.1/get_socket_option");}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -