Browse Source

mime_decode_message() and mime_encode_message()

JNI-88
Volker Birk 6 years ago
parent
commit
2f03b0b5cf
  1. 27
      src/gen_cpp_Message.ysl2
  2. 15
      src/gen_java_Message.ysl2

27
src/gen_cpp_Message.ysl2

@ -17,8 +17,10 @@ tstylesheet {
#include <stdlib.h>
#include <assert.h>
#include <pEp/«@name».h>
#include <pEp/mime.h>
#include "jniutils.hh"
#include "throw_pEp_exception.hh"
#include "org_pEp_jniadapter_«$jname».h"
using namespace std;
@ -63,6 +65,31 @@ tstylesheet {
}
}
JNIEXPORT jlong JNICALL Java_org_pEp_jniadapter_«$jname»__1«$jname»(
JNIEnv *env, jobject msg, jbyteArray mime_text) {
char *_mime_text = to_string(env, mime_text);
size_t _size = (size_t) env->GetArrayLength(mime_text);
::«@name» *_msg = nullptr;
PEP_STATUS status = mime_decode_message(_mime_text, _size, &_msg);
if (status)
throw_pEp_Exception(env, status);
return (jlong) (int64_t) (intptr_t) _msg;
}
JNIEXPORT jbyteArray JNICALL Java_org_pEp_jniadapter_Message__1decodeMIME(JNIEnv *env, jobject msg)
{
message *_obj = message_ptr(env, msg);
char *mime_text = nullptr;
PEP_STATUS status = ::mime_encode_message(_obj, false, &mime_text);
if (status)
throw_pEp_Exception(env, status);
jbyteArray result = from_string(env, mime_text);
free(mime_text);
return result;
}
||
apply "*[name(.)!='enum']", 0, mode=entry {
with "name", "@name";

15
src/gen_java_Message.ysl2

@ -29,6 +29,21 @@ tstylesheet {
handle = init();
}
private native long _«$cname»(
byte[] mime_text
) throws pEpException;
public «$cname»(String mime_text) {
byte[] _mime_text = AbstractEngine.toUTF8(mime_text);
handle = _«$cname»(_mime_text);
}
public native byte[] _decodeMIME() throws pEpException;
public String decodeMIME() {
return AbstractEngine.toUTF16(_decodeMIME());
}
private «$cname»(long h) {
handle = h;
}

Loading…
Cancel
Save