parameterhandler.h 3.46 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
/*! \file parameterhandler.h
 * \brief handle a parameter configuration string (prototypes)
 * 
 * ----------------------------------------------------------------------------
 * 
 * \author Thomas Forbriger
 * \date 06/05/2011
 * 
 * handle a parameter configuration string (prototypes)
 * 
 * Copyright (c) 2011 by Thomas Forbriger (BFO Schiltach) 
 *
 * ----
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version. 
 * 
 * This program 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 General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 * ----
 *
 * 
 * REVISIONS and CHANGES 
 *  - 06/05/2011   V1.0   Thomas Forbriger
 * 
 * ============================================================================
 */

// include guard
#ifndef STFINV_PARAMETERHANDLER_H_VERSION

#define STFINV_PARAMETERHANDLER_H_VERSION \
40
  "STFINV_PARAMETERHANDLER_H   V1.0"
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113

#include <string>
#include <map>

namespace stfinv {

  /*! \brief Namespace for internal tools
   * \ingroup tools
   */
  namespace tools {

    /*! strip substring
     * \ingroup tools
     *
     * Strips off first substring up to given delimiter.
     * The string is passed as a reference and will be modified (i.e. the
     * stripped substring as well as the delimiter will be erased).
     *
     * \param s input string
     * \param delim delimiter to look for
     * \return first part of string up to delimiter
     */
    std::string clipstring(std::string& s, const std::string& delim=":");

    /*----------------------------------------------------------------------*/

    /*! \brief A map to store parameters.
     * \ingroup tools
     */
    typedef std::map<std::string,std::string> Tparamap;

    /*----------------------------------------------------------------------*/

    /*! \brief Create a parameter map from a parameter string
     * \ingroup tools
     *
     * \param p parameter string
     * \param delimiter delimiter which separates two parameters
     * \param assign symbol seprating key and value
     * \return a multimap created from the parameter string
     */
    Tparamap makeparamap(const std::string& p,
                         const std::string& delimiter=":",
                         const std::string& assign="=");

    /*----------------------------------------------------------------------*/

    /*! replace comma by whitespace
     * \ingroup tools
     *
     * \param s input string
     * \return input string with all commas replaced by whitespace
     */
    std::string commatospace(std::string s);

    /*----------------------------------------------------------------------*/

    /*! \brief remove leading and trailing whitespace
     * \ingroup tools
     *
     * \param s any string
     * \return value a input string with any leading and trailing whitespace
     *         removed
     */
    std::string trimws(std::string s);

  } // namespace tools

} // namespace stfinv

#endif // STFINV_PARAMETERHANDLER_H_VERSION (includeguard)

/* ----- END OF parameterhandler.h ----- */