sabme ua / mruby-mbed

Dependents:   mruby_mbed_web mirb_mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers variable.h Source File

variable.h

00001 /*
00002 ** mruby/variable.h - mruby variables
00003 **
00004 ** See Copyright Notice in mruby.h
00005 */
00006 
00007 #ifndef MRUBY_VARIABLE_H
00008 #define MRUBY_VARIABLE_H
00009 
00010 #if defined(__cplusplus)
00011 extern "C" {
00012 #endif
00013 
00014 typedef struct global_variable {
00015   int   counter;
00016   mrb_value *data;
00017   mrb_value (*getter)(void);
00018   void  (*setter)(void);
00019   /* void  (*marker)(); */
00020   /* int block_trace; */
00021   /* struct trace_var *trace; */
00022 } global_variable;
00023 
00024 struct global_entry {
00025   global_variable *var;
00026   mrb_sym id;
00027 };
00028 
00029 mrb_value mrb_vm_special_get(mrb_state*, mrb_sym);
00030 void mrb_vm_special_set(mrb_state*, mrb_sym, mrb_value);
00031 mrb_value mrb_vm_iv_get(mrb_state*, mrb_sym);
00032 void mrb_vm_iv_set(mrb_state*, mrb_sym, mrb_value);
00033 mrb_value mrb_vm_cv_get(mrb_state*, mrb_sym);
00034 void mrb_vm_cv_set(mrb_state*, mrb_sym, mrb_value);
00035 mrb_value mrb_vm_const_get(mrb_state*, mrb_sym);
00036 void mrb_vm_const_set(mrb_state*, mrb_sym, mrb_value);
00037 MRB_API mrb_value mrb_const_get(mrb_state*, mrb_value, mrb_sym);
00038 MRB_API void mrb_const_set(mrb_state*, mrb_value, mrb_sym, mrb_value);
00039 MRB_API mrb_bool mrb_const_defined(mrb_state*, mrb_value, mrb_sym);
00040 MRB_API void mrb_const_remove(mrb_state*, mrb_value, mrb_sym);
00041 
00042 MRB_API mrb_bool mrb_iv_p(mrb_state *mrb, mrb_sym sym);
00043 MRB_API void mrb_iv_check(mrb_state *mrb, mrb_sym sym);
00044 MRB_API mrb_value mrb_obj_iv_get(mrb_state *mrb, struct RObject *obj, mrb_sym sym);
00045 MRB_API void mrb_obj_iv_set(mrb_state *mrb, struct RObject *obj, mrb_sym sym, mrb_value v);
00046 MRB_API mrb_bool mrb_obj_iv_defined(mrb_state *mrb, struct RObject *obj, mrb_sym sym);
00047 MRB_API void mrb_obj_iv_ifnone(mrb_state *mrb, struct RObject *obj, mrb_sym sym, mrb_value v);
00048 MRB_API mrb_value mrb_iv_get(mrb_state *mrb, mrb_value obj, mrb_sym sym);
00049 MRB_API void mrb_iv_set(mrb_state *mrb, mrb_value obj, mrb_sym sym, mrb_value v);
00050 MRB_API mrb_bool mrb_iv_defined(mrb_state*, mrb_value, mrb_sym);
00051 MRB_API mrb_value mrb_iv_remove(mrb_state *mrb, mrb_value obj, mrb_sym sym);
00052 MRB_API void mrb_iv_copy(mrb_state *mrb, mrb_value dst, mrb_value src);
00053 MRB_API mrb_bool mrb_const_defined_at(mrb_state *mrb, mrb_value mod, mrb_sym id);
00054 MRB_API mrb_value mrb_gv_get(mrb_state *mrb, mrb_sym sym);
00055 MRB_API void mrb_gv_set(mrb_state *mrb, mrb_sym sym, mrb_value val);
00056 MRB_API void mrb_gv_remove(mrb_state *mrb, mrb_sym sym);
00057 MRB_API mrb_value mrb_cv_get(mrb_state *mrb, mrb_value mod, mrb_sym sym);
00058 MRB_API void mrb_mod_cv_set(mrb_state *mrb, struct RClass * c, mrb_sym sym, mrb_value v);
00059 MRB_API void mrb_cv_set(mrb_state *mrb, mrb_value mod, mrb_sym sym, mrb_value v);
00060 MRB_API mrb_bool mrb_cv_defined(mrb_state *mrb, mrb_value mod, mrb_sym sym);
00061 mrb_value mrb_obj_iv_inspect(mrb_state*, struct RObject*);
00062 mrb_value mrb_mod_constants(mrb_state *mrb, mrb_value mod);
00063 mrb_value mrb_f_global_variables(mrb_state *mrb, mrb_value self);
00064 mrb_value mrb_obj_instance_variables(mrb_state*, mrb_value);
00065 mrb_value mrb_mod_class_variables(mrb_state*, mrb_value);
00066 mrb_value mrb_mod_cv_get(mrb_state *mrb, struct RClass * c, mrb_sym sym);
00067 mrb_bool mrb_mod_cv_defined(mrb_state *mrb, struct RClass * c, mrb_sym sym);
00068 mrb_sym mrb_class_sym(mrb_state *mrb, struct RClass *c, struct RClass *outer);
00069 
00070 /* GC functions */
00071 void mrb_gc_mark_gv(mrb_state*);
00072 void mrb_gc_free_gv(mrb_state*);
00073 void mrb_gc_mark_iv(mrb_state*, struct RObject*);
00074 size_t mrb_gc_mark_iv_size(mrb_state*, struct RObject*);
00075 void mrb_gc_free_iv(mrb_state*, struct RObject*);
00076 
00077 #if defined(__cplusplus)
00078 }  /* extern "C" { */
00079 #endif
00080 
00081 #endif  /* MRUBY_VARIABLE_H */
00082