37 lines
804 B
C++
37 lines
804 B
C++
|
|
#include "Timer.h"
|
||
|
|
|
||
|
|
Timer::Timer(PyObject* _target, int _interval, int now)
|
||
|
|
: target(_target), interval(_interval), last_ran(now)
|
||
|
|
{
|
||
|
|
//Py_INCREF(target);
|
||
|
|
}
|
||
|
|
|
||
|
|
Timer::Timer()
|
||
|
|
: target(Py_None), interval(0), last_ran(0)
|
||
|
|
{}
|
||
|
|
|
||
|
|
Timer::Timer(Timer& other)
|
||
|
|
: target(other.target), interval(other.interval), last_ran(other.last_ran)
|
||
|
|
{
|
||
|
|
//Py_INCREF(target);
|
||
|
|
}
|
||
|
|
|
||
|
|
Timer::~Timer()
|
||
|
|
{
|
||
|
|
//if (target && target != Py_None)
|
||
|
|
// Py_DECREF(target);
|
||
|
|
}
|
||
|
|
|
||
|
|
bool Timer::test(int now)
|
||
|
|
{
|
||
|
|
if (!target || target == Py_None) return false;
|
||
|
|
if (now > last_ran + interval)
|
||
|
|
{
|
||
|
|
last_ran = now;
|
||
|
|
PyObject* args = Py_BuildValue("(i)", now);
|
||
|
|
std::cout << PyUnicode_AsUTF8(PyObject_Repr(args)) << std::endl;
|
||
|
|
PyObject_Call(target, args, NULL);
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
return false;
|
||
|
|
}
|