include/ruby/st.h File Reference

#include "ruby/config.h"
#include "ruby/defines.h"

Include dependency graph for st.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  st_hash_type
struct  st_table

Defines

#define RUBY_ST_H   1
#define ST_DATA_T_DEFINED
#define CHAR_BIT   8
#define _(args)   args
#define ANYARGS
#define SIZEOF_ST_INDEX_T   SIZEOF_VOIDP
#define ST_INDEX_BITS   (sizeof(st_index_t) * CHAR_BIT)
#define st_is_member(table, key)   st_lookup(table,key,(st_data_t *)0)
#define st_hash_start(h)   ((st_index_t)(h))

Typedefs

typedef unsigned long st_data_t
typedef struct st_table st_table
typedef st_data_t st_index_t
typedef int st_compare_func (st_data_t, st_data_t)
typedef st_index_t st_hash_func (st_data_t)
typedef char st_check_for_sizeof_st_index_t [SIZEOF_VOIDP==(int) sizeof(st_index_t)?1:-1]

Enumerations

enum  st_retval { ST_CONTINUE, ST_STOP, ST_DELETE, ST_CHECK }

Functions

st_tablest_init_table (const struct st_hash_type *)
st_tablest_init_table_with_size (const struct st_hash_type *, st_index_t)
st_tablest_init_numtable (void)
st_tablest_init_numtable_with_size (st_index_t)
st_tablest_init_strtable (void)
st_tablest_init_strtable_with_size (st_index_t)
st_tablest_init_strcasetable (void)
st_tablest_init_strcasetable_with_size (st_index_t)
int st_delete (st_table *, st_data_t *, st_data_t *)
int st_delete_safe (st_table *, st_data_t *, st_data_t *, st_data_t)
int st_insert (st_table *, st_data_t, st_data_t)
int st_insert2 (st_table *, st_data_t, st_data_t, st_data_t(*)(st_data_t))
int st_lookup (st_table *, st_data_t, st_data_t *)
int st_get_key (st_table *, st_data_t, st_data_t *)
int st_foreach (st_table *, int(*)(ANYARGS), st_data_t)
int st_reverse_foreach (st_table *, int(*)(ANYARGS), st_data_t)
void st_add_direct (st_table *, st_data_t, st_data_t)
void st_free_table (st_table *)
void st_cleanup_safe (st_table *, st_data_t)
void st_clear (st_table *)
st_tablest_copy (st_table *)
int st_numcmp (st_data_t, st_data_t)
st_index_t st_numhash (st_data_t)
int st_strcasecmp (const char *s1, const char *s2)
int st_strncasecmp (const char *s1, const char *s2, size_t n)
size_t st_memsize (const st_table *)
st_index_t st_hash (const void *ptr, size_t len, st_index_t h)
st_index_t st_hash_uint32 (st_index_t h, uint32_t i)
st_index_t st_hash_uint (st_index_t h, st_index_t i)
st_index_t st_hash_end (st_index_t h)
st_index_t st_hash_start (st_index_t h)


Define Documentation

#define _ ( args   )     args

Definition at line 53 of file st.h.

#define ANYARGS

Definition at line 59 of file st.h.

#define CHAR_BIT   8

Definition at line 49 of file st.h.

#define RUBY_ST_H   1

Definition at line 6 of file st.h.

#define SIZEOF_ST_INDEX_T   SIZEOF_VOIDP

Definition at line 70 of file st.h.

Referenced by st_hash().

#define ST_DATA_T_DEFINED

Definition at line 43 of file st.h.

#define st_hash_start (  )     ((st_index_t)(h))

Definition at line 126 of file st.h.

Referenced by rb_hash_start().

#define ST_INDEX_BITS   (sizeof(st_index_t) * CHAR_BIT)

Definition at line 77 of file st.h.

#define st_is_member ( table,
key   )     st_lookup(table,key,(st_data_t *)0)

Definition at line 91 of file st.h.


Typedef Documentation

typedef char st_check_for_sizeof_st_index_t[SIZEOF_VOIDP==(int) sizeof(st_index_t)?1:-1]

Definition at line 69 of file st.h.

