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