Visual Servoing Platform  version 3.6.1 under development (2024-11-21)
vpParseArgv.h
1 /*
2  * Declarations for Tk-related things that are visible
3  * outside of the Tk module itself.
4  *
5  * Copyright 1989-1992 Regents of the University of California.
6  * Permission to use, copy, modify, and distribute this
7  * software and its documentation for any purpose and without
8  * fee is hereby granted, provided that the above copyright
9  * notice appear in all copies. The University of California
10  * makes no representations about the suitability of this
11  * software for any purpose. It is provided "as is" without
12  * express or implied warranty.
13  *
14  * This file has been modified to be used only for argv parsing without
15  * reference to tk, tcl or X11. Base on tk.h from tk2.3
16  *
17  * Modifications by Peter Neelin (November 27, 1992)
18  * Modifications by Fabien Spindler (June 20, 2006)
19  */
20 
26 #ifndef VP_PARSE_ARGV_H
27 #define VP_PARSE_ARGV_H
28 
29 #include <visp3/core/vpConfig.h>
30 #include <visp3/core/vpException.h>
31 
32 BEGIN_VISP_NAMESPACE
33 
144 class VISP_EXPORT vpParseArgv
145 {
146 public:
150  typedef enum
151  {
164  ARGV_END
165  } vpArgvType;
166 
170  typedef enum
171  {
172  ARGV_NO_DEFAULTS = 0x1,
173  ARGV_NO_LEFTOVERS = 0x2,
174  ARGV_NO_ABBREV = 0x4,
176  ARGV_DONT_SKIP_FIRST_ARG = 0x8,
177  ARGV_NO_PRINT = 0x10
178  } vpArgvFlags;
179 
180 #ifndef DOXYGEN_SHOULD_SKIP_THIS
185  typedef struct
186  {
187  const char *key;
188  vpArgvType type;
189  const char *src;
190  const char *dst;
191  const char *help;
192  } vpArgvInfo;
193 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
194 
195 public:
196  static vpArgvInfo defaultTable[2];
197  static bool parse(int *argcPtr, const char **argv, vpArgvInfo *argTable, int flags);
198  static int parse(int argc, const char **argv, const char *validOpts, const char **param);
199 
200 private:
201  static void printUsage(vpArgvInfo *argTable, int flags);
202 };
203 
204 END_VISP_NAMESPACE
205 
206 #endif
Command line argument parsing.
Definition: vpParseArgv.h:145
@ ARGV_DOUBLE
Argument is associated to a double.
Definition: vpParseArgv.h:160
@ ARGV_LONG
Argument is associated to a long.
Definition: vpParseArgv.h:156
@ ARGV_STRING
Argument is associated to a char * string.
Definition: vpParseArgv.h:157
@ ARGV_FLOAT
Argument is associated to a float.
Definition: vpParseArgv.h:159
@ ARGV_CONSTANT
Stand alone argument. Same as vpParseArgv::ARGV_CONSTANT_INT.
Definition: vpParseArgv.h:152
@ ARGV_INT
Argument is associated to an int.
Definition: vpParseArgv.h:155
@ ARGV_CONSTANT_BOOL
Stand alone argument associated to a bool var that is set to true.
Definition: vpParseArgv.h:154
@ ARGV_CONSTANT_INT
Stand alone argument associated to an int var that is set to 1.
Definition: vpParseArgv.h:153
@ ARGV_HELP
Argument is for help displaying.
Definition: vpParseArgv.h:163