summaryrefslogtreecommitdiff
path: root/ecp/src/htable/hashtable_itr.h
diff options
context:
space:
mode:
Diffstat (limited to 'ecp/src/htable/hashtable_itr.h')
-rwxr-xr-xecp/src/htable/hashtable_itr.h132
1 files changed, 0 insertions, 132 deletions
diff --git a/ecp/src/htable/hashtable_itr.h b/ecp/src/htable/hashtable_itr.h
deleted file mode 100755
index 47b29cc..0000000
--- a/ecp/src/htable/hashtable_itr.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/* Copyright (C) 2002, 2004 Christopher Clark <firstname.lastname@cl.cam.ac.uk> */
-
-#ifndef __HASHTABLE_ITR_CWC22__
-#define __HASHTABLE_ITR_CWC22__
-#include "hashtable.h"
-#include "hashtable_private.h" /* needed to enable inlining */
-
-/*****************************************************************************/
-/* This struct is only concrete here to allow the inlining of two of the
- * accessor functions. */
-struct hashtable_itr
-{
- struct hashtable *h;
- struct entry *e;
- struct entry *parent;
- unsigned int index;
-};
-
-
-/*****************************************************************************/
-/* hashtable_iterator
- */
-
-int
-hashtable_iterator(struct hashtable_itr *, struct hashtable *h);
-
-/*****************************************************************************/
-/* hashtable_iterator_key
- * - return the key of the (key,value) pair at the current position */
-
-extern inline void *
-hashtable_iterator_key(struct hashtable_itr *i)
-{
- return i->e->k;
-}
-
-/*****************************************************************************/
-/* hashtable_iterator_value
- * - return the value of the (key,value) pair at the current position */
-
-extern inline void *
-hashtable_iterator_value(struct hashtable_itr *i)
-{
- return i->e->v;
-}
-
-/*****************************************************************************/
-/* hashtable_iterator_entry
- * - return the hash table entry at the current position */
-
-extern inline struct entry *
-hashtable_iterator_entry(struct hashtable_itr *i)
-{
- return i->e;
-}
-
-/*****************************************************************************/
-/* advance - advance the iterator to the next element
- * returns zero if advanced to end of table */
-
-int
-hashtable_iterator_advance(struct hashtable_itr *itr);
-
-/*****************************************************************************/
-/* remove - remove current element and advance the iterator to the next element
- * NB: if you need the value to free it, read it before
- * removing. ie: beware memory leaks!
- * returns zero if advanced to end of table */
-
-int
-hashtable_iterator_remove(struct hashtable_itr *itr);
-
-/*****************************************************************************/
-/* search - overwrite the supplied iterator, to point to the entry
- * matching the supplied key.
- * returns zero if not found. */
-int
-hashtable_iterator_search(struct hashtable_itr *itr, void *k);
-
-#define DEFINE_HASHTABLE_ITERATOR_SEARCH(fnname, keytype) \
-int fnname (struct hashtable_itr *i, keytype *k) \
-{ \
- return (hashtable_iterator_search(i,k)); \
-}
-
-/*****************************************************************************/
-/* search next - advance the iterator to point to next entry
- * matching the supplied key.
- * returns zero if not found. */
-int
-hashtable_iterator_search_next(struct hashtable_itr *itr, void *k);
-
-#define DEFINE_HASHTABLE_ITERATOR_SEARCH_NEXT(fnname, keytype) \
-int fnname (struct hashtable_itr *i, keytype *k) \
-{ \
- return (hashtable_iterator_search_next(i,k)); \
-}
-
-#endif /* __HASHTABLE_ITR_CWC22__*/
-
-/*
- * Copyright (c) 2002, 2004, Christopher Clark
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * * Neither the name of the original author; nor the names of any contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
- * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/