home *** CD-ROM | disk | FTP | other *** search
/ Boldly Go Collection / version40.iso / TS / 17A / DRWIN101.ZIP / CMDLINE.HPP < prev    next >
C/C++ Source or Header  |  1991-12-11  |  2KB  |  77 lines

  1. #ifndef __CMDLINE_HPP
  2. #define __CMDLINE_HPP
  3.  
  4. #include <stdiostr.h>
  5.  
  6.  
  7. typedef int (*Check_Function)(char* arg);
  8. typedef int (*Scan_Function)(void* data, char* arg);
  9.  
  10.  
  11. int AlwaysOne(char *s);  //always returns 1
  12.  
  13.  
  14. //===========================================================================
  15. class Parameter
  16. {
  17. public:
  18.   char used;
  19.   char *name;
  20.   void *data;
  21.   Check_Function check;
  22.   Parameter* next;
  23.  
  24.   Parameter(char* _name, char* _data, Check_Function _check = AlwaysOne);
  25.   Parameter(Parameter& parameter);
  26.   void operator = (Parameter& parameter);
  27.   Parameter& operator + (Parameter& parameter);
  28.   Parameter& operator + (void) { return *this; }
  29.   int Load(char* arg);
  30.   ostream& Out(ostream& o);
  31. };   //class Parameter
  32.  
  33.  
  34. //===========================================================================
  35. class Switch
  36. {
  37. public:
  38.   char *name;
  39.   char  switch_char;
  40.   void* data;
  41.   char* format;
  42.   Scan_Function scan;
  43.   Switch* next;
  44.  
  45.   Switch(char* _name, char _switch_char, void* _data, char* _format,
  46.          Scan_Function _scan = NULL);
  47.   Switch(Switch& s);
  48.  
  49.   ostream& Out(ostream& o);
  50.   void operator = (Switch& s);
  51.   Switch& operator + (Switch& s);
  52.   Switch& operator + (void) { return *this; }
  53.   int Load(char* arg);
  54. };   //class Switch
  55.  
  56.  
  57. //===========================================================================
  58. class CommandLine
  59. {
  60. public:
  61.   Parameter* parameter_list;
  62.   Switch* switch_list;
  63.   int count;
  64.  
  65.   CommandLine(Parameter& parameter, Switch& s);
  66.   int  Load(int argc,char* argv[]);
  67. };   //class CommandLine
  68.  
  69.  
  70. //===========================================================================
  71. ostream& operator << (ostream& o,Parameter& p);
  72. ostream& operator << (ostream& o,Switch& s);
  73. ostream& operator << (ostream& o,CommandLine& c);
  74.  
  75.  
  76. #endif
  77.