| Interface | osid.topology.TopologyRoutingSession | ||
|---|---|---|---|
| Implements | osid.OsidSession | ||
| Description | 
                 This session defines methods to route between nodes.  | ||
| Method | getGraphId | ||
| Description | 
                     Gets the   | ||
| Return | osid.id.Id | the  Graph Id  associated with this session  | |
| Compliance | mandatory | This method must be implemented. | |
| Method | getGraph | ||
| Description | 
                     Gets the   | ||
| Return | osid.topology.Graph | the graph | |
| Errors | OPERATION_FAILED | unable to complete request | |
| PERMISSION_DENIED | authorization failure | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | canTraverseTopology | ||
| Description | 
                     Tests if this user can traverse the topology. A return 
                    of true does not guarantee successful authorization. A 
                    return of false indicates that it is known all methods in 
                    this session will result in a   | ||
| Return | boolean |  false  if topology methods are not authorized,  true 
 otherwise  | |
| Compliance | mandatory | This method must be implemented. | |
| Method | useComparativeNodeView | ||
| Description | 
                     The returns from the traversal methods may omit or translate elements based on this session, such as authorization, and not result in an error. This view is used when greater interoperability is desired at the expense of precision.  | ||
| Compliance | mandatory | This method is must be implemented. | |
| Method | usePlenaryNodeView | ||
| Description | 
                     A complete view of the method returns is desired. Methods will return what is requested or result in an error. This view is used when greater precision is desired at the expense of interoperability.  | ||
| Compliance | mandatory | This method is must be implemented. | |
| Method | useFederatedGraphView | ||
| Description | 
                     Federates the view for methods in this session. A federated view will include edges in graphs which are children of this graph in the graph hierarchy.  | ||
| Compliance | mandatory | This method is must be implemented. | |
| Method | useIsolatedGraphView | ||
| Description | 
                     Isolates the view for methods in this session. An isolated view restricts retrievals to this graph only.  | ||
| Compliance | mandatory | This method is must be implemented. | |
| Method | findShortestPathByHops | ||
| Description | 
                     Gets all the edges forming shortest path by number of node hops between two nodes.  | ||
| Parameters | osid.id.Id | startNodeId | the starting node  Id   | 
osid.id.Id | endNodeId | the ending node  Id   | |
| Return | osid.topology.EdgeList | a list of edges | |
| Errors | NOT_FOUND |  startNodeId  or  endNodeId  is not found or not 
connected  |                 |
| NULL_ARGUMENT |  startNodeId  or  endNodeId  is  null 
  |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | findShortestPathByDistance | ||
| Description | 
                     Gets all the edges forming shortest path by total distance between two nodes.  | ||
| Parameters | osid.id.Id | startNodeId | the starting node  Id   | 
osid.id.Id | endNodeId | the ending node  Id   | |
| Return | osid.topology.EdgeList | a list of edges | |
| Errors | NOT_FOUND |  startNodeId  or  endNodeId  is not found or not 
connected  |                 |
| NULL_ARGUMENT |  startNodeId  or  endNodeId  is  null 
  |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | findCheapestPath | ||
| Description | 
                     Gets all the edges forming lowest cost path between two nodes.  | ||
| Parameters | osid.id.Id | startNodeId | the starting node  Id   | 
osid.id.Id | endNodeId | the ending node  Id   | |
| Return | osid.topology.EdgeList | a list of edges | |
| Errors | NOT_FOUND |  startNodeId  or  endNodeId  is not found or not 
connected  |                 |
| NULL_ARGUMENT |  startNodeId  or  endNodeId  is  null 
  |                 ||
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure | ||
| Compliance | mandatory | This method must be implemented. | |
| Method | areNodesConnected | ||
| Description | 
                     Tests if there is an active path between the two given nodes.  | ||
| Parameters | osid.id.Id | startNodeId | the starting node  Id   | 
osid.id.Id | endNodeId | the ending node  Id   | |
| Return | boolean |  true  if a path exists,  false  otherwise  | |
| Errors | NULL_ARGUMENT |  startNodeId  or  endNodeId  is  null 
  |                 |
| OPERATION_FAILED | unable to complete request | ||
| PERMISSION_DENIED | authorization failure | ||
| Compliance | mandatory | This method must be implemented. | |