Definition at line 66 of file st.h.

typedef unsigned long st_data_t

Definition at line 37 of file st.h.

Definition at line 67 of file st.h.

Definition at line 65 of file st.h.

typedef struct st_table st_table

Definition at line 63 of file st.h.


Enumeration Type Documentation

enum st_retval

Enumerator:
ST_CONTINUE 
ST_STOP 
ST_DELETE 
ST_CHECK 

Definition at line 93 of file st.h.


Function Documentation

void st_add_direct ( st_table ,
st_data_t  ,
st_data_t   
)

void st_cleanup_safe ( st_table ,
st_data_t   
)

void st_clear ( st_table  ) 

st_table* st_copy ( st_table  ) 

int st_delete ( st_table ,
st_data_t ,
st_data_t  
)

int st_delete_safe ( st_table ,
st_data_t ,
st_data_t ,
st_data_t   
)

int st_foreach ( st_table ,
int(*)(ANYARGS)  ,
st_data_t   
)

void st_free_table ( st_table  ) 

Definition at line 266 of file st.c.

References st_table::bins, free, and st_clear().

int st_get_key ( st_table ,
st_data_t  ,
st_data_t  
)

Referenced by rb_feature_p().

st_index_t st_hash ( const void *  ptr,
size_t  len,
st_index_t  h 
)

Definition at line 1058 of file st.c.

References CHAR_BIT, murmur_finish(), murmur_step, MurmurMagic, SIZEOF_ST_INDEX_T, and UNALIGNED_ADD_ALL.

Referenced by rb_memhash(), and strhash().

st_index_t st_hash_end ( st_index_t  h  ) 

Definition at line 1222 of file st.c.

References murmur_step.

st_index_t st_hash_start ( st_index_t  h  ) 

Definition at line 1231 of file st.c.

st_index_t st_hash_uint ( st_index_t  h,
st_index_t  i 
)

Definition at line 1191 of file st.c.

References murmur1.

st_index_t st_hash_uint32 ( st_index_t  h,
uint32_t  i 
)

Definition at line 1185 of file st.c.

References murmur_step.

st_table* st_init_numtable ( void   ) 

Definition at line 205 of file st.c.

References st_init_table.

st_table* st_init_numtable_with_size ( st_index_t   ) 

Definition at line 211 of file st.c.

References st_init_table_with_size.

st_table* st_init_strcasetable ( void   ) 

Definition at line 229 of file st.c.

References st_init_table.

Referenced by Init_transcode(), make_transcoder_entry(), rb_enc_init(), transcode_search_path(), and w_encoding().

st_table* st_init_strcasetable_with_size ( st_index_t   ) 

Definition at line 235 of file st.c.

References st_init_table_with_size.

st_table* st_init_strtable ( void   ) 

Definition at line 217 of file st.c.

References st_init_table.

st_table* st_init_strtable_with_size ( st_index_t   ) 

Definition at line 223 of file st.c.

References st_init_table_with_size.

st_table* st_init_table ( const struct st_hash_type  ) 

Definition at line 199 of file st.c.

References st_init_table_with_size.

st_table* st_init_table_with_size ( const struct st_hash_type ,
st_index_t   
)

int st_insert ( st_table ,
st_data_t  ,
st_data_t   
)

int st_insert2 ( st_table ,
st_data_t  ,
st_data_t  ,
st_data_t(*)(st_data_t  
)

Referenced by rb_hash_aset().

int st_lookup ( st_table ,
st_data_t  ,
st_data_t  
)

size_t st_memsize ( const st_table  ) 

int st_numcmp ( st_data_t  ,
st_data_t   
)

Definition at line 1314 of file st.c.

st_index_t st_numhash ( st_data_t   ) 

Definition at line 1320 of file st.c.

int st_reverse_foreach ( st_table ,
int(*)(ANYARGS)  ,
st_data_t   
)

int st_strcasecmp ( const char *  s1,
const char *  s2 
)

Definition at line 1245 of file st.c.

int st_strncasecmp ( const char *  s1,
const char *  s2,
size_t  n 
)

Definition at line 1269 of file st.c.


doxygen