00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef KDBBACKEND_H
00024 #define KDBBACKEND_H
00025
00026 typedef struct _KDBBackend * KDBHandle;
00027
00028 #include <pthread.h>
00029 #include <kdb.h>
00030 #include <kdbprivate.h>
00031
00032 #ifdef ELEKTRA_STATIC
00033 #define KDBEXPORT(module) KDBBackend *libelektra_##module##_LTX_kdbBackendFactory(void)
00034 #else
00035 #define KDBEXPORT(module) KDBBackend *kdbBackendFactory(void)
00036 #endif
00037
00038 typedef struct _KDBBackend KDBBackend;
00039
00040
00041
00042
00043
00049 enum KDBBackendMethod {
00050 KDB_BE_OPEN=1,
00051 KDB_BE_CLOSE=1<<1,
00052 KDB_BE_STATKEY=1<<2,
00053 KDB_BE_GETKEY=1<<3,
00054 KDB_BE_SETKEY=1<<4,
00055 KDB_BE_SETKEYS=1<<5,
00056 KDB_BE_RENAME=1<<6,
00057 KDB_BE_REMOVEKEY=1<<7,
00058 KDB_BE_GETCHILD=1<<8,
00059 KDB_BE_MONITORKEY=1<<9,
00060 KDB_BE_MONITORKEYS=1<<10,
00061 KDB_BE_END=0
00062 };
00063
00064
00065 #ifdef __cplusplus
00066 extern "C" {
00067 #endif
00068
00069 KDBBackend *kdbBackendExport(const char *backendName, ...);
00070
00071 typedef KDBBackend *(*KDBBackendFactory)(void);
00072
00073
00074 int kdbSetKeys_default(KDBHandle handle, KeySet *ks);
00075 int kdbRename_default(KDBHandle handle, Key *key, const char *newName);
00076 uint32_t kdbMonitorKeys_default(KDBHandle handle, KeySet *interests,
00077 uint32_t diffMask, unsigned long iterations, unsigned sleep);
00078 uint32_t kdbMonitorKey_default(KDBHandle handle, Key *interest,
00079 uint32_t diffMask, unsigned long iterations, unsigned sleep);
00080
00081
00082
00083 void *kdbhSetBackendData(KDBHandle handle, void *data);
00084 void *kdbhGetBackendData(KDBHandle handle);
00085
00086 pid_t kdbhGetPID(const KDBHandle handle);
00087 pid_t kdbhSetPID(KDBHandle handle,pid_t pid);
00088
00089 pthread_t kdbhGetTID(const KDBHandle handle);
00090 pthread_t kdbhSetTID(KDBHandle handle,pthread_t tid);
00091
00092 uid_t kdbhGetUID(const KDBHandle handle);
00093 uid_t kdbhSetUID(KDBHandle handle,uid_t uid);
00094
00095 gid_t kdbhGetGID(const KDBHandle handle);
00096 gid_t kdbhSetGID(KDBHandle handle,gid_t gid);
00097
00098 mode_t kdbhGetUMask(const KDBHandle handle);
00099 mode_t kdbhSetUMask(KDBHandle handle,mode_t umask);
00100
00101 char *kdbhGetUserName(const KDBHandle handle);
00102 char *kdbhSetUserName(KDBHandle handle,char *userName);
00103
00104 char *kdbhGetBackendName(const KDBHandle handle);
00105 char *kdbhSetBackendName(KDBHandle handle,char *backendName);
00106
00107 #ifdef __cplusplus
00108 }
00109 #endif
00110
00111
00112
00113
00114
00115 #endif