DBM_Database.h

00001 /* 
00002    EyeDB Object Database Management System
00003    Copyright (C) 1994-2008 SYSRA
00004    
00005    EyeDB is free software; you can redistribute it and/or
00006    modify it under the terms of the GNU Lesser General Public
00007    License as published by the Free Software Foundation; either
00008    version 2.1 of the License, or (at your option) any later version.
00009    
00010    EyeDB is distributed in the hope that it will be useful,
00011    but WITHOUT ANY WARRANTY; without even the implied warranty of
00012    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013    Lesser General Public License for more details.
00014    
00015    You should have received a copy of the GNU Lesser General Public
00016    License along with this library; if not, write to the Free Software
00017    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA 
00018 */
00019 
00020 /*
00021    Author: Eric Viara <viara@sysra.com>
00022 */
00023 
00024 
00025 #ifndef _eyedb_dbm_h_
00026 #define _eyedb_dbm_h_
00027 
00028 #include <eyedb/eyedb_p.h>
00029 //#include <eyedb/dbm.h>
00030 
00031 namespace eyedb {
00032 
00033 class DBM_Database : public Database {
00034 
00035   static LinkedList *dbmdb_list;
00036   Status create();
00037   Status update();
00038   Status realize(const RecMode* = RecMode::NoRecurs);
00039   Status remove(const RecMode* = RecMode::NoRecurs);
00040   Status lockId(Oid &oid);
00041   Status unlockId(const Oid &oid);
00042 
00043   // ----------------------------------------------------------------------
00044   // DBM_Database Interface
00045   // ----------------------------------------------------------------------
00046  public:
00047   DBM_Database(const char * = NULL);
00048 
00049   Status getDatabases(LinkedList *);
00050 
00051   static const char *getDbName();
00052   static int getDbid();
00053 
00054   Status create(Connection *, const char *,
00055                    const char *, const char *, DbCreateDescription * = NULL);
00056 
00057   Status addUser(Connection *, const char *, const char *,
00058                     UserType user_type,
00059                     const char * = NULL, const char * = NULL);
00060 
00061   Status deleteUser(Connection *, const char *,
00062                        const char * = NULL, const char * = NULL);
00063 
00064   Status setUserPasswd(Connection *, const char *, const char *,
00065                           const char * = NULL, const char * = NULL);
00066   Status setPasswd(Connection *, const char *,
00067                       const char * = NULL, const char * = NULL);
00068 
00069   Status setUserSysAccess(Connection *, const char *, SysAccessMode,
00070                              const char * = NULL, const char * = NULL);
00071   virtual ~DBM_Database();
00072 
00073   // ----------------------------------------------------------------------
00074   // DBM_Database Restricted Access (conceptually private)
00075   // ----------------------------------------------------------------------
00076  public:
00077   static void init();
00078   static void _release();
00079   static void _dble_underscore_release();
00080   static Status updateSchema(Database *);
00081 
00082   static DBM_Database *getDBM_Database(const char *);
00083   static DBM_Database *setDBM_Database(const char *, Database *);
00084 
00085   DBM_Database(const char *, Database *);
00086 
00087   Status getDbFile(const char **, int *, const char *&);
00088 
00089   Status getNewUid(int &);
00090   Status getNewDbid(int &);
00091 
00092   Status createEntry(int, const char *, const char *dbfile);
00093   Status updateEntry(int, const char *, const char *, const char *dbfile);
00094   Status removeEntry(const char *);
00095 
00096   Status get_sys_user_access(const char *, SysUserAccess **,
00097                                 Bool justCheck, const char *);
00098   Status get_db_user_access(const char *, const char *, UserEntry **,
00099                                DBUserAccess **, DBAccessMode *);
00100   Status add_user(const char *, const char *, UserType user_type);
00101   Status delete_user(const char *);
00102   Status user_passwd_set(const char *, const char *);
00103   Status default_db_access_set(const char *, DBAccessMode);
00104   Status user_db_access_set(const char *, const char *, DBAccessMode);
00105   Status user_sys_access_set(const char *, SysAccessMode);
00106 
00107   Status getUser(const char *, UserEntry *&);
00108   Status getDBEntry(const char *, DBEntry *&);
00109   Status getDBEntries(const char *, DBEntry **&, int &cnt,
00110                          const char *op);
00111   Status setSchema(const char *, const Oid &sch_oid);
00112   static const char defaultDBMDB[];
00113   static std::string makeTempName(int dbid);
00114 
00115  private:
00116   Status getNewID(const char *, const char *, int, int &, Bool);
00117 };
00118 
00119 }
00120 
00121 #endif

Generated on Mon Dec 22 18:15:54 2008 for eyedb by  doxygen 1.5.3