All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Citations.h
Go to the documentation of this file.
1 /* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2  Copyright (c) 2013 The plumed team
3  (see the PEOPLE file at the root of the distribution for a list of names)
4 
5  See http://www.plumed-code.org for more information.
6 
7  This file is part of plumed, version 2.0.
8 
9  plumed is free software: you can redistribute it and/or modify
10  it under the terms of the GNU Lesser General Public License as published by
11  the Free Software Foundation, either version 3 of the License, or
12  (at your option) any later version.
13 
14  plumed is distributed in the hope that it will be useful,
15  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  GNU Lesser General Public License for more details.
18 
19  You should have received a copy of the GNU Lesser General Public License
20  along with plumed. If not, see <http://www.gnu.org/licenses/>.
21 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
22 #ifndef __PLUMED_tools_Citations_h
23 #define __PLUMED_tools_Citations_h
24 
25 #include <vector>
26 #include <string>
27 #include <iosfwd>
28 
29 namespace PLMD{
30 
31 /**
32 \ingroup TOOLBOX
33 Class taking care of bibliography.
34 
35 This class contains a vector of citations. To add a new citations, use cite(). To print
36 the entire bibliography, just dump on a ostream. Everytime cite is used, a string
37 containing the number of the citation is returned. If the same citation is added twice,
38 the same string is returned, so that this example will produce only two bibliographic items:
39 \verbatim
40 #include "Citations.h"
41 #include <iostream>
42 int main(int argc,char**argv){
43  PLMD::Citations citations;
44  std::cout << citations.cite("Pinco e Pallino, Il Piccolo 33, 444 (2012)") << "\n";
45  std::cout << citations.cite("Other cite") << "\n";
46  std::cout << citations.cite("Pinco e Pallino, Il Piccolo 33, 444 (2012)") << "\n";
47 
48  std::cout << "Bibliography\n"<< citations;
49  return 0;
50 }
51 \endverbatim
52 */
53 
54 class Citations{
55  std::vector<std::string> items;
56 public:
57 /// Add a citation.
58 /// It returns a string containing the reference number, something like "[10]"
59  std::string cite(const std::string &);
60 /// Dumps the bibliography.
61 /// It writes on the ostream the list of all the bibliographic items
62 /// prefixed with their reference number
63  friend std::ostream &operator<<(std::ostream &,const Citations&);
64 };
65 
66 std::ostream & operator<<(std::ostream &,const Citations&);
67 
68 }
69 
70 #endif
std::vector< std::string > items
Definition: Citations.h:55
std::string cite(const std::string &)
Add a citation.
Definition: Citations.cpp:30
Class taking care of bibliography.
Definition: Citations.h:54
friend std::ostream & operator<<(std::ostream &, const Citations &)
Dumps the bibliography.
Definition: Citations.cpp:41
std::ostream & operator<<(std::ostream &log, const ActionRegister &ar)