Sha256: da460f7fca0d20e013556dde10d5362f4f6bff1b38b9ccda8de9db187c0aabc9

Contents?: true

Size: 1.78 KB

Versions: 6

Compression:

Stored size: 1.78 KB

Contents

#include "reflex/ruby/timer.h"


#include "reflex/exception.h"
#include "reflex/ruby/view.h"
#include "reflex/ruby/selector.h"
#include "defs.h"
#include "selector.h"


RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(Reflex::Timer)

#define THIS      to<Reflex::Timer*>(self)

#define CHECK     RUCY_CHECK_OBJ(Reflex::Timer, self)

#define CALL(fun) RUCY_CALL_SUPER(THIS, fun)


static
VALUE alloc(VALUE klass)
{
	Reflex::reflex_error(__FILE__, __LINE__, "can not instantiate Timer class.");
}

static
VALUE stop(VALUE self)
{
	CHECK;
	THIS->stop();
}

static
VALUE get_owner(VALUE self)
{
	CHECK;
	return value(THIS->owner());
}

static
VALUE get_id(VALUE self)
{
	CHECK;
	return value(THIS->id());
}

static
VALUE get_interval(VALUE self)
{
	CHECK;
	return value(THIS->interval());
}

static
VALUE set_count(VALUE self, VALUE count)
{
	CHECK;
	THIS->set_count(to<int>(count));
	return count;
}

static
VALUE get_count(VALUE self)
{
	CHECK;
	return value(THIS->count());
}

static
VALUE is_finished(VALUE self)
{
	CHECK;
	return value(THIS->is_finished());
}


static Class cTimer;

void
Init_timer ()
{
	Module mReflex = rb_define_module("Reflex");

	cTimer = rb_define_class_under(mReflex, "Timer", rb_cObject);
	rb_define_alloc_func(cTimer, alloc);
	rb_define_method(cTimer, "stop", RUBY_METHOD_FUNC(stop), 0);
	rb_define_method(cTimer, "owner", RUBY_METHOD_FUNC(get_owner), 0);
	rb_define_method(cTimer, "id", RUBY_METHOD_FUNC(get_id), 0);
	rb_define_method(cTimer, "interval", RUBY_METHOD_FUNC(get_interval), 0);
	rb_define_method(cTimer, "count=", RUBY_METHOD_FUNC(set_count), 1);
	rb_define_method(cTimer, "count", RUBY_METHOD_FUNC(get_count), 0);
	cTimer.define_method("finished?", is_finished);

	define_selector_methods<Reflex::Timer>(cTimer);
}


namespace Reflex
{


	Class
	timer_class ()
	{
		return cTimer;
	}


}// Reflex

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
reflexion-0.1.29 .doc/ext/reflex/timer.cpp
reflexion-0.1.28 .doc/ext/reflex/timer.cpp
reflexion-0.1.27 .doc/ext/reflex/timer.cpp
reflexion-0.1.26 .doc/ext/reflex/timer.cpp
reflexion-0.1.25 .doc/ext/reflex/timer.cpp
reflexion-0.1.24 .doc/ext/reflex/timer.cpp