📄 route.java
字号:
op = RouterOperation.GET_ROUTE_INFO; // obtain the PeerID pId = convertPeerID(args[i+1]); if (pId == null) { consoleMessage("Error - Invalid PeerID argument"); return ShellApp.appParamError; } break; } else if (args[i].equals("local")) { // get info for my local route if (args.length != 1) { return syntaxError(); } op = RouterOperation.GET_MY_LOCAL_ROUTE; break; } } if (op == RouterOperation.GET_ALL_ROUTES_INFO && args.length != 0) { return syntaxError(); } } // get the Router service try { EndpointService endpoint = (EndpointService) getGroup().getEndpointService(); EndpointRouter er = (EndpointRouter) endpoint.getMessageTransport("jxta"); if (er == null) { consoleMessage("Error - Could not find the Router transport"); return ShellApp.appMiscError; } // Get the RouteControl object RouteControl routeControl = (RouteControl) er.transportControl(EndpointRouter.GET_ROUTE_CONTROL, null); if (routeControl == null) { consoleMessage("Error - Could not obtain the Router routeControl Interface"); return ShellApp.appMiscError; } if( RouterOperation.GET_MY_LOCAL_ROUTE == op ) { // Get my local route println(routeControl.getMyLocalRoute().display()); } else if( RouterOperation.ROUTER_STATUS == op ) { // Get current router config println("use CM :" + routeControl.useRouteCM()); println("use RouteResolver :" + routeControl.useRouteResolver()); } else if( RouterOperation.ENABLE_ROUTE_CM == op ) { // Enable routeCM routeControl.enableRouteCM(); } else if( RouterOperation.DISABLE_ROUTE_CM == op ) { // Disable routeCM routeControl.disableRouteCM(); } else if( RouterOperation.ENABLE_ROUTE_RESOLVER == op ) { // Enable routeResolver routeControl.enableRouteResolver(); } else if( RouterOperation.DISABLE_ROUTE_RESOLVER == op ) { // Disable routeResolver routeControl.disableRouteResolver(); } else if( RouterOperation.GET_ALL_ROUTES_INFO == op ) { // Get all route info List routes = routeControl.getAllRoutesInfo(); if (routes == null) { consoleMessage("Error - get all routes info failed"); return ShellApp.appMiscError; } println( "Routes for PeerGroup : " + getGroup() ); Iterator eachRoute = routes.iterator(); while (eachRoute.hasNext()) { RouteAdvertisement aRouteAdv = (RouteAdvertisement) eachRoute.next(); println( aRouteAdv.display() ); } } else if( RouterOperation.GET_ROUTE_INFO == op ) { // Get route info for a destination routeAdv = routeControl.getRouteInfo(pId); if (routeAdv == null) { consoleMessage("Error - No route found"); return ShellApp.appNoError; } println(routeAdv.display()); } else if( RouterOperation.DELETE_ROUTE == op ) { // Delete a route ret = routeControl.deleteRoute( pId); if (ret == RouteControl.FAILED) { consoleMessage("Error - Route delete failed"); return ShellApp.appMiscError; } if (ret == RouteControl.DIRECT_ROUTE) { consoleMessage("Error - Route delete failed as this is a direct route"); return ShellApp.appMiscError; } if (ret == RouteControl.INVALID_ROUTE) { consoleMessage("Error - Route delete failed as this is the peer route"); return ShellApp.appMiscError; } println("Delete route succeeded"); } else if( RouterOperation.ADD_ROUTE == op ) { // Add route ret = routeControl.addRoute(routeAdv); if (ret == RouteControl.FAILED) { consoleMessage("Error - Invalid route could not establish route"); return ShellApp.appMiscError; } if (ret == RouteControl.ALREADY_EXIST) { consoleMessage("Error - Route add failed as we already have a direct route"); return ShellApp.appMiscError; } if (ret == RouteControl.INVALID_ROUTE) { consoleMessage("Error - Route add failed cannot change our peer route"); return ShellApp.appMiscError; } println("Add route succeeded"); } else { consoleMessage("Error - unrecognized operation" ); } } catch (Exception ex) { printStackTrace("Error - failure performing operation", ex); } return ShellApp.appNoError; } public int syntaxError() { consoleMessage("Error - incorrect arguments"); return ShellApp.appParamError; } public String getDescription() { return "Display information about a peer's route info"; } public void help() { println("NAME"); println(" route - " + getDescription() ); println(" "); println("SYNOPSIS"); println(" route [-l] [info <peerID>|add <routeAdv>|delete <peerID>|status|enableCM|disableCM|enableResolver|disableResolver]"); println(" "); println("DESCRIPTION"); println(" "); println("route displays and manipulates information about the peer's "); println("route information."); println(" "); println("Direct routes are routes which the peer has a direct"); println("connection with. Gateway routes are routes that involved"); println("intermediary gateways (hops)."); println(""); println("OPTIONS"); println(" "); println(" [-l] Dispaly peer IDs as well as peer names"); println(" "); println("COMMANDS"); println(" "); println(" status : Router status info "); println(" local : Print local peer route info "); println(" info <peerID> : Obtain route information about a specific destination "); println(" add <env1> : Add new route information specified as a route advertisement"); println(" stored in the environment variable env1"); println(" delete <peerID> : Delete route information for that destination "); println(" enableCM : enable persistent route CM cache "); println(" disableCM : disable persistent route CM cache "); println(" enableResolver : enable dynamic route resolution "); println(" disableResolver : disable dynamic route resolution "); println(" "); println("EXAMPLE"); println(" "); println(" JXTA>route"); println(" "); println(" JXTA>route del urn:jxta:uuid-59616261646162614A787461503250330F5CE9DD8DE84079AA6F8C2C0F8B16DA03"); println(" Delete route succeeded"); println(" "); println(" "); println("This example displays all the route information"); println(" "); println("SEE ALSO"); println(" whoami peers"); } /** * Description of the Method * *@param id Description of Parameter *@return Description of the Returned Value */ private String idToName( ID id ) { String idstring = id.toString(); String name = (String) names.get( id ); if( null != name ) { return name; } try { Enumeration res; if( id instanceof PeerID ) { res = discovery.getLocalAdvertisements( DiscoveryService.PEER, "PID", idstring ); if( res.hasMoreElements() ) { name = ((PeerAdvertisement)res.nextElement()).getName(); } } else if( id instanceof PeerGroupID ) { res = discovery.getLocalAdvertisements( DiscoveryService.GROUP, "GID", idstring ); if( res.hasMoreElements() ) { name = ((PeerGroupAdvertisement)res.nextElement()).getName(); } } } catch( IOException failed ) { } if( null != name ) { names.put( id, name ); } else { name = "[unknown]"; } return name; } // from a string get a PeerID private static PeerID convertPeerID(String pid) { PeerID id = null; try { URI pID = new URI(pid); id = (PeerID) IDFactory.fromURI( pID ); } catch ( URISyntaxException badID ) { return null; } return id; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -