private HashTree <object, Expression> ProcessDependencyOverrides(object[] dependencyOverrides)
        {
            if (dependencyOverrides == null && this.scopedInstances.IsEmpty)
            {
                return(null);
            }

            var result = new HashTree <object, Expression>();

            if (!this.scopedInstances.IsEmpty)
            {
                foreach (var scopedInstance in this.scopedInstances.Walk())
                {
                    result.Add(scopedInstance.Key, scopedInstance.Value.AsConstant(), false);
                }
            }

            if (dependencyOverrides == null)
            {
                return(result);
            }

            foreach (var dependencyOverride in dependencyOverrides)
            {
                var type       = dependencyOverride.GetType();
                var expression = dependencyOverride.AsConstant();

                result.Add(type, expression, false);

                foreach (var baseType in type.GetRegisterableInterfaceTypes().Concat(type.GetRegisterableBaseTypes()))
                {
                    result.Add(baseType, expression, false);
                }
            }

            return(result);
        }
예제 #2
0
        private void Job(int[][] dataSet, int k)
        {
            var tree = new HashTree(_maxSize);

            var stopWatch = new Stopwatch();

            for (int i = 0; i < dataSet.Length; i++)
            {
                if (i % K != k)
                {
                    continue;
                }

                stopWatch.Start();
                tree.Add(dataSet[i]);
                stopWatch.Stop();
                Print(i + 1, dataSet.Length, dataSet[i].Length, stopWatch.Elapsed.TotalSeconds);
                stopWatch.Restart();
            }

            _forest[k] = tree;

            tree.Save($"hash-{_maxSize}-{k}.tree");
        }
예제 #3
0
        // run test in batch mode
        private void RunTest(String testFile, String logFile, Boolean remoteStart, String remote_hosts_string)
        {
            FileStream reader = null;

            try
            {
                if (!File.Exists(testFile))
                {
                    println("Could not open " + testFile);
                    return;
                }
                //FileServer.getFileServer().setBaseForScript(f);

                reader = new FileStream(testFile, FileMode.Open, FileAccess.Read, FileShare.Read);
                log.Info("Loading file: " + testFile);

                HashTree tree = IOService.loadTree(reader);

                // Deliberate use of deprecated ctor
                NetMeterTreeModel treeModel = new NetMeterTreeModel(new Object());// Create non-GUI version to avoid headless problems
                NetMeterTreeNode  root      = (NetMeterTreeNode)treeModel.getRoot();
                treeModel.addSubTree(tree, root);

                // Hack to resolve ModuleControllers in non GUI mode
                SearchByType <ReplaceableController> replaceableControllers = new SearchByType <ReplaceableController>();
                tree.Traverse(replaceableControllers);
                List <ReplaceableController> replaceableControllersRes = replaceableControllers.GetSearchResults();

                foreach (ReplaceableController controller in replaceableControllersRes)
                {
                    controller.resolveReplacementSubTree(root);
                }

                // Remove the disabled items
                // For GUI runs this is done in Start.java
                ConvertSubTree(tree);

                ResultCollector summer         = null;
                String          summariserName = "Summariser";//$NON-NLS-1$
                log.Info("Creating summariser <" + summariserName + ">");
                println("Creating summariser <" + summariserName + ">");
                summer = new ResultCollector(summariserName);

                if (logFile != null)
                {
                    ResultCollector logger = new ResultCollector(summer);
                    logger.setFilename(logFile);
                    tree.Add(tree.GetArray()[0], logger);
                }
                else
                {
                    // only add Summariser if it can not be shared with the ResultCollector
                    if (summer != null)
                    {
                        tree.Add(tree.GetArray()[0], summer);
                    }
                }

                LinkedList <NetMeterEngine> engines = new LinkedList <NetMeterEngine>();
                tree.Put(tree.GetArray()[0], new ListenToTest(parent, (remoteStart && remoteStop) ? engines : null));
                println("Created the tree successfully using " + testFile);
                if (!remoteStart)
                {
                    NetMeterEngine engine = new StandardEngine();
                    engine.Configure(tree);
                    Int64 now = DateTime.Now.Ticks;
                    println("Starting the test @ " + DateTime.Now.ToString() + " (" + now + ")");
                    engine.RunTest();
                    engines.AddLast(engine);
                }
                //else
                //{
                //    java.util.StringTokenizer st = new java.util.StringTokenizer(remote_hosts_string, ",");//$NON-NLS-1$
                //    List<String> failingEngines = new ArrayList<String>(st.countTokens());
                //    while (st.hasMoreElements())
                //    {
                //        String el = (String) st.nextElement();
                //        println("Configuring remote engine for " + el);
                //        log.info("Configuring remote engine for " + el);
                //        JMeterEngine eng = doRemoteInit(el.trim(), tree);
                //        if (null != eng)
                //        {
                //            engines.add(eng);
                //        }
                //        else
                //        {
                //            failingEngines.add(el);
                //            println("Failed to configure "+el);
                //        }
                //    }
                //    if (engines.isEmpty())
                //    {
                //        println("No remote engines were started.");
                //        return;
                //    }
                //    if(failingEngines.size()>0) {
                //        throw new IllegalArgumentException("The following remote engines could not be configured:"+failingEngines);
                //    }
                //    println("Starting remote engines");
                //    log.Info("Starting remote engines");
                //    long now = System.currentTimeMillis();
                //    println("Starting the test @ "+new Date(now)+" ("+now+")");
                //    foreach (NetMeterEngine engine in engines)
                //    {
                //        engine.runTest();
                //    }
                //    println("Remote engines have been started");
                //    log.Info("Remote engines have been started");
                //}
                StartUdpDdaemon(engines);
            }
            catch (Exception e)
            {
                System.Console.WriteLine("Error in NonGUIDriver " + e.Message);
                log.Error("Error in NonGUIDriver", e);
            }
            finally
            {
                reader.Close();
            }
        }