00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef zz_arguments_h
00010 #define zz_arguments_h
00011
00012 #include <zz_string.h>
00013 #include <zz_exception.h>
00014 #include <map>
00015 #include <zz_export.h>
00016 #include <zz_parameter_map.h>
00017
00018 #ifdef _WIN32
00019 using namespace std;
00020 #pragma warning(disable: 4786) // Debugsymbols truncated
00021 #pragma warning(disable: 4251) // DLL-interface missing for private map members
00022 #endif
00023
00029 class ZZ_API CzzArguments : public CzzParameterMap
00030 {
00031 public:
00032
00041 CzzArguments( int argc,
00042 char** argv,
00043 char delmiter,
00044 int minargs );
00045
00051 CzzArguments( CzzArguments& args );
00052
00056 CzzArguments( void );
00057
00058 virtual ~CzzArguments();
00059
00063 int Count( void ) { return m_Count; };
00064
00070 CzzString Get( int pos );
00071
00077 CzzString Get( const CzzString& name );
00078
00082 CzzString operator[]( int pos );
00086 CzzString operator[]( const CzzString& name );
00087
00089 char getDelmiter( void ) { return m_Delmiter; };
00090
00092 int getMinArgs( void ) { return m_MinArgs; };
00093
00095 map<int, CzzString > getPosList( void ) { return m_ArgsByPos; };
00096
00098 map<CzzString, CzzString > getNameList( void ) { return m_ArgsByName; };
00099
00100
00101 private:
00102
00103 int m_Count;
00104 char m_Delmiter;
00105 int m_MinArgs;
00106 map<int, CzzString > m_ArgsByPos;
00107 map<CzzString, CzzString > m_ArgsByName;
00108 };
00109
00110 #endif // zz_arguments_h
00111