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 #include <eyedbsm_p.h>
00026 #include <transaction.h>
00027 #include <mutex.h>
00028
00029 namespace eyedbsm {
00030 extern void lockInit(DbDescription *, DbLock *, const char *name);
00031 extern void lockLightInit(DbDescription *, DbLock *);
00032
00033 extern Status lockS(DbDescription *, DbLock *, unsigned int, unsigned int);
00034
00035 extern Status lockX(DbDescription *, DbLock *, unsigned int, unsigned int);
00036
00037 extern Status unlockS(DbDescription *, DbLock *, unsigned int);
00038
00039 extern Status unlockX(DbDescription *, DbLock *, unsigned int);
00040
00041 extern Status checkLock(DbDescription *, DbLock *);
00042
00043 extern Status pobjLock(DbHandle const *dbh, XMHandle *,
00044 const TransactionContext *,
00045 Transaction *, XMOffset,
00046 LockMode lockMode, PObject *,
00047 Mutex *, unsigned int, unsigned int);
00048
00049 extern Status pobjUnlock(DbDescription *vd, XMHandle *, PObject *,
00050 LockMode lockMode, Mutex *, unsigned int);
00051
00052 extern bool findDbLockXID(DbDescription *vd, DbLock *, unsigned int, bool *,
00053 Boolean);
00054 }