add Event.fromInt

This commit is contained in:
Brenton Bostick 2023-01-31 12:04:21 -05:00
commit 7c5f256d4a
5 changed files with 52 additions and 67 deletions

View file

@ -102,6 +102,7 @@ jmethodID VirtualNetworkRoute_ctor;
// Static methods
//
jmethodID Event_fromInt_method;
jmethodID InetAddress_getByAddress_method;
//
@ -158,14 +159,6 @@ jfieldID VirtualNetworkRoute_via_field;
// Static fields
//
jfieldID Event_EVENT_DOWN_field;
jfieldID Event_EVENT_FATAL_ERROR_IDENTITY_COLLISION_field;
jfieldID Event_EVENT_OFFLINE_field;
jfieldID Event_EVENT_ONLINE_field;
jfieldID Event_EVENT_REMOTE_TRACE_field;
jfieldID Event_EVENT_TRACE_field;
jfieldID Event_EVENT_UP_field;
jfieldID Event_EVENT_USER_MESSAGE_field;
jfieldID PeerRole_PEER_ROLE_LEAF_field;
jfieldID PeerRole_PEER_ROLE_MOON_field;
jfieldID PeerRole_PEER_ROLE_PLANET_field;
@ -265,6 +258,7 @@ void setupJNICache(JavaVM *vm) {
// Static methods
//
EXCEPTIONANDNULLCHECK(Event_fromInt_method = env->GetStaticMethodID(Event_class, "fromInt", "(I)Lcom/zerotier/sdk/Event;"));
EXCEPTIONANDNULLCHECK(InetAddress_getByAddress_method = env->GetStaticMethodID(InetAddress_class, "getByAddress", "([B)Ljava/net/InetAddress;"));
//
@ -321,14 +315,6 @@ void setupJNICache(JavaVM *vm) {
// Static fields
//
EXCEPTIONANDNULLCHECK(Event_EVENT_DOWN_field = env->GetStaticFieldID(Event_class, "EVENT_DOWN", "Lcom/zerotier/sdk/Event;"));
EXCEPTIONANDNULLCHECK(Event_EVENT_FATAL_ERROR_IDENTITY_COLLISION_field = env->GetStaticFieldID(Event_class, "EVENT_FATAL_ERROR_IDENTITY_COLLISION", "Lcom/zerotier/sdk/Event;"));
EXCEPTIONANDNULLCHECK(Event_EVENT_OFFLINE_field = env->GetStaticFieldID(Event_class, "EVENT_OFFLINE", "Lcom/zerotier/sdk/Event;"));
EXCEPTIONANDNULLCHECK(Event_EVENT_ONLINE_field = env->GetStaticFieldID(Event_class, "EVENT_ONLINE", "Lcom/zerotier/sdk/Event;"));
EXCEPTIONANDNULLCHECK(Event_EVENT_REMOTE_TRACE_field = env->GetStaticFieldID(Event_class, "EVENT_REMOTE_TRACE", "Lcom/zerotier/sdk/Event;"));
EXCEPTIONANDNULLCHECK(Event_EVENT_TRACE_field = env->GetStaticFieldID(Event_class, "EVENT_TRACE", "Lcom/zerotier/sdk/Event;"));
EXCEPTIONANDNULLCHECK(Event_EVENT_UP_field = env->GetStaticFieldID(Event_class, "EVENT_UP", "Lcom/zerotier/sdk/Event;"));
EXCEPTIONANDNULLCHECK(Event_EVENT_USER_MESSAGE_field = env->GetStaticFieldID(Event_class, "EVENT_USER_MESSAGE", "Lcom/zerotier/sdk/Event;"));
EXCEPTIONANDNULLCHECK(PeerRole_PEER_ROLE_LEAF_field = env->GetStaticFieldID(PeerRole_class, "PEER_ROLE_LEAF", "Lcom/zerotier/sdk/PeerRole;"));
EXCEPTIONANDNULLCHECK(PeerRole_PEER_ROLE_MOON_field = env->GetStaticFieldID(PeerRole_class, "PEER_ROLE_MOON", "Lcom/zerotier/sdk/PeerRole;"));
EXCEPTIONANDNULLCHECK(PeerRole_PEER_ROLE_PLANET_field = env->GetStaticFieldID(PeerRole_class, "PEER_ROLE_PLANET", "Lcom/zerotier/sdk/PeerRole;"));

View file

@ -71,6 +71,7 @@ extern jmethodID VirtualNetworkRoute_ctor;
// Static methods
//
extern jmethodID Event_fromInt_method;
extern jmethodID InetAddress_getByAddress_method;
//
@ -127,14 +128,6 @@ extern jfieldID VirtualNetworkRoute_via_field;
// Static fields
//
extern jfieldID Event_EVENT_DOWN_field;
extern jfieldID Event_EVENT_FATAL_ERROR_IDENTITY_COLLISION_field;
extern jfieldID Event_EVENT_OFFLINE_field;
extern jfieldID Event_EVENT_ONLINE_field;
extern jfieldID Event_EVENT_REMOTE_TRACE_field;
extern jfieldID Event_EVENT_TRACE_field;
extern jfieldID Event_EVENT_UP_field;
extern jfieldID Event_EVENT_USER_MESSAGE_field;
extern jfieldID PeerRole_PEER_ROLE_LEAF_field;
extern jfieldID PeerRole_PEER_ROLE_MOON_field;
extern jfieldID PeerRole_PEER_ROLE_PLANET_field;

View file

@ -115,41 +115,12 @@ jobject createVirtualNetworkStatus(JNIEnv *env, ZT_VirtualNetworkStatus status)
jobject createEvent(JNIEnv *env, ZT_Event event)
{
jobject eventObject = NULL;
jfieldID field;
switch(event)
{
case ZT_EVENT_UP:
field = Event_EVENT_UP_field;
break;
case ZT_EVENT_OFFLINE:
field = Event_EVENT_OFFLINE_field;
break;
case ZT_EVENT_ONLINE:
field = Event_EVENT_ONLINE_field;
break;
case ZT_EVENT_DOWN:
field = Event_EVENT_DOWN_field;
break;
case ZT_EVENT_FATAL_ERROR_IDENTITY_COLLISION:
field = Event_EVENT_FATAL_ERROR_IDENTITY_COLLISION_field;
break;
case ZT_EVENT_TRACE:
field = Event_EVENT_TRACE_field;
break;
case ZT_EVENT_USER_MESSAGE:
field = Event_EVENT_USER_MESSAGE_field;
break;
case ZT_EVENT_REMOTE_TRACE:
field = Event_EVENT_REMOTE_TRACE_field;
break;
default:
break;
jobject eventObject = env->CallStaticObjectMethod(Event_class, Event_fromInt_method, event);
if (env->ExceptionCheck() || eventObject == NULL) {
LOGE("Error creating Event object");
return NULL;
}
eventObject = env->GetStaticObjectField(Event_class, field);
return eventObject;
}

View file

@ -201,7 +201,7 @@ namespace {
}
jobject eventObject = createEvent(env, event);
if (eventObject == NULL) {
if (env->ExceptionCheck() || eventObject == NULL) {
return;
}