00001 00002 // 00003 // Copyright (C) 2006 James M. Lawrence. All rights reserved. 00004 // 00005 // software: esve-1.0.3 00006 // file: esve/components/dimn/Command_Line.hxx 00007 // 00008 // Redistribution and use in source and binary forms, with or without 00009 // modification, are permitted provided that the following conditions 00010 // are met: 00011 // 00012 // 1. Redistributions of source code must retain the above copyright 00013 // notice, this list of conditions and the following disclaimer. 00014 // 00015 // 2. The origin of this software must not be misrepresented; you must 00016 // not claim that you wrote the original software. If you use this 00017 // software in a product, an acknowledgment in the product 00018 // documentation would be appreciated but is not required. 00019 // 00020 // 3. Altered source versions must be plainly marked as such, and must 00021 // not be misrepresented as being the original software. 00022 // 00023 // 4. The name of the author may not be used to endorse or promote 00024 // products derived from this software without specific prior written 00025 // permission. 00026 // 00027 // THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY, 00028 // AND WITH NO CLAIM AS TO ITS SUITABILITY FOR ANY PURPOSE. IN NO EVENT 00029 // SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM WHATSOEVER MADE IN CONNECTION 00030 // TO THIS SOFTWARE. 00031 // 00033 // 00034 // Command-line utility for unordered single-char options. 00035 // 00036 // Throws an exception if options are unrecognized or malformed. 00037 // 00038 00039 #ifndef esve_components_dimn_Command_Line_hxx 00040 #define esve_components_dimn_Command_Line_hxx 00041 00042 #include <esve/util/Command_Line.hxx> 00043 #include <stdexcept> 00044 00045 namespace esve { namespace components { namespace dimn { 00046 00047 class Command_Line 00048 : public util::Command_Line 00049 { 00050 private: 00051 typedef util::Command_Line super ; 00052 00053 Command_Line( const Command_Line & ) ; 00054 Command_Line & operator=( const Command_Line & ) ; 00055 00056 public: 00057 struct Error 00058 : public std::runtime_error 00059 { 00060 Error( const std::string & what ) ; 00061 ~Error() throw() ; 00062 } ; 00063 00064 Command_Line( int argc, char** argv, const std::string & optstring ) ; 00065 00066 ~Command_Line() ; 00067 } ; 00068 00069 }}} // namespace esve::components::dimn 00070 00071 #endif
1.3.4