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
class.h
Go to the documentation of this file.
1
/*
2
** mruby/class.h - Class class
3
**
4
** See Copyright Notice in mruby.h
5
*/
6
7
#ifndef MRUBY_CLASS_H
8
#define MRUBY_CLASS_H
9
10
#if defined(__cplusplus)
11
extern
"C"
{
12
#endif
13
14
struct
RClass
{
15
MRB_OBJECT_HEADER
;
16
struct
iv_tbl
*
iv
;
17
struct
kh_mt *
mt
;
18
struct
RClass
*
super
;
19
};
20
21
#define mrb_class_ptr(v) ((struct RClass*)(mrb_ptr(v)))
22
#define RCLASS_SUPER(v) (((struct RClass*)(mrb_ptr(v)))->super)
23
#define RCLASS_IV_TBL(v) (((struct RClass*)(mrb_ptr(v)))->iv)
24
#define RCLASS_M_TBL(v) (((struct RClass*)(mrb_ptr(v)))->mt)
25
26
static
inline
struct
RClass
*
27
mrb_class(
mrb_state
*mrb,
mrb_value
v)
28
{
29
switch
(
mrb_type
(v)) {
30
case
MRB_TT_FALSE
:
31
if
(v.
value
.
i
)
32
return
mrb->
false_class
;
33
return
mrb->
nil_class
;
34
case
MRB_TT_TRUE
:
35
return
mrb->
true_class
;
36
case
MRB_TT_SYMBOL
:
37
return
mrb->
symbol_class
;
38
case
MRB_TT_FIXNUM
:
39
return
mrb->
fixnum_class
;
40
case
MRB_TT_FLOAT
:
41
return
mrb->
float_class
;
42
case
MRB_TT_CPTR
:
43
return
mrb->
object_class
;
44
default
:
45
return
mrb_obj_ptr
(v)->c;
46
}
47
}
48
49
#define MRB_SET_INSTANCE_TT(c, tt) c->flags = ((c->flags & ~0xff) | (char)tt)
50
#define MRB_INSTANCE_TT(c) (enum mrb_vtype)(c->flags & 0xff)
51
52
struct
RClass
*
mrb_define_class_id
(
mrb_state
*,
mrb_sym
,
struct
RClass
*);
53
struct
RClass
*
mrb_define_module_id
(
mrb_state
*,
mrb_sym
);
54
struct
RClass
*
mrb_vm_define_class
(
mrb_state
*,
mrb_value
,
mrb_value
,
mrb_sym
);
55
struct
RClass
*
mrb_vm_define_module
(
mrb_state
*,
mrb_value
,
mrb_sym
);
56
void
mrb_define_method_vm
(
mrb_state
*,
struct
RClass
*,
mrb_sym
,
mrb_value
);
57
void
mrb_define_method_raw
(
mrb_state
*,
struct
RClass
*,
mrb_sym
,
struct
RProc
*);
58
void
mrb_define_method_id
(
mrb_state
*mrb,
struct
RClass
*c,
mrb_sym
mid,
mrb_func_t
func,
mrb_aspec
aspec);
59
void
mrb_alias_method
(
mrb_state
*mrb,
struct
RClass
*c,
mrb_sym
a,
mrb_sym
b
);
60
61
struct
RClass
*
mrb_class_outer_module
(
mrb_state
*,
struct
RClass
*);
62
struct
RProc
*
mrb_method_search_vm
(
mrb_state
*,
struct
RClass
**,
mrb_sym
);
63
struct
RProc
*
mrb_method_search
(
mrb_state
*,
struct
RClass
*,
mrb_sym
);
64
65
struct
RClass
*
mrb_class_real
(
struct
RClass
* cl);
66
67
void
mrb_gc_mark_mt
(
mrb_state
*,
struct
RClass
*);
68
size_t
mrb_gc_mark_mt_size
(
mrb_state
*,
struct
RClass
*);
69
void
mrb_gc_free_mt
(
mrb_state
*,
struct
RClass
*);
70
71
#if defined(__cplusplus)
72
}
/* extern "C" { */
73
#endif
74
75
#endif
/* MRUBY_CLASS_H */
Generated on Sun Nov 10 2013 09:49:05 for Groonga 3.0.9 Source Code Document by
1.8.1.2