Ignore:
Timestamp:
1999-07-11T13:02:13+12:00 (25 years ago)
Author:
rjmcnab
Message:

Stored information relating to the cgi argument's origin with the cgi argument.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl/src/recpt/cgiargs.h

    r154 r364  
    3939
    4040
    41 typedef map<text_t, text_t, lttext_t> textmap;
     41struct cgiarg_t {
     42  void clear ();
     43  cgiarg_t () {clear();}
     44  cgiarg_t &operator=(const cgiarg_t &x);
     45 
     46  enum source_t {default_arg, compressed_arg, cgi_arg, program_arg};
     47 
     48  text_t value;
     49  source_t source;
     50};
     51
     52typedef map<text_t, cgiarg_t, lttext_t> cgiarg_tmap;
    4253
    4354// cgiargsclass is used to store a particular set
    4455// of cgi arguments.
    45 class cgiargsclass
    46 {
     56class cgiargsclass {
    4757protected:
    48   textmap args;
     58  cgiarg_tmap args;
    4959
    5060public:
    51   //type support for textmap
    52   typedef textmap::iterator iterator;
    53   typedef textmap::const_iterator const_iterator;
    54   typedef textmap::reference reference;
    55   typedef textmap::const_reference const_reference;
    56   typedef textmap::size_type size_type;
    57   typedef textmap::difference_type difference_type;
    58   typedef textmap::const_reverse_iterator const_reverse_iterator;
    59   typedef textmap::reverse_iterator reverse_iterator;
     61  //type support for cgiarg_tmap
     62  typedef cgiarg_tmap::iterator iterator;
     63  typedef cgiarg_tmap::const_iterator const_iterator;
     64  typedef cgiarg_tmap::reference reference;
     65  typedef cgiarg_tmap::const_reference const_reference;
     66  typedef cgiarg_tmap::size_type size_type;
     67  typedef cgiarg_tmap::difference_type difference_type;
     68  typedef cgiarg_tmap::const_reverse_iterator const_reverse_iterator;
     69  typedef cgiarg_tmap::reverse_iterator reverse_iterator;
    6070 
    6171  // constructors
     
    8595  // entry with 'key' defined and operator[] returns "" if
    8696  // 'key' wasn't already defined (and sets 'key'="").
    87   void setarg (const text_t &key, const text_t &value);
    88   void setdefaultarg (const text_t &key, const text_t &value);
    89   void setintarg (const text_t &key, int value);
    90   void setdefaultintarg (const text_t &key, int value);
    91   void setcarg (const text_t &key, unsigned short c);
    92   void setdefaultcarg (const text_t &key, unsigned short c);
     97  void setarg (const text_t &key, const text_t &value,
     98           cgiarg_t::source_t source=cgiarg_t::program_arg);
     99  void setdefaultarg (const text_t &key, const text_t &value,
     100              cgiarg_t::source_t source=cgiarg_t::default_arg);
     101  void setintarg (const text_t &key, int value,
     102          cgiarg_t::source_t source=cgiarg_t::program_arg);
     103  void setdefaultintarg (const text_t &key, int value,
     104             cgiarg_t::source_t source=cgiarg_t::default_arg);
     105  void setcarg (const text_t &key, unsigned short c,
     106        cgiarg_t::source_t source=cgiarg_t::program_arg);
     107  void setdefaultcarg (const text_t &key, unsigned short c,
     108               cgiarg_t::source_t source=cgiarg_t::default_arg);
    93109  text_t *getarg (const text_t &key);
    94110  int getintarg (const text_t &key);
    95   text_t &operator[] (const text_t &key) {return args[key];}
     111  text_t &operator[] (const text_t &key) {return args[key].value;}
     112  cgiarg_t &lookupcgiarg (const text_t &key) {return args[key];}
    96113};
    97114
Note: See TracChangeset for help on using the changeset viewer.