1 /** @file RNAduplex_cmdl.h
2  *  @brief The header file for the command line option parser
3  *  generated by GNU Gengetopt version 2.23
4  *  http://www.gnu.org/software/gengetopt.
5  *  DO NOT modify this file, since it can be overwritten
6  *  @author GNU Gengetopt */
7 
8 #ifndef RNADUPLEX_CMDL_H
9 #define RNADUPLEX_CMDL_H
10 
11 /* If we use autoconf.  */
12 #ifdef HAVE_CONFIG_H
13 #include "config.h"
14 #endif
15 
16 #include <stdio.h> /* for FILE */
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif /* __cplusplus */
21 
22 #ifndef RNADUPLEX_CMDLINE_PARSER_PACKAGE
23 /** @brief the program name (used for printing errors) */
24 #define RNADUPLEX_CMDLINE_PARSER_PACKAGE "RNAduplex"
25 #endif
26 
27 #ifndef RNADUPLEX_CMDLINE_PARSER_PACKAGE_NAME
28 /** @brief the complete program name (used for help and version) */
29 #define RNADUPLEX_CMDLINE_PARSER_PACKAGE_NAME "RNAduplex"
30 #endif
31 
32 #ifndef RNADUPLEX_CMDLINE_PARSER_VERSION
33 /** @brief the program version */
34 #define RNADUPLEX_CMDLINE_PARSER_VERSION VERSION
35 #endif
36 
37 /** @brief Where the command line options are stored */
38 struct RNAduplex_args_info
39 {
40   const char *help_help; /**< @brief Print help and exit help description.  */
41   const char *detailed_help_help; /**< @brief Print help, including all details and hidden options, and exit help description.  */
42   const char *full_help_help; /**< @brief Print help, including hidden options, and exit help description.  */
43   const char *version_help; /**< @brief Print version and exit help description.  */
44   int sorted_flag;	/**< @brief sort the printed output by free energy
45 
46  (default=off).  */
47   const char *sorted_help; /**< @brief sort the printed output by free energy
48 
49  help description.  */
50   int noconv_flag;	/**< @brief Do not automatically substitude nucleotide \"T\" with \"U\"
51 
52  (default=off).  */
53   const char *noconv_help; /**< @brief Do not automatically substitude nucleotide \"T\" with \"U\"
54 
55  help description.  */
56   float deltaEnergy_arg;	/**< @brief Compute suboptimal structures with energy in a certain range of the optimum (kcal/mol). Default is calculation of mfe structure only.
57 
58 .  */
59   char * deltaEnergy_orig;	/**< @brief Compute suboptimal structures with energy in a certain range of the optimum (kcal/mol). Default is calculation of mfe structure only.
60 
61  original value given at command line.  */
62   const char *deltaEnergy_help; /**< @brief Compute suboptimal structures with energy in a certain range of the optimum (kcal/mol). Default is calculation of mfe structure only.
63 
64  help description.  */
65   double temp_arg;	/**< @brief Rescale energy parameters to a temperature of temp C. Default is 37C.
66 
67 .  */
68   char * temp_orig;	/**< @brief Rescale energy parameters to a temperature of temp C. Default is 37C.
69 
70  original value given at command line.  */
71   const char *temp_help; /**< @brief Rescale energy parameters to a temperature of temp C. Default is 37C.
72 
73  help description.  */
74   int noTetra_flag;	/**< @brief Do not include special tabulated stabilizing energies for tri-, tetra- and hexaloop hairpins. Mostly for testing.
75 
76  (default=off).  */
77   const char *noTetra_help; /**< @brief Do not include special tabulated stabilizing energies for tri-, tetra- and hexaloop hairpins. Mostly for testing.
78 
79  help description.  */
80   int dangles_arg;	/**< @brief How to treat \"dangling end\" energies for bases adjacent to helices in free ends and multi-loops
81  (default='2').  */
82   char * dangles_orig;	/**< @brief How to treat \"dangling end\" energies for bases adjacent to helices in free ends and multi-loops
83  original value given at command line.  */
84   const char *dangles_help; /**< @brief How to treat \"dangling end\" energies for bases adjacent to helices in free ends and multi-loops
85  help description.  */
86   int noLP_flag;	/**< @brief Produce structures without lonely pairs (helices of length 1).
87  (default=off).  */
88   const char *noLP_help; /**< @brief Produce structures without lonely pairs (helices of length 1).
89  help description.  */
90   int noGU_flag;	/**< @brief Do not allow GU pairs
91 
92  (default=off).  */
93   const char *noGU_help; /**< @brief Do not allow GU pairs
94 
95  help description.  */
96   int noClosingGU_flag;	/**< @brief Do not allow GU pairs at the end of helices
97 
98  (default=off).  */
99   const char *noClosingGU_help; /**< @brief Do not allow GU pairs at the end of helices
100 
101  help description.  */
102   char * paramFile_arg;	/**< @brief Read energy parameters from paramfile, instead of using the default parameter set.
103 .  */
104   char * paramFile_orig;	/**< @brief Read energy parameters from paramfile, instead of using the default parameter set.
105  original value given at command line.  */
106   const char *paramFile_help; /**< @brief Read energy parameters from paramfile, instead of using the default parameter set.
107  help description.  */
108   char * nsp_arg;	/**< @brief Allow other pairs in addition to the usual AU,GC,and GU pairs.
109 .  */
110   char * nsp_orig;	/**< @brief Allow other pairs in addition to the usual AU,GC,and GU pairs.
111  original value given at command line.  */
112   const char *nsp_help; /**< @brief Allow other pairs in addition to the usual AU,GC,and GU pairs.
113  help description.  */
114 
115   unsigned int help_given ;	/**< @brief Whether help was given.  */
116   unsigned int detailed_help_given ;	/**< @brief Whether detailed-help was given.  */
117   unsigned int full_help_given ;	/**< @brief Whether full-help was given.  */
118   unsigned int version_given ;	/**< @brief Whether version was given.  */
119   unsigned int sorted_given ;	/**< @brief Whether sorted was given.  */
120   unsigned int noconv_given ;	/**< @brief Whether noconv was given.  */
121   unsigned int deltaEnergy_given ;	/**< @brief Whether deltaEnergy was given.  */
122   unsigned int temp_given ;	/**< @brief Whether temp was given.  */
123   unsigned int noTetra_given ;	/**< @brief Whether noTetra was given.  */
124   unsigned int dangles_given ;	/**< @brief Whether dangles was given.  */
125   unsigned int noLP_given ;	/**< @brief Whether noLP was given.  */
126   unsigned int noGU_given ;	/**< @brief Whether noGU was given.  */
127   unsigned int noClosingGU_given ;	/**< @brief Whether noClosingGU was given.  */
128   unsigned int paramFile_given ;	/**< @brief Whether paramFile was given.  */
129   unsigned int nsp_given ;	/**< @brief Whether nsp was given.  */
130 
131 } ;
132 
133 /** @brief The additional parameters to pass to parser functions */
134 struct RNAduplex_cmdline_parser_params
135 {
136   int override; /**< @brief whether to override possibly already present options (default 0) */
137   int initialize; /**< @brief whether to initialize the option structure RNAduplex_args_info (default 1) */
138   int check_required; /**< @brief whether to check that all required options were provided (default 1) */
139   int check_ambiguity; /**< @brief whether to check for options already specified in the option structure RNAduplex_args_info (default 0) */
140   int print_errors; /**< @brief whether getopt_long should print an error message for a bad option (default 1) */
141 } ;
142 
143 /** @brief the purpose string of the program */
144 extern const char *RNAduplex_args_info_purpose;
145 /** @brief the usage string of the program */
146 extern const char *RNAduplex_args_info_usage;
147 /** @brief the description string of the program */
148 extern const char *RNAduplex_args_info_description;
149 /** @brief all the lines making the help output */
150 extern const char *RNAduplex_args_info_help[];
151 /** @brief all the lines making the full help output (including hidden options) */
152 extern const char *RNAduplex_args_info_full_help[];
153 /** @brief all the lines making the detailed help output (including hidden options and details) */
154 extern const char *RNAduplex_args_info_detailed_help[];
155 
156 /**
157  * The command line parser
158  * @param argc the number of command line options
159  * @param argv the command line options
160  * @param args_info the structure where option information will be stored
161  * @return 0 if everything went fine, NON 0 if an error took place
162  */
163 int RNAduplex_cmdline_parser (int argc, char **argv,
164   struct RNAduplex_args_info *args_info);
165 
166 /**
167  * The command line parser (version with additional parameters - deprecated)
168  * @param argc the number of command line options
169  * @param argv the command line options
170  * @param args_info the structure where option information will be stored
171  * @param override whether to override possibly already present options
172  * @param initialize whether to initialize the option structure my_args_info
173  * @param check_required whether to check that all required options were provided
174  * @return 0 if everything went fine, NON 0 if an error took place
175  * @deprecated use RNAduplex_cmdline_parser_ext() instead
176  */
177 int RNAduplex_cmdline_parser2 (int argc, char **argv,
178   struct RNAduplex_args_info *args_info,
179   int override, int initialize, int check_required);
180 
181 /**
182  * The command line parser (version with additional parameters)
183  * @param argc the number of command line options
184  * @param argv the command line options
185  * @param args_info the structure where option information will be stored
186  * @param params additional parameters for the parser
187  * @return 0 if everything went fine, NON 0 if an error took place
188  */
189 int RNAduplex_cmdline_parser_ext (int argc, char **argv,
190   struct RNAduplex_args_info *args_info,
191   struct RNAduplex_cmdline_parser_params *params);
192 
193 /**
194  * Save the contents of the option struct into an already open FILE stream.
195  * @param outfile the stream where to dump options
196  * @param args_info the option struct to dump
197  * @return 0 if everything went fine, NON 0 if an error took place
198  */
199 int RNAduplex_cmdline_parser_dump(FILE *outfile,
200   struct RNAduplex_args_info *args_info);
201 
202 /**
203  * Save the contents of the option struct into a (text) file.
204  * This file can be read by the config file parser (if generated by gengetopt)
205  * @param filename the file where to save
206  * @param args_info the option struct to save
207  * @return 0 if everything went fine, NON 0 if an error took place
208  */
209 int RNAduplex_cmdline_parser_file_save(const char *filename,
210   struct RNAduplex_args_info *args_info);
211 
212 /**
213  * Print the help
214  */
215 void RNAduplex_cmdline_parser_print_help(void);
216 /**
217  * Print the full help (including hidden options)
218  */
219 void RNAduplex_cmdline_parser_print_full_help(void);
220 /**
221  * Print the detailed help (including hidden options and details)
222  */
223 void RNAduplex_cmdline_parser_print_detailed_help(void);
224 /**
225  * Print the version
226  */
227 void RNAduplex_cmdline_parser_print_version(void);
228 
229 /**
230  * Initializes all the fields a RNAduplex_cmdline_parser_params structure
231  * to their default values
232  * @param params the structure to initialize
233  */
234 void RNAduplex_cmdline_parser_params_init(struct RNAduplex_cmdline_parser_params *params);
235 
236 /**
237  * Allocates dynamically a RNAduplex_cmdline_parser_params structure and initializes
238  * all its fields to their default values
239  * @return the created and initialized RNAduplex_cmdline_parser_params structure
240  */
241 struct RNAduplex_cmdline_parser_params *RNAduplex_cmdline_parser_params_create(void);
242 
243 /**
244  * Initializes the passed RNAduplex_args_info structure's fields
245  * (also set default values for options that have a default)
246  * @param args_info the structure to initialize
247  */
248 void RNAduplex_cmdline_parser_init (struct RNAduplex_args_info *args_info);
249 /**
250  * Deallocates the string fields of the RNAduplex_args_info structure
251  * (but does not deallocate the structure itself)
252  * @param args_info the structure to deallocate
253  */
254 void RNAduplex_cmdline_parser_free (struct RNAduplex_args_info *args_info);
255 
256 /**
257  * Checks that all the required options were specified
258  * @param args_info the structure to check
259  * @param prog_name the name of the program that will be used to print
260  *   possible errors
261  * @return
262  */
263 int RNAduplex_cmdline_parser_required (struct RNAduplex_args_info *args_info,
264   const char *prog_name);
265 
266 
267 #ifdef __cplusplus
268 }
269 #endif /* __cplusplus */
270 #endif /* RNADUPLEX_CMDL_H */
271