int main(int argc, char** argv) { std::vector<Argument> arguments = createArguments(); ArgumentParser argumentParser; try { argumentParser.parse(argc, argv, arguments); } catch(const GeneralException& exception) { std::cout << exception.what() << std::endl; showUsage(arguments); return -1; } if (argumentParser.isArgumentPresent('h')) { showUsage(arguments); return 0; } if (!areAllMandatoryArgumentsPresent(argumentParser)) { showUsage(arguments); return -1; } try { FractalParser parser; FractalParams params = parser.readFractal(argumentParser.getStringArgument('f')); Database* database; int hardwareConcurrency = std::thread::hardware_concurrency(); if (hardwareConcurrency == 0) { hardwareConcurrency = 1; } int numberOfThreads = argumentParser.getIntArgumentOrReturnDefault('t', hardwareConcurrency); bool saveTemporaryResult = !argumentParser.isArgumentPresent('s'); std::cout << "Number of threads: " << numberOfThreads << std::endl; if (argumentParser.isArgumentPresent('b')) { database = new Database(); } else { database = new Database(argumentParser.getStringArgumentOrReturnDefault('d', "points.ff")); } ValueProvider* valueProvider = new ValueProvider(database, params, numberOfThreads); valueProvider->setIterationCountToConsiderInteresting(argumentParser.getIntArgumentOrReturnDefault('i', 100)); if (argumentParser.isArgumentPresent('o')) { valueProvider->setReadOnlyFile(true); } if (argumentParser.isArgumentPresent('b')) { valueProvider->setNoDb(true); } for (double d = params.startPower; d <= params.endPower; d+= params.increment) { valueProvider->deleteSavedValues(); Fractal fractal(valueProvider, params); fractal.draw(d, numberOfThreads, saveTemporaryResult); } delete database; delete valueProvider; } catch(const GeneralException& ex) { std::cout << "Exception occured: " << ex.what() << std::endl; return -1; } return 0; }
void LibConfigProgram::displayInformationAboutYuniVersion() { LibConfig::VersionInfo::Settings* version = pVersionList.selected(); if (version) { if (!displayInformationAboutYuniVersion(*version)) return; createArguments(*version); } else { pExitStatus = 1; if (pOptPrintErrors) std::cout << "Error: There is no available version of the yuni library\n"; } }