Sourceforge.net - The VCF's Project Host
   The VCF Website Home   |   Online Discussion Forums   |   Sourceforge.net Project Page   

vcf/JavaScriptKit/js-impl/jsdhash.h File Reference


Classes

struct  JSDHashEntryHdr
struct  JSDHashTable
struct  JSDHashTableOps
struct  JSDHashEntryStub

Defines

#define JS_DHASH_FASTCALL
#define JS_DHASH_SIZE_LIMIT   JS_BIT(24)
#define JS_DHASH_MIN_SIZE   16
#define JS_DHASH_BITS   32
#define JS_DHASH_GOLDEN_RATIO   0x9E3779B9U
#define JS_DHASH_ENTRY_IS_FREE(entry)   ((entry)->keyHash == 0)
#define JS_DHASH_ENTRY_IS_BUSY(entry)   (!JS_DHASH_ENTRY_IS_FREE(entry))
#define JS_DHASH_ENTRY_IS_LIVE(entry)   ((entry)->keyHash >= 2)
#define JS_DHASH_TABLE_SIZE(table)   JS_BIT(JS_DHASH_BITS - (table)->hashShift)
#define JS_DHASH_MIN_ALPHA(table, k)

Typedefs

typedef uint32 JSDHashNumber
typedef JSDHashEntryHdr JSDHashEntryHdr
typedef JSDHashEntryStub JSDHashEntryStub
typedef JSDHashTable JSDHashTable
typedef JSDHashTableOps JSDHashTableOps
typedef void *(* JS_DLL_CALLBACK )(JSDHashTable *table, uint32 nbytes)
typedef void(* JS_DLL_CALLBACK )(JSDHashTable *table, void *ptr)
typedef const void *(* JS_DLL_CALLBACK )(JSDHashTable *table, JSDHashEntryHdr *entry)
typedef JSDHashNumber(* JS_DLL_CALLBACK )(JSDHashTable *table, const void *key)
typedef JSBool(* JS_DLL_CALLBACK )(JSDHashTable *table, const JSDHashEntryHdr *entry, const void *key)
typedef void(* JS_DLL_CALLBACK )(JSDHashTable *table, const JSDHashEntryHdr *from, JSDHashEntryHdr *to)
typedef void(* JS_DLL_CALLBACK )(JSDHashTable *table, JSDHashEntryHdr *entry)
typedef void(* JS_DLL_CALLBACK )(JSDHashTable *table)
typedef JSBool(* JS_DLL_CALLBACK )(JSDHashTable *table, JSDHashEntryHdr *entry, const void *key)
typedef JSDHashOperator(* JS_DLL_CALLBACK )(JSDHashTable *table, JSDHashEntryHdr *hdr, uint32 number, void *arg)

Enumerations

enum  JSDHashOperator {
  JS_DHASH_LOOKUP = 0, JS_DHASH_ADD = 1, JS_DHASH_REMOVE = 2, JS_DHASH_NEXT = 0,
  JS_DHASH_STOP = 1
}

