Groonga 3.0.9 Source Code Document
Main Page
Related Pages
Namespaces
Data Structures
Files
File List
Globals
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Pages
groonga
vendor
mruby-eeac4be
include
mruby
hash.h
Go to the documentation of this file.
1
/*
2
** mruby/hash.h - Hash class
3
**
4
** See Copyright Notice in mruby.h
5
*/
6
7
#ifndef MRUBY_HASH_H
8
#define MRUBY_HASH_H
9
10
#if defined(__cplusplus)
11
extern
"C"
{
12
#endif
13
14
struct
RHash
{
15
MRB_OBJECT_HEADER
;
16
struct
iv_tbl
*
iv
;
17
struct
kh_ht *
ht
;
18
};
19
20
#define mrb_hash_ptr(v) ((struct RHash*)(mrb_ptr(v)))
21
#define mrb_hash_value(p) mrb_obj_value((void*)(p))
22
23
mrb_value
mrb_hash_new_capa
(
mrb_state
*,
int
);
24
mrb_value
mrb_hash_new
(
mrb_state
*mrb);
25
26
void
mrb_hash_set
(
mrb_state
*mrb,
mrb_value
hash,
mrb_value
key,
mrb_value
val);
27
mrb_value
mrb_hash_get
(
mrb_state
*mrb,
mrb_value
hash,
mrb_value
key);
28
mrb_value
mrb_hash_fetch
(
mrb_state
*mrb,
mrb_value
hash,
mrb_value
key,
mrb_value
def);
29
mrb_value
mrb_hash_delete_key
(
mrb_state
*mrb,
mrb_value
hash,
mrb_value
key);
30
mrb_value
mrb_hash_keys
(
mrb_state
*mrb,
mrb_value
hash);
31
mrb_value
mrb_check_hash_type
(
mrb_state
*mrb,
mrb_value
hash);
32
mrb_value
mrb_hash_empty_p
(
mrb_state
*mrb,
mrb_value
self
);
33
mrb_value
mrb_hash_clear
(
mrb_state
*mrb,
mrb_value
hash);
34
35
/* RHASH_TBL allocates st_table if not available. */
36
#define RHASH(obj) ((struct RHash*)(mrb_ptr(obj)))
37
#define RHASH_TBL(h) (RHASH(h)->ht)
38
#define RHASH_IFNONE(h) mrb_iv_get(mrb, (h), mrb_intern2(mrb, "ifnone", 6))
39
#define RHASH_PROCDEFAULT(h) RHASH_IFNONE(h)
40
struct
kh_ht *
mrb_hash_tbl
(
mrb_state
*mrb,
mrb_value
hash);
41
42
#define MRB_HASH_PROC_DEFAULT 256
43
#define MRB_RHASH_PROCDEFAULT_P(h) (RHASH(h)->flags & MRB_HASH_PROC_DEFAULT)
44
45
/* GC functions */
46
void
mrb_gc_mark_hash
(
mrb_state
*,
struct
RHash
*);
47
size_t
mrb_gc_mark_hash_size
(
mrb_state
*,
struct
RHash
*);
48
void
mrb_gc_free_hash
(
mrb_state
*,
struct
RHash
*);
49
50
#if defined(__cplusplus)
51
}
/* extern "C" { */
52
#endif
53
54
#endif
/* MRUBY_HASH_H */
Generated on Sun Nov 10 2013 09:49:02 for Groonga 3.0.9 Source Code Document by
1.8.1.2