/* * Author: Wenbing Zhao * Last Modified: 3/31/2007 * For EEC484/584 Project */ import java.io.IOException; import java.io.InputStream; import java.util.Properties; public class LinkStateConfig { private static final String PROPERTY_FILE = "LinkState.properties"; private Properties m_properties = null; private static LinkStateConfig instance = new LinkStateConfig(); private DenseRoutesMap m_routeMap = null; private int m_networkSize = 0; private Node m_aliceRouter = null; private Node m_bobRouter = null; private int m_alicePort = 0; private int m_bobPort = 0; private LinkStateConfig() { m_properties = new Properties(); loadProperties(); } public static LinkStateConfig getInstance() { return instance; } public int getNetworkSize() { return m_networkSize; } public DenseRoutesMap getRoutesMap() { return m_routeMap; } public Node getAliceRouter() {return m_aliceRouter; } public Node getBobRouter() {return m_bobRouter; } public int getAlicePort() { return m_alicePort; } public int getBobPort() { return m_bobPort; } private void loadProperties() { InputStream in = getClass().getClassLoader().getResourceAsStream( PROPERTY_FILE); try { m_properties.load(in); in.close(); } catch (IOException e) { e.printStackTrace(); throw new RuntimeException(e); } String networkSizeStr = m_properties.getProperty("network.size"); if(null == networkSizeStr) { System.err.println("Illegal linkstate config"); System.exit(1); } try { m_networkSize = Integer.parseInt(networkSizeStr); }catch(Exception e) { System.err.println("Illegal linkstate config"); System.exit(1); } if(m_networkSize <= 1 || m_networkSize > 25) { System.err.println("Illegal linkstate config"); System.exit(1); } System.out.println("newtork size "+m_networkSize); m_routeMap = new DenseRoutesMap(m_networkSize); String topo = m_properties.getProperty("topology"); if(null == topo) { System.err.println("Illegal linkstate config"); System.exit(1); } String[] links = topo.split(","); for(int i=0; i