/*
* 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
#ifndef GMX_SELECTION_SELECTIONCOLLECTION_H
#define GMX_SELECTION_SELECTIONCOLLECTION_H
+#include <cstdio>
+
#include <string>
#include <vector>
-#include "../legacyheaders/typedefs.h"
-
-#include "../onlinehelp/helptopicinterface.h"
-#include "../utility/common.h"
-#include "selection.h" // For gmx::SelectionList
+#include "gromacs/legacyheaders/types/oenv.h"
+#include "gromacs/selection/selection.h" // For gmx::SelectionList
+#include "gromacs/utility/common.h"
struct gmx_ana_indexgrps_t;
+struct t_pbc;
+struct t_topology;
+struct t_trxframe;
namespace gmx
{
class SelectionCollection
{
public:
- /*! \brief
- * Creates a help tree for selections.
- *
- * \throws std::bad_alloc if out of memory.
- * \returns Root topic of the created selection tree.
- */
- static HelpTopicPointer createDefaultHelpTopic();
-
/*! \brief
* Creates an empty selection collection.
*
*
* \param[in] grps Index groups to use for the selections.
* \throws std::bad_alloc if out of memory.
- * \throws InvalidInputError if a group reference cannot be resolved.
+ * \throws InconsistentInputError if a group reference cannot be resolved.
*
* Only the first call to this method can have a non-NULL \p grps.
* At this point, any selections that have already been provided are
* searched for references to external groups, and the references are
* replaced by the contents of the groups. If any referenced group
* cannot be found in \p grps (or if \p grps is NULL and there are any
- * references), InvalidInputError is thrown.
+ * references), InconsistentInputError is thrown.
*
* The selection collection keeps a reference to \p grps until this
* method is called with a NULL \p grps.
* (if -1, parse as many as provided by the user).
* \param[in] bInteractive Whether the parser should behave
* interactively.
+ * \param[in] context Context to print for interactive input.
* \returns Vector of parsed selections.
* \throws std::bad_alloc if out of memory.
* \throws InvalidInputError if there is a parsing error
* the selection collection.
* Some information about the selections only becomes available once
* compile() has been called; see \ref Selection.
+ *
+ * The string provided to \p context should be such that it can replace
+ * the three dots in "Specify selections ...:". It can be empty.
*/
- SelectionList parseFromStdin(int count, bool bInteractive);
+ SelectionList parseFromStdin(int count, bool bInteractive,
+ const std::string &context);
/*! \brief
* Parses selection(s) from a file.
*