diff --git a/include/storage/storage.h b/include/storage/storage.h index 277a9da..593f515 100644 --- a/include/storage/storage.h +++ b/include/storage/storage.h @@ -45,6 +45,7 @@ CLASS(Storage) { StoragePutResult storagePut(Storage, char *, size_t, char *, size_t); StoragePutResult storageUpdate(Storage, char *, size_t, char *, size_t); void storageGet(Storage, char *, size_t, char **, size_t *); +int storageDelete(Storage, char *, size_t); #endif // __STORAGE_H__ diff --git a/src/storage/Makefile.am b/src/storage/Makefile.am index 8bd34f0..33a2e45 100644 --- a/src/storage/Makefile.am +++ b/src/storage/Makefile.am @@ -5,5 +5,5 @@ AM_CFLAGS += -I../../include/ noinst_LTLIBRARIES = libstorage.la -libstorage_la_SOURCES = storage.c get.c put.c update.c +libstorage_la_SOURCES = storage.c get.c put.c update.c delete.c libstorage_la_CFLAGS = $(AM_CFLAGS) diff --git a/src/storage/delete.c b/src/storage/delete.c new file mode 100644 index 0000000..3b5ba2d --- /dev/null +++ b/src/storage/delete.c @@ -0,0 +1,49 @@ +/** + * \file + * + * \author Georg Hopp + * + * \copyright + * Copyright © 2012 Georg Hopp + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include +#include +#include + +#include "class.h" +#include "storage/storage.h" + +#include "utils/memory.h" +#include "commons.h" + +int +storageDelete(Storage this, char * _key, size_t nkey) +{ + datum key = {_key, nkey}; + + switch (gdbm_delete(this->gdbm, key)) { + case 0: + return TRUE; + case -1: + default: + return FALSE; + } + + return FALSE; +} + +// vim: set ts=4 sw=4: