#ifndef CLO_H #define CLO_H //#include //#include #define MAXOPTIONS 256 class CLO; class CLO { public: char optionchar; char optionname[255]; char optiondescript[255]; char optiondefaultval[255]; int optionarg; // boolean - does this take an argument static CLO* clolist[MAXOPTIONS]; // list of current options static int clolistlen; static char optionString[1024]; // the option string for getopt() CLO(char *option, char *descript); static int parseArgs(int argc, char **argv); static char *getOptionString(); virtual void setOption(char *optarg)=0; static void showusage(char *execname); void verifyUniqueOptionChar(); }; // class CLOfloat : public CLO { public: float val; CLOfloat(float nval, char *option, char *descript); float operator=(float foo); float operator=(CLOfloat &foo); operator float() ; virtual void setOption(char *optarg); }; class CLOint : public CLO { public: float val; CLOint(int nval, char *option, char *descript); int operator=(int foo); int operator=(CLOint &foo); operator int(); virtual void setOption(char *optarg); }; class CLOchar255 : public CLO { public: char val[255]; CLOchar255(char * nval, char *option, char *descript); //CLOchar255t& operator=(char *foo) {val=foo; return *this;} operator char*(); virtual void setOption(char *optarg); }; class CLOflag : public CLO { public: int val; CLOflag(char *option, char *descript); int operator=(int foo); int operator=(CLOflag &foo); operator int(); virtual void setOption(char *optarg); }; // #endif