void parseOptions(TrajectoryAnalysisSettings *settings,
TrajectoryAnalysisRunnerCommon *common,
SelectionCollection *selections,
- int *argc, char *argv[], bool full=true);
+ int *argc, char *argv[], bool full = true);
TrajectoryAnalysisModule *module_;
bool bUseDefaultGroups_;
FileNameOptionManager fileoptManager;
SelectionOptionManager seloptManager(selections);
Options options(NULL, NULL);
- Options moduleOptions(module_->name(), module_->description());
- Options commonOptions("common", "Common analysis control");
- Options selectionOptions("selection", "Common selection control");
+ IOptionsContainer &commonOptions = options.addGroup();
+ IOptionsContainer &moduleOptions = options.addGroup();
options.addManager(&fileoptManager);
options.addManager(&seloptManager);
- if (full) {
- options.addSubSection(&commonOptions);
- }
- options.addSubSection(&selectionOptions);
- options.addSubSection(&moduleOptions);
module_->initOptions(&moduleOptions, settings);
- if (full) {
+ if (full)
+ {
common->initOptions(&commonOptions);
}
- selections->initOptions(&selectionOptions);
+ selections->initOptions(&commonOptions);
{
CommandLineParser parser(&options);
options.finish();
}
- if (full) {
- common->optionsFinished(&commonOptions);
+ if (full)
+ {
+ common->optionsFinished();
}
- module_->optionsFinished(&moduleOptions, settings);
+ module_->optionsFinished(settings);
common->initIndexGroups(selections, bUseDefaultGroups_);
const TopologyInformation &topology = common.topologyInformation();
module->initAnalysis(settings, topology);
- TrajectoryAnalysisModule::Batch batch = module->getBatch();
+ TrajectoryAnalysisModule::Batch batch = module->getBatch();
std::vector<SelectionCollection*> batchSelections;
- std::vector<Impl*> impls;
- for (size_t i = 0; i < batch.size(); i++) {
+ std::vector<Impl*> impls;
+ for (size_t i = 0; i < batch.size(); i++)
+ {
TrajectoryAnalysisModule *bmodule = batch[i];
batchSelections.push_back(new SelectionCollection());
impls.push_back(new Impl(bmodule));
std::vector<char*> modArgv = module->getArgv(i);
- int modArgc = modArgv.size();
+ int modArgc = modArgv.size();
impls.back()->parseOptions(&settings, &common, batchSelections.back(), &modArgc, modArgv.data(), false);
batch[i]->initAnalysis(settings, topology);
TrajectoryAnalysisModuleDataPointer pdata(
module->startFrames(dataOptions, selections));
- std::vector<AnalysisDataParallelOptions> batchOptions;
+ std::vector<AnalysisDataParallelOptions> batchOptions;
std::vector<TrajectoryAnalysisModuleDataPointer> batchDataPointers;
- for (size_t i = 0; i < batch.size(); i++) {
+ for (size_t i = 0; i < batch.size(); i++)
+ {
batch[i]->initAfterFirstFrame(settings, common.frame());
batchOptions.push_back(AnalysisDataParallelOptions());
batchDataPointers.push_back(batch[i]->startFrames(
- batchOptions.back(), *batchSelections[i]));
+ batchOptions.back(), *batchSelections[i]));
}
do
set_pbc(ppbc, topology.ePBC(), frame.box);
}
- for (size_t i = 0; i < batch.size(); i++) {
+ for (size_t i = 0; i < batch.size(); i++)
+ {
batchSelections[i]->evaluate(&frame, ppbc);
batch[i]->analyzeFrame(nframes, frame, ppbc, batchDataPointers[i].get());
batch[i]->finishFrameSerial(nframes);
++nframes;
}
while (common.readNextFrame());
- for (size_t i = 0; i < batch.size(); i++) {
+ for (size_t i = 0; i < batch.size(); i++)
+ {
batch[i]->finishFrames(batchDataPointers[i].get());
- if (batchDataPointers[i].get() != NULL) {
+ if (batchDataPointers[i].get() != NULL)
+ {
batchDataPointers[i]->finish();
}
batchDataPointers[i].reset();
}
// Restore the maximal groups for dynamic selections.
- for (size_t i = 0; i < batch.size(); i++) {
+ for (size_t i = 0; i < batch.size(); i++)
+ {
batchSelections[i]->evaluateFinal(nframes);
batch[i]->finishAnalysis(nframes);
batch[i]->writeOutput();
SelectionOptionManager seloptManager(&selections);
Options options(NULL, NULL);
- Options moduleOptions(impl_->module_->name(), impl_->module_->description());
- Options commonOptions("common", "Common analysis control");
- Options selectionOptions("selection", "Common selection control");
options.addManager(&seloptManager);
- options.addSubSection(&commonOptions);
- options.addSubSection(&selectionOptions);
- options.addSubSection(&moduleOptions);
+ IOptionsContainer &commonOptions = options.addGroup();
+ IOptionsContainer &moduleOptions = options.addGroup();
impl_->module_->initOptions(&moduleOptions, &settings);
common.initOptions(&commonOptions);
- selections.initOptions(&selectionOptions);
+ selections.initOptions(&commonOptions);
CommandLineHelpWriter(options)
- .setShowDescriptions(true)
+ .setHelpText(settings.helpText())
.setTimeUnitString(settings.timeUnitManager().timeUnitAsString())
.writeHelp(context);
}
virtual void writeHelp(const CommandLineHelpContext &context) const;
private:
- const char *name_;
- const char *description_;
- bool hasFunction_;
- ModuleFactoryMethod factory_;
+ const char *name_;
+ const char *description_;
+ bool hasFunction_;
+ ModuleFactoryMethod factory_;
ModuleFactoryFunctor *functor_;
GMX_DISALLOW_COPY_AND_ASSIGN(RunnerCommandLineModule);
int TrajectoryAnalysisCommandLineRunner::Impl::RunnerCommandLineModule::run(
int argc, char *argv[])
{
- TrajectoryAnalysisModulePointer module(hasFunction_? factory_() : (*functor_)());
+ TrajectoryAnalysisModulePointer module(hasFunction_ ? factory_() : (*functor_)());
TrajectoryAnalysisCommandLineRunner runner(module.get());
return runner.run(argc, argv);
}
void TrajectoryAnalysisCommandLineRunner::Impl::RunnerCommandLineModule::writeHelp(
const CommandLineHelpContext &context) const
{
- TrajectoryAnalysisModulePointer module(hasFunction_? factory_() : (*functor_)());
+ TrajectoryAnalysisModulePointer module(hasFunction_ ? factory_() : (*functor_)());
TrajectoryAnalysisCommandLineRunner runner(module.get());
runner.writeHelp(context);
}