Definition at line 42 of file RoutingEngine.java.
Public Member Functions | |
| RoutingEngine () | |
| void | addDefaultRoute (String FQDN, int metric) |
| void | addRealmRoute (String realm, String FQDN, int metric) |
| Peer | getRoute (DiameterMessage msg, PeerManager peerManager) |
Package Attributes | |
| Vector< RoutingEntry > | defaultRoutes |
| TreeMap< String, RoutingRealm > | realms |
| de.fhg.fokus.diameter.DiameterPeer.routing.RoutingEngine.RoutingEngine | ( | ) |
Definition at line 47 of file RoutingEngine.java.
References de.fhg.fokus.diameter.DiameterPeer.routing.RoutingEngine.defaultRoutes, and de.fhg.fokus.diameter.DiameterPeer.routing.RoutingEngine.realms.
00048 { 00049 defaultRoutes = new Vector<RoutingEntry>(); 00050 realms = new TreeMap<String, RoutingRealm>(); 00051 }
| void de.fhg.fokus.diameter.DiameterPeer.routing.RoutingEngine.addDefaultRoute | ( | String | FQDN, | |
| int | metric | |||
| ) |
Definition at line 53 of file RoutingEngine.java.
References de.fhg.fokus.diameter.DiameterPeer.routing.RoutingEngine.defaultRoutes.
Referenced by de.fhg.fokus.diameter.DiameterPeer.DiameterPeer.initRoutingTable().
00053 { 00054 RoutingEntry re = new RoutingEntry(FQDN,metric); 00055 for (RoutingEntry i : defaultRoutes) 00056 if (i.metric<=metric){ 00057 defaultRoutes.add(defaultRoutes.indexOf(i), re); 00058 break; 00059 } 00060 }
| void de.fhg.fokus.diameter.DiameterPeer.routing.RoutingEngine.addRealmRoute | ( | String | realm, | |
| String | FQDN, | |||
| int | metric | |||
| ) |
Definition at line 62 of file RoutingEngine.java.
References de.fhg.fokus.diameter.DiameterPeer.routing.RoutingRealm.addRoute(), and de.fhg.fokus.diameter.DiameterPeer.routing.RoutingEngine.realms.
Referenced by de.fhg.fokus.diameter.DiameterPeer.DiameterPeer.initRoutingTable().
00063 { 00064 RoutingRealm rr; 00065 rr = realms.get(realm); 00066 if (rr==null){ 00067 rr = new RoutingRealm(realm); 00068 this.realms.put(realm, rr); 00069 } 00070 rr.addRoute(FQDN,metric); 00071 }
| Peer de.fhg.fokus.diameter.DiameterPeer.routing.RoutingEngine.getRoute | ( | DiameterMessage | msg, | |
| PeerManager | peerManager | |||
| ) |
Definition at line 73 of file RoutingEngine.java.
References de.fhg.fokus.diameter.DiameterPeer.routing.RoutingEngine.defaultRoutes, de.fhg.fokus.diameter.DiameterPeer.data.DiameterMessage.findAVP(), de.fhg.fokus.diameter.DiameterPeer.data.AVP.getData(), de.fhg.fokus.diameter.DiameterPeer.peer.PeerManager.getPeerByFQDN(), de.fhg.fokus.diameter.DiameterPeer.routing.RoutingEngine.realms, and de.fhg.fokus.diameter.DiameterPeer.peer.Peer.state.
Referenced by de.fhg.fokus.diameter.DiameterPeer.DiameterPeer.sendMessage().
00073 { 00074 String destinationHost=null,destinationRealm=null; 00075 AVP avp; 00076 Peer p; 00077 avp = msg.findAVP(AVP.Destination_Host); 00078 if (avp!=null) destinationHost = new String(avp.getData()); 00079 if (destinationHost!=null && destinationHost.length()>0){ 00080 p = peerManager.getPeerByFQDN(destinationHost); 00081 if (p!=null && (p.state==StateMachine.I_Open || p.state!=StateMachine.R_Open)) 00082 return p; 00083 } 00084 avp = msg.findAVP(AVP.Destination_Realm); 00085 if (avp!=null) destinationRealm = new String(avp.getData()); 00086 if (destinationRealm!=null && destinationRealm.length()>0){ 00087 RoutingRealm rr = realms.get(destinationRealm); 00088 if (rr!=null){ 00089 for (RoutingEntry i : rr.routes) { 00090 p = peerManager.getPeerByFQDN(i.FQDN); 00091 if (p!=null && (p.state==StateMachine.I_Open || p.state!=StateMachine.R_Open)) 00092 return p; 00093 } 00094 } 00095 } 00096 for (RoutingEntry i : defaultRoutes) { 00097 p = peerManager.getPeerByFQDN(i.FQDN); 00098 if (p!=null && (p.state==StateMachine.I_Open || p.state!=StateMachine.R_Open)) 00099 return p; 00100 } 00101 return null; 00102 }
TreeMap<String,RoutingRealm> de.fhg.fokus.diameter.DiameterPeer.routing.RoutingEngine.realms [package] |
1.5.2