aboutsummaryrefslogtreecommitdiffstats
path: root/src/manager/lib/dict.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/manager/lib/dict.c')
-rw-r--r--src/manager/lib/dict.c154
1 files changed, 0 insertions, 154 deletions
diff --git a/src/manager/lib/dict.c b/src/manager/lib/dict.c
deleted file mode 100644
index a5fdd52d5..000000000
--- a/src/manager/lib/dict.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/**
- * @file dict.c
- *
- * @brief Implementation of dict_t.
- *
- */
-
-/*
- * Copyright (C) 2007 Martin Willi
- * Hochschule fuer Technik Rapperswil
- *
- * 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 2 of the License, or (at your
- * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
- *
- * 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.
- */
-
-#include "dict.h"
-
-#include <utils/linked_list.h>
-
-
-typedef struct private_dict_t private_dict_t;
-
-/**
- * private data of dict
- */
-struct private_dict_t {
-
- /**
- * public functions
- */
- dict_t public;
-
- /**
- * baaah, we really should have a hashtable for this
- */
- linked_list_t *list;
-
- /**
- * key comparator function
- */
- bool(*key_comparator)(void*,void*);
-
- /**
- * destructor function for key
- */
- void(*key_destructor)(void*);
-
- /**
- * destructor function for value
- */
- void(*value_destructor)(void*);
-};
-
-/**
- * key value pair to store entries
- */
-typedef struct {
- void *key;
- void *value;
-} key_value_t;
-
-/**
- * Implementation of dict_t.get.
- */
-static void* get(private_dict_t *this, void *key)
-{
- key_value_t *kv;
- iterator_t *iterator;
- void *value = NULL;
-
- iterator = this->list->create_iterator(this->list, TRUE);
- while (iterator->iterate(iterator, (void**)&kv))
- {
- if (this->key_comparator(kv->key, key))
- {
- value = kv->value;
- break;
- }
- }
- iterator->destroy(iterator);
- return value;
-}
-/**
- * Implementation of dict_t.set.
- */
-static void set(private_dict_t *this, void *key, void *value)
-{
- /* we don't overwrite, just prepend */
- key_value_t *kv = malloc_thing(key_value_t);
- kv->key = key;
- kv->value = value;
- this->list->insert_first(this->list, kv);
-}
-
-
-/**
- * comparator for strings
- */
-bool dict_streq(void *a, void *b)
-{
- return streq(a, b);
-}
-
-/**
- * Implementation of dict_t.destroy
- */
-static void destroy(private_dict_t *this)
-{
- key_value_t *kv;
-
- while (this->list->remove_last(this->list, (void**)&kv) == SUCCESS)
- {
- if (this->key_destructor)
- {
- this->key_destructor(kv->key);
- }
- if (this->value_destructor)
- {
- this->value_destructor(kv->value);
- }
- free(kv);
- }
- this->list->destroy(this->list);
- free(this);
-}
-
-/*
- * see header file
- */
-dict_t *dict_create(bool(*key_comparator)(void*,void*),
- void(*key_destructor)(void*),
- void(*value_destructor)(void*))
-{
- private_dict_t *this = malloc_thing(private_dict_t);
-
- this->public.set = (void(*)(dict_t*, void *key, void *value))set;
- this->public.get = (void*(*)(dict_t*, void *key))get;
- this->public.destroy = (void(*)(dict_t*))destroy;
-
- this->list = linked_list_create();
- this->key_comparator = key_comparator;
- this->key_destructor = key_destructor;
- this->value_destructor = value_destructor;
-
- return &this->public;
-}
-