ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/src/utils/Trim.hpp
(Generate patch)

Comparing:
trunk/src/utils/Trim.hpp (file contents), Revision 507 by gezelter, Fri Apr 15 22:04:00 2005 UTC vs.
branches/development/src/utils/Trim.hpp (file contents), Revision 1808 by gezelter, Mon Oct 22 20:42:10 2012 UTC

# Line 6 | Line 6
6   * redistribute this software in source and binary code form, provided
7   * that the following conditions are met:
8   *
9 < * 1. Acknowledgement of the program authors must be made in any
10 < *    publication of scientific results based in part on use of the
11 < *    program.  An acceptable form of acknowledgement is citation of
12 < *    the article in which the program was described (Matthew
13 < *    A. Meineke, Charles F. Vardeman II, Teng Lin, Christopher
14 < *    J. Fennell and J. Daniel Gezelter, "OOPSE: An Object-Oriented
15 < *    Parallel Simulation Engine for Molecular Dynamics,"
16 < *    J. Comput. Chem. 26, pp. 252-271 (2005))
17 < *
18 < * 2. Redistributions of source code must retain the above copyright
9 > * 1. Redistributions of source code must retain the above copyright
10   *    notice, this list of conditions and the following disclaimer.
11   *
12 < * 3. Redistributions in binary form must reproduce the above copyright
12 > * 2. Redistributions in binary form must reproduce the above copyright
13   *    notice, this list of conditions and the following disclaimer in the
14   *    documentation and/or other materials provided with the
15   *    distribution.
# Line 37 | Line 28
28   * arising out of the use of or inability to use software, even if the
29   * University of Notre Dame has been advised of the possibility of
30   * such damages.
31 + *
32 + * SUPPORT OPEN SCIENCE!  If you use OpenMD or its source code in your
33 + * research, please cite the appropriate papers when you publish your
34 + * work.  Good starting points are:
35 + *                                                                      
36 + * [1]  Meineke, et al., J. Comp. Chem. 26, 252-271 (2005).            
37 + * [2]  Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006).          
38 + * [3]  Sun, Lin & Gezelter, J. Chem. Phys. 128, 24107 (2008).          
39 + * [4]  Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011).                        
40   */
41  
42   #ifndef UTILS_TRIM_HPP
# Line 44 | Line 44
44  
45   #include <string>
46   #include <cctype>
47 + #include "utils/Predicate.hpp"
48  
49   /**
50   * @file Trim.hpp
51   * Defines trim algorithms. Trim algorithms are used to remove trailing and leading spaces from a string.
52   */
53 < namespace oopse {
53 > namespace OpenMD {
54  
55    /**
56     * Remove all leading spaces in-place. The supplied predicate is used to determine which
57     * characters are considered spaces
58     * @param str An input sequence
59 <   * @param IsSpace An unary predicate identifying spaces
59 >   * @param pred The unary predicate identifying spaces
60 >   *
61 >   * @code
62 >   * std::string str = "  acb  trimLeftIf test case"
63 >   * trimLeftIf(str, pred() || isFromRange('a', 'c'));
64 >   * std::cout << str << std::endl; //print "trimLeft test case"
65 >   *
66 >   * @endcode
67     */
68 <  template<typename Predict>    
69 <  void trimLeftIf(std::string& str, Predict isSpace) {
68 >  template<typename P>    
69 >  void trimLeftIf(std::string& str, P pred) {
70      std::string::iterator i = str.begin();
71  
72      for (; i != str.end(); ++i) {
73 <      if (!isSpace(*i)) {
73 >      if (!pred(*i)) {
74          break;
75        }
76      }
# Line 74 | Line 82 | namespace oopse {
82     * Remove all trailing spaces in-place. The supplied predicate is used to determine which
83     * characters are considered spaces
84     * @param str An input sequence
85 +   * @param pred The unary predicate identifying spaces
86     */
87 <  template<typename Predict>    
88 <  void trimRightIf(std::string& str, Predict isSpace) {
87 >  template<typename P>    
88 >  void trimRightIf(std::string& str, P pred) {
89      std::string::iterator i = str.end();
90  
91      for (; i != str.begin();) {
92 <      if (!isSpace(*(--i))) {
92 >      if (!pred(*(--i))) {
93          ++i;
94          break;
95        }
# Line 93 | Line 102 | namespace oopse {
102     *Remove all leading and trailing spaces in-place. The supplied predicate is used to determine
103     * which characters are considered spaces
104     * @param str An input sequence
105 +   * @param pred The unary predicate identifying spaces
106     */
107 <  template<typename Predict>    
108 <  void trimIf(std::string& str, Predict isSpace) {
109 <    trimLeftIf(str, isSpace);
110 <    trimRightIf(str, isSpace);        
107 >  template<typename P>    
108 >  void trimIf(std::string& str, P pred) {
109 >    trimLeftIf(str, pred);
110 >    trimRightIf(str, pred);        
111    }
112  
113    /**
114     * Remove all leading spaces from the input. The supplied predicate is used to determine
115     * which characters are considered spaces
116     * @return A trimmed copy of the input
117 <   * @param input An input sequence
117 >   * @param input An input sequence
118 >   * @param pred The unary predicate identifying spaces
119     */
120 <  template<typename Predict>
121 <  std::string trimLeftCopyIf(const std::string& input, Predict isSpace) {
120 >  template<typename P>
121 >  std::string trimLeftCopyIf(const std::string& input, P pred) {
122      std::string result(input);
123 <    trimLeftIf(result, isSpace);
123 >    trimLeftIf(result, pred);
124      return result;
125    }
126  
# Line 118 | Line 129 | namespace oopse {
129     * which characters are considered spaces
130     * @return A trimmed copy of the input
131     * @param input An input sequence
132 +   * @param pred The unary predicate identifying spaces
133     */
134 <  template<typename Predict>
135 <  std::string trimRightCopyIf(const std::string& input, Predict isSpace) {
134 >  template<typename P>
135 >  std::string trimRightCopyIf(const std::string& input, P pred) {
136      std::string result(input);
137 <    trimRightIf(result, isSpace);
137 >    trimRightIf(result, pred);
138      return result;
139    }
140  
# Line 131 | Line 143 | namespace oopse {
143     * determine which characters are considered spaces
144     * @return A trimmed copy of the input
145     * @param input An input sequence
146 +   * @param pred The unary predicate identifying spaces
147     */
148 <  template<typename Predict>    
149 <  std::string trimCopyIf(const std::string& input, Predict isSpace) {
148 >  template<typename P>    
149 >  std::string trimCopyIf(const std::string& input, P pred) {
150      std::string result(input);
151 <    trimIf(result, isSpace);
151 >    trimIf(result, pred);
152      return result;
153    }
154  
# Line 179 | Line 192 | namespace oopse {
192     */
193    std::string trimCopy(const std::string& input);
194  
195 < }//end namespace oopse
195 > }//end namespace OpenMD
196   #endif //UTILS_TRIM_HPP    

Comparing:
trunk/src/utils/Trim.hpp (property svn:keywords), Revision 507 by gezelter, Fri Apr 15 22:04:00 2005 UTC vs.
branches/development/src/utils/Trim.hpp (property svn:keywords), Revision 1808 by gezelter, Mon Oct 22 20:42:10 2012 UTC

# Line 0 | Line 1
1 + Author Id Revision Date

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines