// This file is part of RAVL, Recognition And Vision Library // Copyright (C) 2001, University of Surrey // This code may be redistributed under the terms of the GNU Lesser // General Public License (LGPL). See the lgpl.licence file for details or // see http://www.gnu.org/copyleft/lesser.html // file-header-ends-here // 22-Oct-93 Radek Marik adopted for C++ //! rcsid="$Id: exOption.cc,v 1.4 2002/07/07 21:43:51 craftit Exp $" //! lib=RavlCore //! file="Ravl/Core/System/exOption.cc" /* 24-Feb-93, J. Matas, created */ /* A program for a complex command line parsing for usage run: ex4 -help */ /*---------------------------------------------------------------------*/ //static char sccsid[]="@(#)93/06/23 g.matas@ee.surrey.ac.uk 1.1 ex4.c"; #include "Ravl/Stream.hh" #include "Ravl/Option.hh" using namespace RavlN; int main(int argc, char **argv) { OptionC option(argc,argv,true); option.Comment("exOption: an example of using OptionC class"); option.Comment("==========================================="); IntT a = option.Int("alpha",10,"first parameter"); IntT d = option.Int("beta",a/10,"lower threshold"); RealT f = option.Real("pi",3.14,"define you own pie"); StringC filename = option.String("i","","input filename"); unsigned char sw = option.UnsignedChar("filter",'c', "switch selector for my filter"); bool expand = option.Boolean("expand",0,"expand my panel"); StringC optionN = option.String("o", "", "option string"); DListC opts = option.List("x","List of strings. "); StringC file1 = option.String("","","test file 1"); StringC file2 = option.String("","","test file 2"); //DListC opts2 = option.List(0,"The rest "); option.CompulsoryArgs(1); option.Compulsory("i"); option.DependXor("pi filter"); //option.DependIf("filter",'z',sw,"expand"); option.Check(); if (option.IsOnCommandLine(optionN)) cerr << "The option " << optionN << " is on command line.\n"; cout << "var a: " << a << '\n' << "var d: " << d << '\n' << "var f: " << f << '\n' << "switch: " << sw << '\n' << "expand: " << expand << '\n' << "filename: " << filename << '\n' << "file 1: " << file1 << '\n' << "file 2: " << file2 << '\n'; option.PrintUsage(); return 0; }