Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

CmdLine.hh

Go to the documentation of this file.
00001 //STARTHEADER
00002 // $Id: CmdLine.hh,v 1.3 2006/05/22 18:11:42 salam Exp $
00003 //
00004 // Copyright (c) 2005 Matteo Cacciari and Gavin Salam
00005 //
00006 //----------------------------------------------------------------------
00007 // This file is part of a simple command-line handling environment
00008 //
00009 //  FastJet is free software; you can redistribute it and/or modify
00010 //  it under the terms of the GNU General Public License as published by
00011 //  the Free Software Foundation; either version 2 of the License, or
00012 //  (at your option) any later version.
00013 //
00014 //  The algorithms that underlie FastJet have required considerable
00015 //  development and are described in hep-ph/0512210. If you use
00016 //  FastJet as part of work towards a scientific publication, please
00017 //  include a citation to the FastJet paper.
00018 //
00019 //  FastJet is distributed in the hope that it will be useful,
00020 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
00021 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00022 //  GNU General Public License for more details.
00023 //
00024 //  You should have received a copy of the GNU General Public License
00025 //  along with FastJet; if not, write to the Free Software
00026 //  Foundation, Inc.:
00027 //      59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00028 //----------------------------------------------------------------------
00029 //ENDHEADER
00030 
00031 
00032 #ifndef __CMDLINE__
00033 #define __CMDLINE__
00034 
00035 #include<string>
00036 #include<map>
00037 #include<vector>
00038 using namespace std;
00039 
00055 class CmdLine {
00056   map<string,int> __options;
00057   vector<string> __arguments;
00058   map<string,bool> __options_used;
00059   //string __progname;
00060   string __command_line;
00061 
00062  public :
00063   CmdLine() {};
00065   CmdLine(const int argc, char** argv);
00067   CmdLine(const vector<string> & args);
00068 
00070   bool    present(const string & opt);
00072   bool    present_and_set(const string & opt);
00073 
00075   int     int_val(const string & opt);
00077   int     int_val(const string & opt, const int & defval);
00078 
00080   double  double_val(const string & opt);
00082   double  double_val(const string & opt, const double & defval);
00083 
00085   string  string_val(const string & opt);
00087   string  string_val(const string & opt, const string & defval);
00088 
00090   string  command_line();
00091 
00093   bool all_options_used() const;
00094 
00095  private:
00097   void init();
00098 };
00099 
00100 #endif

Generated on Thu Oct 12 17:36:34 2006 for fastjet by  doxygen 1.4.2