00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef _eyedb_dbm_h_
00026 #define _eyedb_dbm_h_
00027
00028 #include <eyedb/eyedb_p.h>
00029
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
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
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