/** * Creates a direct connection to the given peer identifier, which, in the case of direct connect, is simply the * peer's hostname or IP address. */ public TerkUserPrx connectToPeer(string peerIdentifier) { log("connectToPeer called"); peerIdentifier = peerIdentifier.Replace("localhost", "127.0.0.1"); HostAndPort hostAndPort = createHostAndPort(peerIdentifier); if (peerHostAndPortToProxyMap.ContainsKey(hostAndPort)) { throw new DuplicateConnectionException("Already connected to peer [" + hostAndPort + "]"); } log("Not connected... creating new connection"); TerkUserPrx peerProxy; ObjectPrx objectPrx; try { objectPrx = getPeerProxy(hostAndPort, new Identity(MAIN_SERVANT_PROXY_IDENTITY_NAME, "")); if (objectPrx != null) { peerProxy = TerkUserPrxHelper.uncheckedCast(objectPrx); peerHostAndPortToProxyMap.Add(hostAndPort, peerProxy); //start pinger pinger = startPinger(new PeerPingerState(hostAndPort, objectPrx, this)); peerHostAndPortToPingerMap.Add(hostAndPort, pinger); } else { throw new PeerConnectionFailedException("getPeerProxy() returned null peer proxy for peer [" + hostAndPort + "]"); } } catch (Exception e) { throw new PeerConnectionFailedException("Failed to create connection to peer [" + hostAndPort + "]: " + e); } HostInformation hostInformation = HostInformation.extractHostInformation(objectPrx.ice_getConnection().ToString()); string endpointKey = objectAdapterName + "." + ENDPOINT_PROPERTY_KEY; string endpointValue = communicator.getProperties().getProperty(PROTOCOL_PROPERTY_KEY) + " -h " + hostInformation.getLocalHost() + " -p " + hostInformation.getLocalPort(); communicator.getProperties().setProperty(endpointKey, endpointValue); peerProxy.ice_getConnection().setAdapter(addObjectAdapter(getObjectAdapterName())); servants = this.servantFactory.createServants(this); // notify the peer of the connection notifyPeerOfConnection(peerProxy); return peerProxy; }
private void selectServant(Servants servant) { switch (servant) { case Servants.Caesar: name = "Gaius Julius Caesar"; break; case Servants.Gilles: name = "Gilles de Rais"; break; case Servants.RobinHood: name = "Robin Hood"; break; case Servants.Euryale: name = "Euryale"; break; case Servants.CuChulainn: name = "Cu Chulainn"; break; case Servants.CuPrototype: name = "Cu Chulainn [Prototype]"; break; case Servants.Romulus: name = "Romulus"; break; case Servants.Medusa: name = "Medusa"; break; case Servants.Boudica: name = "Boudica"; break; case Servants.Ushiwakamaru: name = "Ushiwakamaru"; break; case Servants.Alexander: name = "Alexander"; break; case Servants.Medea: name = "Medea"; break; case Servants.Mephistopheles: name = "Mephistopheles"; break; case Servants.JingKe: name = "Jing Ke"; break; case Servants.LuBu: name = "Lu Bu Fengxian"; break; case Servants.Darius: name = "Darius III"; break; case Servants.Kiyohime: name = "Kiyohime"; break; case Servants.David: name = "David"; break; case Servants.Hektor: name = "Hektor"; break; case Servants.Siegfried: name = "Siegfried"; break; case Servants.Chevalier: name = "Chevalier d'Eon"; break; case Servants.Emiya: name = "Emiya"; break; case Servants.Atalante: name = "Atalante"; break; case Servants.Elizabeth: name = "Elizabeth Bathory"; break; case Servants.Marie: name = "Marie Antoinette"; break; case Servants.Martha: name = "Martha"; break; case Servants.Stheno: name = "Stheno"; break; case Servants.Carmilla: name = "Carmilla"; break; case Servants.Heracles: name = "Heracles"; break; case Servants.Lancelot: name = "Lancelot"; break; case Servants.TamamoCat: name = "Tamamo Cat"; break; case Servants.AnneMary: name = "Anne Bonny & Mary Read"; break; case Servants.Altria: name = "Altria Pendragon"; break; case Servants.Altera: name = "Altera"; break; case Servants.Waver: name = "Zhuge Liang [El-Melloi II]"; break; case Servants.Vlad: name = "Vlad III"; break; case Servants.Jeanne: name = "Jeanne d'Arc"; break; case Servants.Orion: name = "Orion"; break; case Servants.TamamoNoMae: name = "Tamamo no Mae"; break; case Servants.Drake: name = "Francis Drake"; break; default: name = "Servant not found!"; break; } }