Wrapper JNI para a função C usando SWIG - qual deve ser o mapa de tipos?
Estou tentando criar o wrapper JNI para as seguintes funções em C:
int err = new_instance(const char* name, instance_t* instance);
name
- entrada,instance
- resultado
int err = get_value(const instance_t instance, int *val);
instance
- entrada,val
- resultado
Ondeinstance_t
é definido como:
typedef void* instance_t;
Estou totalmente perdido no manual SWIG para Java, pois ele não suporta apenas parâmetros de entrada como o tipo de saída. Não tive nenhum problema com o wrapper Python (mostrado abaixo).
Qual é a maneira correta de usar o typemap no caso de Java?// instance_t [argout]
%typemap(in, numinputs=0) instance_t* instance (instance_t temp = 0) {
$1 = &temp;
}
%typemap(argout) instance_t *instance {
%append_output(PyLong_FromLongLong((long long)* $1));
}
// instance_t [in]
%typemap(in) instance_t instance {
$1 = (instance_t) PyLong_AsLongLong($input);
}