Я пытаюсь обернуть нативную библиотеку C ++, используя swig, и застрял при попытке конвертировать time_t
в C в long
в Java Я успешно использовал swig с python, но пока не могу заставить приведенную выше карту типов работать на Java.
В питоне это выглядит так
%typemap(in) time_t
{
if (PyLong_Check($input))
$1 = (time_t) PyLong_AsLong($input);
else if (PyInt_Check($input))
$1 = (time_t) PyInt_AsLong($input);
else if (PyFloat_Check($input))
$1 = (time_t) PyFloat_AsDouble($input);
else {
PyErr_SetString(PyExc_TypeError,"Expected a large number");
return NULL;
}
}
%typemap(out) time_t
{
$result = PyLong_FromLong((long)$1);
}
Я предполагаю, что в карте от Java до C будет:
%typemap(in) time_t {
$1 = (time_t) $input;
}
Как мне завершить карту с C на Java?
%typemap(out) time_t ???
Нужны ли мне такие наборы, как приведенные ниже?
%typemap(jni)
%typemap(jtype)
%typemap(jstype)
Мне нужно это для того, чтобы обернуть функции C следующим образом:
time_t manipulate_time (time_t dt);