Ignore:
Timestamp:
1999-09-02T12:26:11+12:00 (25 years ago)
Author:
rjmcnab
Message:

now there can be multiple values for a single key

File:
1 edited

Legend:

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

    r375 r510  
    1919
    2020#ifdef __WIN32__
     21
     22#ifdef __cplusplus
     23extern "C" {
     24#endif
    2125#include "autoconf.h"
    2226#include "systems.h"
    2327#include "gdbmconst.h"
    2428#include "gdbm.h"
     29#ifdef __cplusplus
     30}
     31#endif
    2532
    2633#else
     
    2936
    3037
     38typedef map<text_t, text_tarray, lttext_t> text_tarraymap;
     39
     40
    3141// infodbclass is used to store information about a object
    3242class infodbclass {
    3343protected:
    34   text_tmap info;
     44  text_tarraymap info;
    3545
    3646public:
    37   //type support for text_tmap
    38   typedef text_tmap::iterator iterator;
    39   typedef text_tmap::const_iterator const_iterator;
    40   typedef text_tmap::reference reference;
    41   typedef text_tmap::const_reference const_reference;
    42   typedef text_tmap::size_type size_type;
    43   typedef text_tmap::difference_type difference_type;
    44   typedef text_tmap::const_reverse_iterator const_reverse_iterator;
    45   typedef text_tmap::reverse_iterator reverse_iterator;
     47  // type support for text_tarraymap
     48  typedef text_tarraymap::iterator iterator;
     49  typedef text_tarraymap::const_iterator const_iterator;
     50  typedef text_tarraymap::reference reference;
     51  typedef text_tarraymap::const_reference const_reference;
     52  typedef text_tarraymap::size_type size_type;
     53  typedef text_tarraymap::difference_type difference_type;
     54  typedef text_tarraymap::const_reverse_iterator const_reverse_iterator;
     55  typedef text_tarraymap::reverse_iterator reverse_iterator;
    4656 
    4757  // constructors
     
    6575  void clear () {info.erase(info.begin(),info.end());}
    6676
     77  // the following functions deal with keys that can only
     78  // have one value for compatibility
     79 
    6780  // getinfo returns NULL if there isn't an entry with
    6881  // 'key' already defined, getintinfo returns 0 if there wasn't an
     
    7487  text_t *getinfo (const text_t &key);
    7588  int getintinfo (const text_t &key);
    76   text_t &operator[] (const text_t &key) {return info[key];}
     89  text_t &operator[] (const text_t &key);
     90
     91
     92  // the next set of functions allow you to set and access keys
     93  // that can have more than one value
     94
     95  // getmultinfo returns NULL if there isn't an entry with
     96  // 'key' already defined
     97  void addinfo (const text_t &key, const text_t &value);
     98  void addintinfo (const text_t &key, int value);
     99  void addcinfo (const text_t &key, unsigned short c);
     100  text_tarray *getmultinfo (const text_t &key);
    77101};
    78102
     
    84108 
    85109  // returns true if opened
    86   bool opendatabase (const text_t &filename, int mode=GDBM_READER, int num_retrys=1);
     110  bool opendatabase (const text_t &filename, int mode, int num_retrys,
     111             bool need_filelock);
    87112  void closedatabase ();
    88113
Note: See TracChangeset for help on using the changeset viewer.