mruby  2.0.1
mruby is the lightweight implementation of the Ruby language
Classes | Macros | Functions
class.h File Reference

More...

#include "common.h"
Include dependency graph for class.h:

Go to the source code of this file.

Classes

struct  RClass
 Class class. More...
 

Macros

#define mrb_class_ptr(v)   ((struct RClass*)(mrb_ptr(v)))
 
#define MRB_FL_CLASS_IS_PREPENDED   (1 << 19)
 
#define MRB_FL_CLASS_IS_ORIGIN   (1 << 18)
 
#define MRB_CLASS_ORIGIN(c)
 
#define MRB_FL_CLASS_IS_INHERITED   (1 << 17)
 
#define MRB_INSTANCE_TT_MASK   (0xFF)
 
#define MRB_SET_INSTANCE_TT(c, tt)   ((c)->flags = (((c)->flags & ~MRB_INSTANCE_TT_MASK) | (char)(tt)))
 
#define MRB_INSTANCE_TT(c)   (enum mrb_vtype)((c)->flags & MRB_INSTANCE_TT_MASK)
 

Functions

static struct RClassmrb_class (mrb_state *mrb, mrb_value v)
 
struct RClassmrb_define_class_id (mrb_state *, mrb_sym, struct RClass *)
 
struct RClassmrb_define_module_id (mrb_state *, mrb_sym)
 
struct RClassmrb_vm_define_class (mrb_state *, mrb_value, mrb_value, mrb_sym)
 
struct RClassmrb_vm_define_module (mrb_state *, mrb_value, mrb_sym)
 
void mrb_define_method_raw (mrb_state *, struct RClass *, mrb_sym, mrb_method_t)
 
void mrb_define_method_id (mrb_state *mrb, struct RClass *c, mrb_sym mid, mrb_func_t func, mrb_aspec aspec)
 
void mrb_alias_method (mrb_state *, struct RClass *c, mrb_sym a, mrb_sym b)
 
mrb_method_t mrb_method_search_vm (mrb_state *, struct RClass **, mrb_sym)
 
mrb_method_t mrb_method_search (mrb_state *, struct RClass *, mrb_sym)
 
struct RClassmrb_class_real (struct RClass *cl)
 
mrb_value mrb_instance_new (mrb_state *mrb, mrb_value cv)
 
void mrb_class_name_class (mrb_state *, struct RClass *, struct RClass *, mrb_sym)
 
mrb_bool mrb_const_name_p (mrb_state *, const char *, mrb_int)
 
mrb_value mrb_class_find_path (mrb_state *, struct RClass *)
 
void mrb_gc_mark_mt (mrb_state *, struct RClass *)
 
size_t mrb_gc_mark_mt_size (mrb_state *, struct RClass *)
 
void mrb_gc_free_mt (mrb_state *, struct RClass *)
 

Detailed Description

See Copyright Notice in mruby.h

Macro Definition Documentation

◆ MRB_CLASS_ORIGIN

#define MRB_CLASS_ORIGIN (   c)
Value:
do {\
if ((c)->flags & MRB_FL_CLASS_IS_PREPENDED) {\
(c) = (c)->super;\
while (!((c)->flags & MRB_FL_CLASS_IS_ORIGIN)) {\
(c) = (c)->super;\
}\
}\
} while (0)