/** * Sets up all the network links to be simulated, * * @param datacenters the datacenters being simulated. * @param brokers the brokers being simulated. * @since 1.0 */ static void setUpNetworkLinks( HashMap<String, PowerDatacenter> datacenters, HashMap<String, DatacenterBroker> brokers) { NetworkMapEntryDAO neDAO = new NetworkMapEntryDAO(); /* * Establish all links whose source is a datacenter */ DatacenterRegistryDAO drDAO = new DatacenterRegistryDAO(); String[] datacenterNames = drDAO.getAllDatacentersNames(); for (String source : datacenterNames) { PowerDatacenter src = datacenters.get(source); List<NetworkMapEntry> destinationList = neDAO.getListOfDestinations(source); for (NetworkMapEntry entry : destinationList) { String destinationName = entry.getDestination(); if (drDAO.getDatacenterRegistry(destinationName) != null) { // destination is a datacenter PowerDatacenter dest = datacenters.get(destinationName); NetworkTopology.addLink( src.getId(), dest.getId(), entry.getBandwidth(), entry.getLatency()); } else { // destination is a customer DatacenterBroker dest = brokers.get(destinationName); NetworkTopology.addLink( src.getId(), dest.getId(), entry.getBandwidth(), entry.getLatency()); } } } /* * Establish all links whose source is a customer */ CustomerRegistryDAO crDAO = new CustomerRegistryDAO(); String[] customerNames = crDAO.getCustomersNames(); for (String source : customerNames) { DatacenterBroker src = brokers.get(source); List<NetworkMapEntry> destinationList = neDAO.getListOfDestinations(source); for (NetworkMapEntry entry : destinationList) { String destinationName = entry.getDestination(); if (drDAO.getDatacenterRegistry(destinationName) != null) { // destination is a datacenter PowerDatacenter dest = datacenters.get(destinationName); NetworkTopology.addLink( src.getId(), dest.getId(), entry.getBandwidth(), entry.getLatency()); } else { // destination is a customer DatacenterBroker dest = brokers.get(destinationName); NetworkTopology.addLink( src.getId(), dest.getId(), entry.getBandwidth(), entry.getLatency()); } } } }