public boolean execute()
{
	BufferedReader in = null;
	if (filename != null) {
		try {
			in = new BufferedReader(new FileReader(filename));
		} catch (FileNotFoundException e) {
			throw new IllegalParameterException(prefix + "." + PAR_FILE, filename
					+ " does not exist");
		}
	} else {
		in = new BufferedReader( new InputStreamReader(
						ClassLoader.getSystemResourceAsStream("t-king.map")
					)	);
	}
		
	// XXX If the file format is not correct, we will get quite obscure
	// exceptions. To be improved.

	String line = null;
	// Skip initial lines
	int size = 0;
	try {
		while ((line = in.readLine()) != null && !line.startsWith("node"));
		while (line != null && line.startsWith("node")) {
			size++;
			line = in.readLine();
		}
	} catch (IOException e) {
	}
	E2ENetwork.reset(size, true);
	System.err.println("KingParser: read " + size + " entries");
	try {
		do {
			StringTokenizer tok = new StringTokenizer(line, ", ");
			int n1 = Integer.parseInt(tok.nextToken()) - 1;
			int n2 = Integer.parseInt(tok.nextToken()) - 1;
			int latency = (int) (Double.parseDouble(tok.nextToken()) * ratio);
			E2ENetwork.setLatency(n1, n2, latency);

			line = in.readLine();
		} while (line != null);
	} catch (IOException e) {
	}

	return false;
}