/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2010,2011,2012, by the GROMACS development team, led by
- * David van der Spoel, Berk Hess, Erik Lindahl, and including many
- * others, as listed in the AUTHORS file in the top-level source
- * directory and at http://www.gromacs.org.
+ * Copyright (c) 2010,2011,2012,2013,2014, 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
#include <string>
#include <vector>
-#include "abstractoption.h"
-#include "options.h"
+#include "gromacs/options/abstractoption.h"
+#include "gromacs/options/optionmanagercontainer.h"
+#include "gromacs/options/options.h"
+#include "gromacs/utility/uniqueptr.h"
namespace gmx
{
class AbstractOptionStorage;
-/*! \internal \brief
+/*! \internal
+ * \brief
* Private implementation class for Options.
*
* Note that in addition to Options, the OptionsAssigner and OptionsIterator
class Options::Impl
{
public:
+ //! Smart pointer for managing an AbstractOptionStorage object.
+ typedef gmx_unique_ptr<AbstractOptionStorage>::type
+ AbstractOptionStoragePointer;
//! Convenience type for list of sections.
typedef std::vector<Options *> SubSectionList;
//! Convenience type for list of options.
std::string title_;
//! Full description for the Options object.
std::string description_;
+ /*! \brief
+ * Option managers set for this collection.
+ *
+ * This is non-empty only for the top-level Options object.
+ */
+ OptionManagerContainer managers_;
/*! \brief
* List of subsections, in insertion order.
*