Xmipp  v3.23.11-Nereus
argsprinter.h
Go to the documentation of this file.
1 /***************************************************************************
2  * Authors: J.M.de la Rosa Trevin (jmdelarosa@cnb.csic.es)
3  *
4  *
5  * Unidad de Bioinformatica of Centro Nacional de Biotecnologia , CSIC
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2 of the License, or
10  * (at your param) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
20  * 02111-1307 USA
21  *
22  * All comments concerning this program package may be sent to the
23  * e-mail address 'xmipp@cnb.csic.es'
24  ***************************************************************************/
25 
26 #ifndef CORE_ARGSPRINTER_H_
27 #define CORE_ARGSPRINTER_H_
28 
29 #include "argsparser.h"
30 
31 #define XMIPP_MAJOR 3
32 #define XMIPP_MINOR 1
33 
38 class Printer
39 {
40 public:
41  virtual ~Printer() {}
42  virtual void printProgram(const ProgramDef &program, int v = 0) = 0;
43  virtual void printSection(const SectionDef &section, int v = 0) = 0;
44  virtual void printParam(const ParamDef &param, int v = 0) = 0;
45  virtual void printArgument(const ArgumentDef & argument, int v = 0) = 0;
46  virtual void printCommentList(const CommentList &comments, int v = 0) = 0;
47  virtual void printToken(ArgToken * token);
48 };
49 
50 
52 class ConsolePrinter: public Printer
53 {
54 protected:
55  std::ostream * pOut;
56  void printRequiresList(StringVector requires);
57 public:
58  bool color;
60  ConsolePrinter(std::ostream &out=std::cout, bool color = true);
61  virtual void printProgram(const ProgramDef &program, int v = 0);
62  virtual void printSection(const SectionDef &section, int v = 0);
63  virtual void printParam(const ParamDef &param, int v = 0);
64  virtual void printArgument(const ArgumentDef & argument, int v = 0);
65  virtual void printCommentList(const CommentList &comments, int v = 0);
66 };
67 
69 class TkPrinter: public Printer
70 {
71 protected:
72  FILE * output;
73 public:
75  char readbuffer[1024];
77  TkPrinter();
78  ~TkPrinter();
79  virtual void printProgram(const ProgramDef &program, int v = 0);
80  virtual void printSection(const SectionDef &section, int v = 0);
81  virtual void printParam(const ParamDef &param, int v = 0);
82  virtual void printArgument(const ArgumentDef & argument, int v = 0);
83  virtual void printCommentList(const CommentList &comments, int v = 0){};
84 };
85 
87 class WikiPrinter: public Printer
88 {
89 protected:
90  std::ostream * pOut;
91  void printRequiresList(StringVector requires);
92 public:
94  WikiPrinter(std::ostream &out=std::cout);
95  virtual void printProgram(const ProgramDef &program, int v = 0);
96  virtual void printSection(const SectionDef &section, int v = 0);
97  virtual void printParam(const ParamDef &param, int v = 0);
98  virtual void printArgument(const ArgumentDef & argument, int v = 0);
99  virtual void printCommentList(const CommentList &comments, int v = 0);
100 };
101 
104 {
105 protected:
106  FILE * output;
107 
108 
109 public:
111  AutocompletePrinter(const char * scriptfile, bool programGui = false);
112  virtual ~AutocompletePrinter();
113  virtual void printProgram(const ProgramDef &program, int v = 0);
114  virtual void printSection(const SectionDef &section, int v = 0);
115  virtual void printParam(const ParamDef &param, int v = 0);
116  virtual void printArgument(const ArgumentDef & argument, int v = 0);
117  virtual void printCommentList(const CommentList &comments, int v = 0);
118 };
119 
120 #endif /* ARGSPRINTER_H_ */
std::ostream * pOut
Definition: argsprinter.h:55
virtual void printToken(ArgToken *token)
Definition: argsprinter.cpp:32
virtual ~Printer()
Definition: argsprinter.h:41
virtual void printCommentList(const CommentList &comments, int v=0)=0
std::vector< String > StringVector
Definition: xmipp_strings.h:35
FILE * output
Definition: argsprinter.h:72
struct _parameter * param
virtual void printSection(const SectionDef &section, int v=0)=0
virtual void printParam(const ParamDef &param, int v=0)=0
virtual void printArgument(const ArgumentDef &argument, int v=0)=0
std::ostream * pOut
Definition: argsprinter.h:90
virtual void printProgram(const ProgramDef &program, int v=0)=0
virtual void printCommentList(const CommentList &comments, int v=0)
Definition: argsprinter.h:83