#include <integeritem.h>
-unsigned long integeritem_hashcode(itemkeyfun *this,void *key) {
+/**
+ * This callback function returns the hashcode of a key. The hashcode
+ * is used for indexing into the backing vector for finding the an
+ * item via its key. The same key must map consistently to the same
+ * hashcode while the hashtable contains an item with that key.
+ * Different keys map map to the same hashcode, in which case the
+ * vector placement is made at the first empty or hole slot following
+ * the hashcode index.
+ */
+static unsigned long integeritem_hashcode(itemkeyfun *this,void *key) {
return (unsigned long) key;
}
* This callback function determines whether an item has a
* given key or not.
*/
-int integeritem_haskey(itemkeyfun *this,void *item,void *key) {
+static int integeritem_haskey(itemkeyfun *this,void *item,void *key) {
return item == key;
}
* This callback function returns the key of an item by considering
* the arity and schema.
*/
-void *integeritem_itemkey(itemkeyfun *this,void *item) {
+static void *integeritem_itemkey(itemkeyfun *this,void *item) {
return item;
}
* This callback function handles a key obtained from the itemkey
* callback function to reclaim temporary allocation.
*/
-void integeritem_releasekey(itemkeyfun *this,void *key) {
+static void integeritem_releasekey(itemkeyfun *this,void *key) {
}
itemkeyfun integeritem = {
*/
extern itemkeyfun integeritem;
-/**
- * This callback function returns the hashcode of a key. The hashcode
- * is used for indexing into the backing vector for finding the an
- * item via its key. The same key must map consistently to the same
- * hashcode while the hashtable contains an item with that key.
- * Different keys map map to the same hashcode, in which case the
- * vector placement is made at the first empty or hole slot following
- * the hashcode index.
- */
-extern unsigned long integeritem_hashcode(itemkeyfun *this,void *key);
-
-/**
- * This callback function determines whether an item has a
- * given key or not.
- */
-extern int integeritem_haskey(itemkeyfun *this,void *item,void *key);
-
-/**
- * This callback function returns the key of an item by considering
- * the arity and schema.
- */
-extern void *integeritem_itemkey(itemkeyfun *this,void *item);
-
-/**
- * This callback function handles a key obtained from the itemkey
- * callback function to reclaim temporary allocation.
- */
-extern void integeritem_releasekey(itemkeyfun *this,void *key);
-
#endif
#include <stringitem.h>
#include <hashvector.h>
-unsigned long integeritem_hashcode(itemkeyfun *this,void *key) {
+/**
+ * This callback function returns the hashcode of a key. The hashcode
+ * is used for indexing into the backing vector for finding the an
+ * item via its key. The same key must map consistently to the same
+ * hashcode while the hashtable contains an item with that key.
+ * Different keys map map to the same hashcode, in which case the
+ * vector placement is made at the first empty or hole slot following
+ * the hashcode index.
+ */
+static unsigned long stringitem_hashcode(itemkeyfun *this,void *key) {
return hashvector_hashcode( (unsigned char*)key, strlen( (char*)key ) );
}
* This callback function determines whether an item has a
* given key or not.
*/
-int integeritem_haskey(itemkeyfun *this,void *item,void *key) {
+static int stringitem_haskey(itemkeyfun *this,void *item,void *key) {
return strcmp( item, key ) == 0;
}
* This callback function returns the key of an item by considering
* the arity and schema.
*/
-void *integeritem_itemkey(itemkeyfun *this,void *item) {
+static void *stringitem_itemkey(itemkeyfun *this,void *item) {
return item;
}
* This callback function handles a key obtained from the itemkey
* callback function to reclaim temporary allocation.
*/
-void integeritem_releasekey(itemkeyfun *this,void *key) {
+static void stringitem_releasekey(itemkeyfun *this,void *key) {
}
itemkeyfun stringitem = {
.itemkey = stringitem_itemkey,
.releasekey = stringitem_releasekey
};
-
-
*/
extern itemkeyfun stringitem;
-/**
- * This callback function returns the hashcode of a key. The hashcode
- * is used for indexing into the backing vector for finding the an
- * item via its key. The same key must map consistently to the same
- * hashcode while the hashtable contains an item with that key.
- * Different keys map map to the same hashcode, in which case the
- * vector placement is made at the first empty or hole slot following
- * the hashcode index.
- */
-extern unsigned long stringitem_hashcode(itemkeyfun *this,void *key);
-
-/**
- * This callback function determines whether an item has a
- * given key or not.
- */
-extern int stringitem_haskey(itemkeyfun *this,void *item,void *key);
-
-/**
- * This callback function returns the key of an item by considering
- * the arity and schema.
- */
-extern void *stringitem_itemkey(itemkeyfun *this,void *item);
-
-/**
- * This callback function handles a key obtained from the itemkey
- * callback function to reclaim temporary allocation.
- */
-extern void stringitem_releasekey(itemkeyfun *this,void *key);
-
-
#endif