Sha256: 60ae6b6b35e2302071c090a6dc3fa19c5c57218a04fa90e743cade3066a518be

Contents?: true

Size: 1.79 KB

Versions: 30

Compression:

Stored size: 1.79 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_reflex_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

30 entries across 30 versions & 1 rubygems

Version Path
reflexion-0.2.1 .doc/ext/reflex/timer.cpp
reflexion-0.2 .doc/ext/reflex/timer.cpp
reflexion-0.1.57 .doc/ext/reflex/timer.cpp
reflexion-0.1.56 .doc/ext/reflex/timer.cpp
reflexion-0.1.55 .doc/ext/reflex/timer.cpp
reflexion-0.1.54 .doc/ext/reflex/timer.cpp
reflexion-0.1.53 .doc/ext/reflex/timer.cpp
reflexion-0.1.52 .doc/ext/reflex/timer.cpp
reflexion-0.1.51 .doc/ext/reflex/timer.cpp
reflexion-0.1.50 .doc/ext/reflex/timer.cpp
reflexion-0.1.49 .doc/ext/reflex/timer.cpp
reflexion-0.1.48 .doc/ext/reflex/timer.cpp
reflexion-0.1.47 .doc/ext/reflex/timer.cpp
reflexion-0.1.46 .doc/ext/reflex/timer.cpp
reflexion-0.1.45 .doc/ext/reflex/timer.cpp
reflexion-0.1.44 .doc/ext/reflex/timer.cpp
reflexion-0.1.43 .doc/ext/reflex/timer.cpp
reflexion-0.1.42 .doc/ext/reflex/timer.cpp
reflexion-0.1.41 .doc/ext/reflex/timer.cpp
reflexion-0.1.40 .doc/ext/reflex/timer.cpp