/* ============================================================================= * .CTOR * ============================================================================= */ public Launcher(string[] args) { redBlackFactory = (IRedBlackFactory)workerFactory; ParseParameters(args); PrintParameters(); SetupRedBlack(); workers = new IWorker[nrOfThreads]; int i; for (i = 0; i < nrOfThreads; i++) { workers[i] = workerFactory.MakeWorker(); workers[i].RedBlack = rbTree; workers[i].NumberOfNodesPerTrx = numberOfNodesPerTrx; workers[i].Capacity = capacity; workers[i].UpdatesTax = updatesTax; workers[i].ValueToWrite = valueToWrite; workers[i].WorkerIterationPerformedEvent += new WorkerListener(workers[i]).Update; } }
private void ParseParameters(string[] args) { string currentArg, optionValue; for (int i = 0; i < args.Length; i++) { currentArg = args[i++]; optionValue = args[i]; switch (currentArg) { case "-t": runningSecs = Int32.Parse(optionValue); break; case "-w": nrOfThreads = Int32.Parse(optionValue); break; case "-x": executor = (IExecutor)Activator.CreateInstance(Type.GetType(optionValue)); break; case "-n": numberOfNodesPerTrx = Int32.Parse(optionValue); break; case "-f": workerFactory = (IWorkerFactory)Activator.CreateInstance(Type.GetType(optionValue)); redBlackFactory = (IRedBlackFactory)workerFactory; break; case "-u": updatesTax = Int32.Parse(optionValue); break; case "-v": valueToWrite = Int32.Parse(optionValue); break; } } }