Functions

 JS_PUBLIC_API (void *) JS_DHashAllocTable(JSDHashTable *table
 JS_PUBLIC_API (void) JS_DHashFreeTable(JSDHashTable *table
 JS_PUBLIC_API (JSDHashNumber) JS_DHashStringKey(JSDHashTable *table
 JS_PUBLIC_API (const void *) JS_DHashGetKeyStub(JSDHashTable *table
 JS_PUBLIC_API (JSBool) JS_DHashMatchEntryStub(JSDHashTable *table
 JS_PUBLIC_API (const JSDHashTableOps *) JS_DHashGetStubOps(void)
 JS_PUBLIC_API (JSDHashTable *) JS_NewDHashTable(const JSDHashTableOps *ops
 JS_PUBLIC_API (JSDHashEntryHdr *) JS_DHASH_FASTCALL JS_DHashTableOperate(JSDHashTable *table
 JS_PUBLIC_API (uint32) JS_DHashTableEnumerate(JSDHashTable *table

Variables

uint32 nbytes
void * ptr
const void * key
JSDHashEntryHdrentry
const void * key
const JSDHashEntryHdrentry
const JSDHashEntryHdr const
void * 
key
const JSDHashEntryHdrentry
const JSDHashEntryHdr const
void * 
key
const JSDHashEntryHdrfrom
const JSDHashEntryHdr JSDHashEntryHdrto
JSDHashEntryHdrentry
JSDHashEntryHdrentry
void * data
void uint32 entrySize
void uint32 uint32 capacity
const JSDHashTableOpsops
const JSDHashTableOps void * data
const JSDHashTableOps void
uint32 
entrySize
const JSDHashTableOps void
uint32 uint32 
capacity
float maxAlpha
float float minAlpha
const void * key
const void JSDHashOperator op
JSDHashEntryHdrentry
JSDHashEnumerator etor
JSDHashEnumerator void * arg

Define Documentation

#define JS_DHASH_BITS   32
 

#define JS_DHASH_ENTRY_IS_BUSY entry   )     (!JS_DHASH_ENTRY_IS_FREE(entry))
 

#define JS_DHASH_ENTRY_IS_FREE entry   )     ((entry)->keyHash == 0)
 

#define JS_DHASH_ENTRY_IS_LIVE entry   )     ((entry)->keyHash >= 2)
 

#define JS_DHASH_FASTCALL
 

#define JS_DHASH_GOLDEN_RATIO   0x9E3779B9U
 

#define JS_DHASH_MIN_ALPHA table,
 ) 
 

Value:

((float)((table)->entrySize / sizeof(void *) - 1)                         \
     / ((table)->entrySize / sizeof(void *) + (k)))

#define JS_DHASH_MIN_SIZE   16
 

#define JS_DHASH_SIZE_LIMIT   JS_BIT(24)
 

#define JS_DHASH_TABLE_SIZE table   )     JS_BIT(JS_DHASH_BITS - (table)->hashShift)
 


Typedef Documentation

typedef JSDHashOperator(* JS_DLL_CALLBACK)(JSDHashTable *table, JSDHashEntryHdr *hdr, uint32 number, void *arg)
 

typedef JSBool(* JS_DLL_CALLBACK)(JSDHashTable *table, JSDHashEntryHdr *entry, const void *key)
 

typedef void(* JS_DLL_CALLBACK)(JSDHashTable *table)
 

typedef void(* JS_DLL_CALLBACK)(JSDHashTable *table, JSDHashEntryHdr *entry)
 

typedef void(* JS_DLL_CALLBACK)(JSDHashTable *table, const JSDHashEntryHdr *from, JSDHashEntryHdr *to)
 

typedef JSBool(* JS_DLL_CALLBACK)(JSDHashTable *table, const JSDHashEntryHdr *entry, const void *key)
 

typedef JSDHashNumber(* JS_DLL_CALLBACK)(JSDHashTable *table, const void *key)
 

typedef const void*(* JS_DLL_CALLBACK)(JSDHashTable *table, JSDHashEntryHdr *entry)
 

typedef void(* JS_DLL_CALLBACK)(JSDHashTable *table, void *ptr)
 

typedef void*(* JS_DLL_CALLBACK)(JSDHashTable *table, uint32 nbytes)
 

typedef struct JSDHashEntryHdr JSDHashEntryHdr
 

typedef struct JSDHashEntryStub JSDHashEntryStub
 

typedef uint32 JSDHashNumber
 

typedef struct JSDHashTable JSDHashTable
 

typedef struct JSDHashTableOps JSDHashTableOps
 


Enumeration Type Documentation

enum JSDHashOperator
 

Enumerator:
JS_DHASH_LOOKUP 
JS_DHASH_ADD 
JS_DHASH_REMOVE 
JS_DHASH_NEXT 
JS_DHASH_STOP 


Function Documentation

JS_PUBLIC_API uint32   ) 
 

JS_PUBLIC_API JSDHashEntryHdr  ) 
 

JS_PUBLIC_API JSDHashTable  )  const
 

JS_PUBLIC_API const JSDHashTableOps  ) 
 

JS_PUBLIC_API JSBool   ) 
 

JS_PUBLIC_API const void *   ) 
 

JS_PUBLIC_API JSDHashNumber   ) 
 

JS_PUBLIC_API void   ) 
 

JS_PUBLIC_API void *   ) 
 


Variable Documentation

JSDHashEnumerator void* arg
 

const JSDHashTableOps void uint32 uint32 capacity
 

void uint32 uint32 capacity
 

const JSDHashTableOps void* data
 

void* data
 

JSDHashEntryHdr* entry
 

JSDHashEntryHdr* entry
 

JSDHashEntryHdr* entry
 

const JSDHashEntryHdr* entry
 

const JSDHashEntryHdr* entry
 

JSDHashEntryHdr* entry
 

const JSDHashTableOps void uint32 entrySize
 

void uint32 entrySize
 

JSDHashEnumerator etor
 

const JSDHashEntryHdr* from
 

const void* key
 

const JSDHashEntryHdr const void* key
 

const JSDHashEntryHdr const void* key
 

const void* key
 

const void* key
 

float maxAlpha
 

float float minAlpha
 

uint32 nbytes
 

const void JSDHashOperator op
 

const JSDHashTableOps* ops
 

void* ptr
 

const JSDHashEntryHdr JSDHashEntryHdr* to
 

   Comments or Suggestions?    License Information