From: Maxim Koltsov Date: Tue, 28 Jul 2015 15:58:17 +0000 (+0300) Subject: Adapt to latest changes in GROMACS X-Git-Url: http://biod.pnpi.spb.ru/gitweb/?p=alexxy%2Fgromacs.git;a=commitdiff_plain;h=c6c5c9ab00bf44657409746eff80fc1afa1ca2de Adapt to latest changes in GROMACS Introduce IOptionsContainer class, fix changed method signatures. --- diff --git a/src/gromacs/trajectoryanalysis/cmdlinerunner.cpp b/src/gromacs/trajectoryanalysis/cmdlinerunner.cpp index 6a8ebfef9d..e70fafa138 100644 --- a/src/gromacs/trajectoryanalysis/cmdlinerunner.cpp +++ b/src/gromacs/trajectoryanalysis/cmdlinerunner.cpp @@ -111,17 +111,15 @@ TrajectoryAnalysisCommandLineRunner::Impl::parseOptions( FileNameOptionManager fileoptManager; SelectionOptionManager seloptManager(selections); Options options(NULL, NULL); + IOptionsContainer &commonOptions = options.addGroup(); + IOptionsContainer &moduleOptions = options.addGroup(); options.addManager(&fileoptManager); options.addManager(&seloptManager); - if (full) { - IOptionsContainer &commonOptions = options.addGroup(); - } - IOptionsContainer &moduleOptions = options.addGroup(); module_->initOptions(&moduleOptions, settings); if (full) { - common->initOptions(&commonOptions); + common->initOptions(&commonOptions); } selections->initOptions(&commonOptions); @@ -135,7 +133,7 @@ TrajectoryAnalysisCommandLineRunner::Impl::parseOptions( } if (full) { - common->optionsFinished(); + common->optionsFinished(); } module_->optionsFinished(settings); diff --git a/src/python/sip/options/Options.sip b/src/python/sip/options/Options.sip index 348af77f8a..f70db48284 100644 --- a/src/python/sip/options/Options.sip +++ b/src/python/sip/options/Options.sip @@ -41,6 +41,7 @@ %Include options.sip %Include abstractoption.sip +%Include ioptionscontainer.sip %Include pyoptionsholder.sip // This has to be here, instead of 'gromacs.Selection', because otherwise we'll get circular dependencies between sip modules diff --git a/src/python/sip/options/abstractoption.sip b/src/python/sip/options/abstractoption.sip index df74dfcbe2..0861e92491 100644 --- a/src/python/sip/options/abstractoption.sip +++ b/src/python/sip/options/abstractoption.sip @@ -33,7 +33,7 @@ * the research papers on the package. Check out http://www.gromacs.org. */ -class AbstractOption /NoDefaultCtors/ { +class AbstractOption /NoDefaultCtors,Abstract/ { %TypeHeaderCode #include using gmx::AbstractOption; diff --git a/src/python/sip/options/ioptionscontainer.sip b/src/python/sip/options/ioptionscontainer.sip new file mode 100644 index 0000000000..c1c88e35f5 --- /dev/null +++ b/src/python/sip/options/ioptionscontainer.sip @@ -0,0 +1,49 @@ +/* + * This file is part of the GROMACS molecular simulation package. + * + * Copyright (c) 2015 by the GROMACS development team, led by + * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl, + * and including many others, as listed in the AUTHORS file in the + * top-level source directory and at http://www.gromacs.org. + * + * GROMACS is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * GROMACS is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with GROMACS; if not, see + * http://www.gnu.org/licenses, or write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * If you want to redistribute modifications to GROMACS, please + * consider that scientific software is very special. Version + * control is crucial - bugs must be traceable. We will be happy to + * consider code for inclusion in the official distribution, but + * derived work must not be called official GROMACS. Details are found + * in the README & COPYING files - if they are missing, get the + * official version at http://www.gromacs.org. + * + * To help us fund GROMACS development, we humbly ask that you cite + * the research papers on the package. Check out http://www.gromacs.org. + */ + +class OptionInfo /NoDefaultCtors/; + +class IOptionsContainer /NoDefaultCtors/ { +%TypeHeaderCode + +#include +using gmx::Options; +%End + +public: + virtual OptionInfo *addOption(const AbstractOption &settings) = 0; +private: + virtual ~IOptionsContainer(); +}; diff --git a/src/python/sip/options/options.sip b/src/python/sip/options/options.sip index 077ac6536c..115760eee3 100644 --- a/src/python/sip/options/options.sip +++ b/src/python/sip/options/options.sip @@ -57,7 +57,6 @@ public: void addSubSection (Options *section); void addOption(const AbstractOption &settings); - bool isSet(const char *name) const; void finish(); private: Options(const Options &other); diff --git a/src/python/sip/trajectoryanalysis/analysismodule.sip b/src/python/sip/trajectoryanalysis/analysismodule.sip index a10cafface..504b6e38b2 100644 --- a/src/python/sip/trajectoryanalysis/analysismodule.sip +++ b/src/python/sip/trajectoryanalysis/analysismodule.sip @@ -164,8 +164,8 @@ class TrajectoryAnalysisModule /VirtualErrorHandler=vehandler/ { using namespace gmx; %End public: - virtual void initOptions(Options *options, TrajectoryAnalysisSettings *settings) = 0; - virtual void optionsFinished(Options *options, TrajectoryAnalysisSettings *settings); + virtual void initOptions(IOptionsContainer *options, TrajectoryAnalysisSettings *settings) = 0; + virtual void optionsFinished(TrajectoryAnalysisSettings *settings); virtual void initAnalysis(const TrajectoryAnalysisSettings &settings, const TopologyInformation &top) = 0; virtual void initAfterFirstFrame(const TrajectoryAnalysisSettings &settings, const t_trxframe &fr); // virtual TrajectoryAnalysisModuleDataPointer startFrames (const AnalysisDataParallelOptions &opt, const SelectionCollection &selections);