Adapt to latest changes in GROMACS
authorMaxim Koltsov <maks@omrb.pnpi.spb.ru>
Tue, 28 Jul 2015 15:58:17 +0000 (18:58 +0300)
committerMaxim Koltsov <maks@omrb.pnpi.spb.ru>
Tue, 28 Jul 2015 15:58:17 +0000 (18:58 +0300)
Introduce IOptionsContainer class, fix changed method signatures.

src/gromacs/trajectoryanalysis/cmdlinerunner.cpp
src/python/sip/options/Options.sip
src/python/sip/options/abstractoption.sip
src/python/sip/options/ioptionscontainer.sip [new file with mode: 0644]
src/python/sip/options/options.sip
src/python/sip/trajectoryanalysis/analysismodule.sip

index 6a8ebfef9d4aab29d649babe48e225f999a72290..e70fafa138ae4b2c78dba26d9b992aa8c8e0ae64 100644 (file)
@@ -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);
 
index 348af77f8a96195ac3ae9e4f682e9f416565630c..f70db482845bf9494a200455f9319e3561ca4e4c 100644 (file)
@@ -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
index df74dfcbe25faf6113ae3ce00f187c9984044a56..0861e9249130ccffd3d36873697bda072b5f74c3 100644 (file)
@@ -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 <gromacs/options/abstractoption.h>
 using gmx::AbstractOption;
diff --git a/src/python/sip/options/ioptionscontainer.sip b/src/python/sip/options/ioptionscontainer.sip
new file mode 100644 (file)
index 0000000..c1c88e3
--- /dev/null
@@ -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 <gromacs/options/options.h>
+using gmx::Options;
+%End
+
+public:
+    virtual OptionInfo *addOption(const AbstractOption &settings) = 0;
+private:
+    virtual ~IOptionsContainer();
+};
index 077ac6536c46964d2920fe1473efd63d735b1744..115760eee3e52b94f2cb74dc2c1950ea663a5546 100644 (file)
@@ -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);
index a10caffaceb03d511e8cb6015c8fdcbfb1a649b4..504b6e38b2612a9f4410df9895cac7a05913945b 100644 (file)
@@ -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);