Browse Source

skeleton

JNI-44
Volker Birk 10 years ago
parent
commit
87ce80d9fc
  1. 26
      src/gen_cpp_Engine.ysl2

26
src/gen_cpp_Engine.ysl2

@ -7,19 +7,39 @@ tstylesheet {
template "interface" document("org_pEp_jniadapter_{@name}.cc", "text")
||
#include <assert.h>
#include "org_pEp_jniadapter_«@name».h"
#include "jniutils.hh"
using namespace pEp::JNIAdapter;
`` apply "method", 0
||
template "method" {
const "mangled" call "mangle";
const "jtype" call "CamelCase" with "text", "name(parm[creates|returns]/*[2])";
||
JNIEXPORT jobject JNICALL «$mangled»(JNIEnv *env, jobject obj`apply "parm[in]", mode=sig`)
JNIEXPORT jobject JNICALL «$mangled»(
JNIEnv *env,
jobject obj`apply "parm[in]", mode=sig`
)
{
jobject result;
||
choose {
when "count(parm[returns|creates]) > 1"
|> jclass clazz = findClass(env, "org/pEp/jniadapter/_«@name»_Return");
when "count(parm[returns|creates]) = 1" {
|> jclass clazz = findClass(env, "org/pEp/jniadapter/«$jtype»");
}
}
||
jmethodID constructor = env->GetMethodID(clazz, "<init>", "()V");
assert(constructor);
jobject result = env->NewObject(clazz, constructor);
return result;
}
@ -40,7 +60,7 @@ tstylesheet {
template "parm", mode=sig {
const "name", "name(*[3])";
> , jobject «$name»
> ,\n jobject «$name»
}
}

Loading…
Cancel
Save