template.c

00001 /***************************************************************************
00002             template.c  -  Skeleton of backends to access the Key Database
00003                              -------------------
00004     begin                : Mon Dec 26 2004
00005     copyright            : (C) 2004 by Avi Alkalay
00006     email                : avi@unix.sh
00007  ***************************************************************************/
00008 
00009 /***************************************************************************
00010  *                                                                         *
00011  *   This program is free software; you can redistribute it and/or modify  *
00012  *   it under the terms of the BSD License (revised).                      *
00013  *                                                                         *
00014  ***************************************************************************/
00015 
00016 
00017 
00018 /***************************************************************************
00019  *                                                                         *
00020  *   This is the skeleton of the methods you'll have to implement in order *
00021  *   to provide libelektra.so a valid backend.                             *
00022  *   Simple fill the empty _backend functions with your code and you are   *
00023  *   ready to go.                                                          *
00024  *                                                                         *
00025  ***************************************************************************/
00026 
00027 
00028 /* Subversion stuff
00029 
00030 $Id: template.c 692 2006-03-20 13:59:43Z aviram $
00031 
00032 */
00033 
00034 
00035 
00036 #include <kdbbackend.h>
00037 
00038 
00039 #define BACKENDNAME "my_backend"
00040 
00041 
00042 
00044 #ifdef PATH_MAX
00045 #define MAX_PATH_LENGTH PATH_MAX
00046 
00047 #elif __USE_POSIX
00048 #define MAX_PATH_LENGTH _POSIX_PATH_MAX
00049 #else 
00050 #define MAX_PATH_LENGTH 4096
00051 #endif
00052 
00053 
00054 
00055 
00130 int kdbOpen_backend(KDBHandle *handle) {
00131     /* backend initialization logic */
00132     return 0;
00133 }
00134 
00135 
00136 
00137 
00151 int kdbClose_backend(KDBHandle *handle) {
00152     /* free all backend resources and shut it down */
00153     return 0; /* success */
00154 }
00155 
00156 
00157 
00168 int kdbStatKey_backend(KDBHandle handle, Key *key) {
00169     /* get the most possible key metainfo */
00170     return 0; /* success */
00171 }
00172 
00173 
00184 int kdbGetKey_backend(KDBHandle handle, Key *key) {
00185     /* fully gets a key */
00186     return 0; /* success */
00187 }
00188 
00189 
00190 
00203 int kdbSetKey_backend(KDBHandle handle, Key *key) {
00204     /* fully sets a key */
00205     return 0; /* success */
00206 }
00207 
00208 
00209 
00216 int kdbRename_backend(KDBHandle handle, Key *key, const char *newName) {
00217     /* rename a key to another name */
00218     return 0; /* success */
00219 }
00220 
00221 
00222 
00223 
00230 int kdbRemoveKey_backend(KDBHandle handle, const Key *key) {
00231     /* remove a key from the database */
00232     return 0;  /* success */
00233 }
00234 
00235 
00236 
00237 
00244 ssize_t kdbGetKeyChildKeys_backend(KDBHandle handle, const Key *parentKey, KeySet *returned, unsigned long options) {
00245     /* retrieve multiple hierarchical keys */
00246     return returned->size; /* success */
00247 }
00248 
00249 
00260 int kdbSetKeys_backend(KDBHandle handle, KeySet *ks) {
00261     /* set many keys */
00262     return 0;
00263 }
00264 
00265 
00274 uint32_t kdbMonitorKeys_backend(KDBHandle handle, KeySet *interests, uint32_t diffMask,
00275         unsigned long iterations, unsigned sleep) {
00276     return 0;
00277 }
00278 
00279 
00280 
00290 uint32_t kdbMonitorKey_backend(KDBHandle handle, Key *interest, uint32_t diffMask,
00291         unsigned long iterations, unsigned sleep) {
00292     return 0;
00293 }
00294 
00295 
00311 KDBBackend *kdbBackendFactory(void) {
00312     return kdbBackendExport(BACKENDNAME,
00313         KDB_BE_OPEN,           &kdbOpen_backend,
00314         KDB_BE_CLOSE,          &kdbClose_backend,
00315         KDB_BE_GETKEY,         &kdbGetKey_backend,
00316         KDB_BE_SETKEY,         &kdbSetKey_backend,
00317         KDB_BE_STATKEY,        &kdbStatKey_backend,
00318         KDB_BE_RENAME,         &kdbRename_backend,
00319         KDB_BE_REMOVEKEY,      &kdbRemoveKey_backend,
00320         KDB_BE_GETCHILD,       &kdbGetKeyChildKeys_backend,
00321         KDB_BE_MONITORKEY,     &kdbMonitorKey_backend,
00322         KDB_BE_MONITORKEYS,    &kdbMonitorKeys_backend,
00323         /* set to default implementation: 
00324          * Don't set default. */
00325 /*      KDB_BE_SETKEYS,        &kdbSetKeys_default,*/
00326         KDB_BE_END);
00327 }

Generated on Sat Aug 25 12:17:55 2007 for Elektra Project by  doxygen 1.5.2