#include "reflex/ruby/event.h" #include "reflex/exception.h" #include "defs.h" RUCY_DEFINE_VALUE_FROM_TO(Reflex::Event) #define THIS to(self) #define CHECK RUCY_CHECK_OBJ(Reflex::Event, self) static VALUE alloc(VALUE klass) { Reflex::reflex_error(__FILE__, __LINE__, "can not instantiate Event class."); } static VALUE block(VALUE self) { CHECK; THIS->block(); } static VALUE is_blocked(VALUE self) { CHECK; return value(THIS->is_blocked()); } static VALUE get_time(VALUE self) { CHECK; return value(THIS->time()); } static Class cEvent; void Init_reflex_event () { Module mReflex = rb_define_module("Reflex"); cEvent = rb_define_class_under(mReflex, "Event", rb_cObject); rb_define_alloc_func(cEvent, alloc); rb_define_method(cEvent, "block", RUBY_METHOD_FUNC(block), 0); cEvent.define_method("blocked?", is_blocked); rb_define_method(cEvent, "time", RUBY_METHOD_FUNC(get_time), 0); } namespace Reflex { Class event_class () { return cEvent; } }// Reflex