Browse Source

updating to new sync API

Volker Birk 6 years ago
parent
commit
5758fcd11e
  1. 4
      src/Makefile
  2. 4
      src/Makefile.conf
  3. 53
      src/basic_api.cc
  4. 2
      src/gen_cpp_Engine.ysl2
  5. 20
      src/gen_java_Engine.ysl2
  6. 13
      src/jniutils.cc
  7. 3
      src/jniutils.hh
  8. 18
      src/pEp.yml2
  9. 1
      src/types_c.ysl2

4
src/Makefile

@ -67,7 +67,7 @@ all: $(JAR) $(SHARED)
.PHONY: gensource .PHONY: gensource
gensource: $(JAVA_SOURCES) $(C_SOURCES) gensource: $(JAVA_SOURCES) $(C_SOURCES)
$(JAR): $(JAVA_SOURCES) $(JAR): gensource
$(JP)/javac org/pEp/jniadapter/*.java $(JP)/javac org/pEp/jniadapter/*.java
$(JP)/jar cf $@ org/pEp/jniadapter/*.class $(JP)/jar cf $@ org/pEp/jniadapter/*.class
@ -91,7 +91,7 @@ $(LIBRARY): org_pEp_jniadapter_AbstractEngine.o org_pEp_jniadapter_Engine.o org_
$(SHARED): $(LIBRARY) $(SHARED): $(LIBRARY)
$(CXX) *.o $(LDFLAGS) $(LDLIBS) -o $@ $(CXX) *.o $(LDFLAGS) $(LDLIBS) -o $@
org/pEp/jniadapter/pEpException.java: pEp.yml2 gen_java_exceptions.ysl2 org/pEp/jniadapter/pEpException.java: pEp.yml2 gen_java_exceptions.ysl2 pEp.yml2
$(YML2_PROC) -y gen_java_exceptions.ysl2 $< -o $@ $(YML2_PROC) -y gen_java_exceptions.ysl2 $< -o $@
org/pEp/jniadapter/Message.java: pEp.yml2 gen_java_Message.ysl2 types_java.ysl2 org/pEp/jniadapter/Message.java: pEp.yml2 gen_java_Message.ysl2 types_java.ysl2

4
src/Makefile.conf

@ -44,10 +44,10 @@ YML2_OPTS=--encoding=utf8
######### Engine ######### ######### Engine #########
ENGINE_LIB= ENGINE_LIB=-L$(HOME)/lib
#ENGINE_LIB=-L$(HOME)/local/lib #ENGINE_LIB=-L$(HOME)/local/lib
ENGINE_INC= ENGINE_INC=-I$(HOME)/include
#ENGINE_INC=-I$(HOME)/local/inc #ENGINE_INC=-I$(HOME)/local/inc

53
src/basic_api.cc

@ -278,59 +278,6 @@ JNIEXPORT jboolean JNICALL Java_org_pEp_jniadapter_Engine_blacklist_1is_1listed(
return (jboolean)_listed; return (jboolean)_listed;
} }
JNIEXPORT void JNICALL Java_org_pEp_jniadapter_Engine_accept_1sync_1handshake(
JNIEnv *env,
jobject obj,
jobject ident
)
{
pEp_identity *_ident = to_identity(env, ident);
PEP_STATUS status =
::deliverHandshakeResult(session(), _ident, SYNC_HANDSHAKE_ACCEPTED);
if (status != PEP_STATUS_OK) {
throw_pEp_Exception(env, status);
return;
}
}
JNIEXPORT void JNICALL Java_org_pEp_jniadapter_Engine_reject_1sync_1handshake(
JNIEnv *env,
jobject obj,
jobject ident
)
{
pEp_identity *_ident = to_identity(env, ident);
PEP_STATUS status =
::deliverHandshakeResult(session(), _ident, SYNC_HANDSHAKE_REJECTED);
if (status != PEP_STATUS_OK) {
throw_pEp_Exception(env, status);
return;
}
}
JNIEXPORT void JNICALL Java_org_pEp_jniadapter_Engine_cancel_1sync_1handshake(
JNIEnv *env,
jobject obj,
jobject ident
)
{
pEp_identity *_ident = to_identity(env, ident);
PEP_STATUS status =
::deliverHandshakeResult(session(), _ident, SYNC_HANDSHAKE_CANCEL);
if (status != PEP_STATUS_OK) {
throw_pEp_Exception(env, status);
return;
}
}
JNIEXPORT jbyteArray JNICALL Java_org_pEp_jniadapter_Engine_getCrashdumpLog( JNIEXPORT jbyteArray JNICALL Java_org_pEp_jniadapter_Engine_getCrashdumpLog(
JNIEnv *env, JNIEnv *env,
jobject obj, jobject obj,

2
src/gen_cpp_Engine.ysl2

@ -222,7 +222,7 @@ tstylesheet {
choose { choose {
when "$type = 'message'" when "$type = 'message'"
| message *_«$name» = (message *) callLongMethod(env, «$name», "getHandle"); | message *_«$name» = (message *) callLongMethod(env, «$name», "getHandle");
when "$type='EncFormat'" when "$type='EncFormat' or $type='SyncHandshakeResult'"
| √$type _«$name» = to_«$type»(env, «$name»); | √$type _«$name» = to_«$type»(env, «$name»);
when "$type='bool'" when "$type='bool'"
| bool _«$name» = (bool) «$name»; | bool _«$name» = (bool) «$name»;

20
src/gen_java_Engine.ysl2

@ -70,6 +70,8 @@ tstylesheet {
> String > String
when "name(.) = 'identity'" when "name(.) = 'identity'"
> Identity > Identity
when "name(.) = 'identitylist'"
> IdentityList
when "name(.) = 'bool'" when "name(.) = 'bool'"
> Boolean > Boolean
otherwise otherwise
@ -279,11 +281,17 @@ tstylesheet {
| ¡$type _«$name» = AbstractEngine.toUTF8(«$name»); | ¡$type _«$name» = AbstractEngine.toUTF8(«$name»);
when "$type = 'identity'" when "$type = 'identity'"
|| ||
_Identity _«$name» = null; _Identity _«$name» = null;
if («$name» != null) { if («$name» != null) {
_«$name» = new _Identity(«$name»); _«$name» = new _Identity(«$name»);
} }
|| ||
when "$type = 'identitylist'"
||
Vector<_Identity> _«$name» = new Vector<_Identity>();
for (Identity i : «$name»)
_«$name».add(new _Identity(i));
||
} }
} }
@ -306,7 +314,7 @@ tstylesheet {
const "type", "name(*[2])"; const "type", "name(*[2])";
const "name" call "lcase" with "text", "name(*[3])"; const "name" call "lcase" with "text", "name(*[3])";
if "$type = 'string' or $type = 'stringlist' or $type = 'identity'" if "$type = 'string' or $type = 'stringlist' or $type = 'identity' or $type = 'identitylist'"
> _ > _
> «$name»`if "position()!=last()" > , ` > «$name»`if "position()!=last()" > , `
} }

13
src/jniutils.cc

@ -688,7 +688,18 @@ namespace pEp {
env->DeleteLocalRef(clazz_enc_format); env->DeleteLocalRef(clazz_enc_format);
return (PEP_enc_format) env->GetIntField(obj, field_value); return (PEP_enc_format) env->GetIntField(obj, field_value);
} }
sync_handshake_result to_SyncHandshakeResult(JNIEnv *env, jobject obj)
{
static const char *classname = "org/pEp/jniadapter/Message$SyncHandshakeResult";
jclass clazz_enc_format = findClass(env, classname);
jfieldID field_value = env->GetFieldID(clazz_enc_format, "value", "I");
assert(field_value);
env->DeleteLocalRef(clazz_enc_format);
return (sync_handshake_result) env->GetIntField(obj, field_value);
}
}; };
}; };

3
src/jniutils.hh

@ -8,6 +8,7 @@
#include <pEp/identity_list.h> #include <pEp/identity_list.h>
#include <pEp/bloblist.h> #include <pEp/bloblist.h>
#include <pEp/message.h> #include <pEp/message.h>
#include <pEp/sync_api.h>
#if 0 // Enable if log needed #if 0 // Enable if log needed
#include <android/log.h> #include <android/log.h>
@ -90,6 +91,8 @@ namespace pEp {
bloblist_t *to_bloblist(JNIEnv *env, jobject obj); bloblist_t *to_bloblist(JNIEnv *env, jobject obj);
PEP_enc_format to_EncFormat(JNIEnv *env, jobject obj); PEP_enc_format to_EncFormat(JNIEnv *env, jobject obj);
sync_handshake_result to_SyncHandshakeResult(JNIEnv *env, jobject obj);
}; };
}; };

18
src/pEp.yml2

@ -267,12 +267,17 @@ namespace pEp {
returns string languagelist returns string languagelist
); );
method key_reset( method key_reset(
in string fpr, in string fpr,
in identity ident in identity ident
); );
method deliverHandshakeResult(
in SyncHandshakeResult shr,
in identitylist identities
);
basic string trustwords(identity ident); basic string trustwords(identity ident);
basic identity myself(identity ident); basic identity myself(identity ident);
basic identity updateIdentity(identity ident); basic identity updateIdentity(identity ident);
basic identity setOwnKey(identity ident, string fpr); basic identity setOwnKey(identity ident, string fpr);
@ -285,9 +290,6 @@ namespace pEp {
basic bool blacklist_is_listed(string fpr); basic bool blacklist_is_listed(string fpr);
basic void config_passive_mode(bool enable); basic void config_passive_mode(bool enable);
basic void config_unencrypted_subject(bool enable); basic void config_unencrypted_subject(bool enable);
basic void accept_sync_handshake(identity ident);
basic void reject_sync_handshake(identity ident);
basic void cancel_sync_handshake(identity ident);
basic string getCrashdumpLog(int maxlines); basic string getCrashdumpLog(int maxlines);
}; };

1
src/types_c.ysl2

@ -15,6 +15,7 @@ function "toC" {
when "$type='DecryptFlags'" > PEP_decrypt_flags_t when "$type='DecryptFlags'" > PEP_decrypt_flags_t
when "$type='Color'" > PEP_color when "$type='Color'" > PEP_color
when "$type='Rating'" > PEP_rating when "$type='Rating'" > PEP_rating
when "$type='SyncHandshakeResult'" > sync_handshake_result
otherwise value "$type"; otherwise value "$type";
} }

Loading…
Cancel
Save