Ignore:
Timestamp:
2008-05-22T16:44:51+12:00 (16 years ago)
Author:
mdewsnip
Message:

(Adding new DB support) Created default implementations of getinfo() and setinfo() in dbclass so they don't necessarily be re-implemented for every subclass.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • gsdl/trunk/lib/dbclass.h

    r15652 r15655  
    5454  virtual ~dbclass();
    5555
    56   // MUST be implemented by subclasses; returns true if opened
     56  void setlogout (ostream *logout_arg) { logout = logout_arg; }
     57
     58
     59  // -----------------------------------------------------------------------------------------------
     60  // These functions MUST be implemented by subclasses, as they are database-specific
     61
     62  // returns true if opened
    5763  virtual bool opendatabase (const text_t &filename, int mode, int num_retrys, bool need_filelock) = 0;
    5864
    59   // MUST be implemented by subclasses
    6065  virtual void closedatabase () = 0;
    6166
    62   // MUST be implemented by subclasses
    6367  virtual void deletekey (const text_t &key) = 0;
    6468
    65   // May be overwritten by subclasses; returns true if exists
    66   virtual bool exists (const text_t& key);
    67 
    68   // Must be implemented by subclasses; returns true on success
    69   virtual bool getinfo (const text_t& key, infodbclass &info) = 0;
    70 
    71   // MUST be implemented by subclasses; returns true on success
     69  // returns true on success
    7270  virtual bool getkeydata (const text_t& key, text_t &data) = 0;
    7371
    74   // MUST be implemented by subclasses; returns array of keys
     72  // returns array of keys
    7573  virtual text_tarray getkeys () = 0;
    7674
    77   // Must be implemented by subclasses; returns true on success
    78   virtual bool setinfo (const text_t &key, const infodbclass &info) = 0;
    79 
    80   // MUST be implemented by subclasses; returns true on success
     75  // returns true on success
    8176  virtual bool setkeydata (const text_t &key, const text_t &data) = 0;
    8277
    8378
    84   void setlogout (ostream *logout_arg) { logout = logout_arg; }
     79  // -----------------------------------------------------------------------------------------------
     80  // These functions may be overwritten by subclasses, but a default implementation is provided
     81
     82  // returns true if exists
     83  virtual bool exists (const text_t& key);
     84
     85  // returns true on success
     86  virtual bool getinfo (const text_t& key, infodbclass &info);
     87
     88  // returns true on success
     89  virtual bool setinfo (const text_t &key, const infodbclass &info);
     90
    8591
    8692  // replaces the .c, .p, .n, .l syntax (child, parent, next, previous)
     
    9298  ostream *logout;
    9399
     100  // returns true on success
     101  bool getinfoline (text_t::iterator &here, text_t::iterator end, text_t &key, text_t &value);
     102
    94103  void get_first_child (text_t &OID, infodbclass &info);
    95104  void get_last_child (text_t &OID, infodbclass &info);
Note: See TracChangeset for help on using the changeset viewer.