protected function execute(InputInterface $input, OutputInterface $output) { $path = realpath($input->getOption('path')); $recursive = $input->getOption('recursive'); $outputFile = $input->getOption('storage'); $size = (int) $input->getOption('size'); $length = (int) $input->getOption('length'); $crawler = new FileCrawler($path, $recursive); $storage = new FileStorage($outputFile); $structure = new RedBlackSearchTree($storage, $size, $length); $crawler->walk([$structure, 'insert']); }
protected function execute(InputInterface $input, OutputInterface $output) { $path = realpath($input->getOption('path')); $recursive = $input->getOption('recursive'); $outputFile = $input->getOption('storage'); $size = (int) $input->getOption('size'); $length = (int) $input->getOption('length'); $c1 = (int) $input->getOption('c1'); $c2 = (int) $input->getOption('c2'); $crawler = new FileCrawler($path, $recursive); $storage = new FileStorage($outputFile); $structure = new QuadraticHashTable($storage, $size, $length); $structure->hashWithModifiers($c1, $c2); $crawler->walk([$structure, 'insert']); }
protected function execute(InputInterface $input, OutputInterface $output) { $outputFile = realpath($input->getArgument('storage')); $size = (int) $input->getOption('size'); $length = (int) $input->getOption('length'); $path = $input->getOption('path'); $recursive = $input->getOption('recursive'); $c1 = $input->getOption('c1'); $c2 = $input->getOption('c2'); $storage = new FileStorage($outputFile, 'r'); $crawler = new FileCrawler($path, $recursive); $structure = new QuadraticHashTable($storage, $size, $length); $structure->hashWithModifiers($c1, $c2); $start = microtime(true); $n = 0; $crawler->walk(function ($file) use($structure, $output, &$n) { $n++; step(); $node = $structure->search($file); step(); if ($node === null) { step(); return $output->writeln("<error>{$file} was not found!</error>"); } step(); $count = $structure->value($node); step(); if ($count > 1) { step(); return $output->writeln("<info>{$file} occurs {$count} times</info>"); } step(); return $output->writeln("{$file} occurs only once"); }); $time = microtime(true) - $start; $steps = step(); $output->writeln(str_repeat('-', 15)); $output->writeln(sprintf('Executed in %.3f µs', $time)); $output->writeln("Steps executed {$steps}"); $output->writeln("For {$n} files"); }