mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-02-20 17:52:46 +00:00
add ResultCode.fromInt
This commit is contained in:
parent
056cef7292
commit
34ff813e2a
@ -105,6 +105,7 @@ jmethodID VirtualNetworkRoute_ctor;
|
||||
jmethodID Event_fromInt_method;
|
||||
jmethodID InetAddress_getByAddress_method;
|
||||
jmethodID PeerRole_fromInt_method;
|
||||
jmethodID ResultCode_fromInt_method;
|
||||
|
||||
//
|
||||
// Instance fields
|
||||
@ -160,13 +161,6 @@ jfieldID VirtualNetworkRoute_via_field;
|
||||
// Static fields
|
||||
//
|
||||
|
||||
jfieldID ResultCode_RESULT_ERROR_BAD_PARAMETER_field;
|
||||
jfieldID ResultCode_RESULT_ERROR_NETWORK_NOT_FOUND_field;
|
||||
jfieldID ResultCode_RESULT_ERROR_UNSUPPORTED_OPERATION_field;
|
||||
jfieldID ResultCode_RESULT_FATAL_ERROR_DATA_STORE_FAILED_field;
|
||||
jfieldID ResultCode_RESULT_FATAL_ERROR_INTERNAL_field;
|
||||
jfieldID ResultCode_RESULT_FATAL_ERROR_OUT_OF_MEMORY_field;
|
||||
jfieldID ResultCode_RESULT_OK_field;
|
||||
jfieldID VirtualNetworkConfigOperation_VIRTUAL_NETWORK_CONFIG_OPERATION_CONFIG_UPDATE_field;
|
||||
jfieldID VirtualNetworkConfigOperation_VIRTUAL_NETWORK_CONFIG_OPERATION_DESTROY_field;
|
||||
jfieldID VirtualNetworkConfigOperation_VIRTUAL_NETWORK_CONFIG_OPERATION_DOWN_field;
|
||||
@ -259,6 +253,7 @@ void setupJNICache(JavaVM *vm) {
|
||||
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;"));
|
||||
EXCEPTIONANDNULLCHECK(PeerRole_fromInt_method = env->GetStaticMethodID(PeerRole_class, "fromInt", "(I)Lcom/zerotier/sdk/PeerRole;"));
|
||||
EXCEPTIONANDNULLCHECK(ResultCode_fromInt_method = env->GetStaticMethodID(ResultCode_class, "fromInt", "(I)Lcom/zerotier/sdk/ResultCode;"));
|
||||
|
||||
//
|
||||
// Instance fields
|
||||
@ -314,13 +309,6 @@ void setupJNICache(JavaVM *vm) {
|
||||
// Static fields
|
||||
//
|
||||
|
||||
EXCEPTIONANDNULLCHECK(ResultCode_RESULT_ERROR_BAD_PARAMETER_field = env->GetStaticFieldID(ResultCode_class, "RESULT_ERROR_BAD_PARAMETER", "Lcom/zerotier/sdk/ResultCode;"));
|
||||
EXCEPTIONANDNULLCHECK(ResultCode_RESULT_ERROR_NETWORK_NOT_FOUND_field = env->GetStaticFieldID(ResultCode_class, "RESULT_ERROR_NETWORK_NOT_FOUND", "Lcom/zerotier/sdk/ResultCode;"));
|
||||
EXCEPTIONANDNULLCHECK(ResultCode_RESULT_ERROR_UNSUPPORTED_OPERATION_field = env->GetStaticFieldID(ResultCode_class, "RESULT_ERROR_UNSUPPORTED_OPERATION", "Lcom/zerotier/sdk/ResultCode;"));
|
||||
EXCEPTIONANDNULLCHECK(ResultCode_RESULT_FATAL_ERROR_DATA_STORE_FAILED_field = env->GetStaticFieldID(ResultCode_class, "RESULT_FATAL_ERROR_DATA_STORE_FAILED", "Lcom/zerotier/sdk/ResultCode;"));
|
||||
EXCEPTIONANDNULLCHECK(ResultCode_RESULT_FATAL_ERROR_INTERNAL_field = env->GetStaticFieldID(ResultCode_class, "RESULT_FATAL_ERROR_INTERNAL", "Lcom/zerotier/sdk/ResultCode;"));
|
||||
EXCEPTIONANDNULLCHECK(ResultCode_RESULT_FATAL_ERROR_OUT_OF_MEMORY_field = env->GetStaticFieldID(ResultCode_class, "RESULT_FATAL_ERROR_OUT_OF_MEMORY", "Lcom/zerotier/sdk/ResultCode;"));
|
||||
EXCEPTIONANDNULLCHECK(ResultCode_RESULT_OK_field = env->GetStaticFieldID(ResultCode_class, "RESULT_OK", "Lcom/zerotier/sdk/ResultCode;"));
|
||||
EXCEPTIONANDNULLCHECK(VirtualNetworkConfigOperation_VIRTUAL_NETWORK_CONFIG_OPERATION_CONFIG_UPDATE_field = env->GetStaticFieldID(VirtualNetworkConfigOperation_class, "VIRTUAL_NETWORK_CONFIG_OPERATION_CONFIG_UPDATE", "Lcom/zerotier/sdk/VirtualNetworkConfigOperation;"));
|
||||
EXCEPTIONANDNULLCHECK(VirtualNetworkConfigOperation_VIRTUAL_NETWORK_CONFIG_OPERATION_DESTROY_field = env->GetStaticFieldID(VirtualNetworkConfigOperation_class, "VIRTUAL_NETWORK_CONFIG_OPERATION_DESTROY", "Lcom/zerotier/sdk/VirtualNetworkConfigOperation;"));
|
||||
EXCEPTIONANDNULLCHECK(VirtualNetworkConfigOperation_VIRTUAL_NETWORK_CONFIG_OPERATION_DOWN_field = env->GetStaticFieldID(VirtualNetworkConfigOperation_class, "VIRTUAL_NETWORK_CONFIG_OPERATION_DOWN", "Lcom/zerotier/sdk/VirtualNetworkConfigOperation;"));
|
||||
|
@ -74,6 +74,7 @@ extern jmethodID VirtualNetworkRoute_ctor;
|
||||
extern jmethodID Event_fromInt_method;
|
||||
extern jmethodID InetAddress_getByAddress_method;
|
||||
extern jmethodID PeerRole_fromInt_method;
|
||||
extern jmethodID ResultCode_fromInt_method;
|
||||
|
||||
//
|
||||
// Instance fields
|
||||
@ -129,13 +130,6 @@ extern jfieldID VirtualNetworkRoute_via_field;
|
||||
// Static fields
|
||||
//
|
||||
|
||||
extern jfieldID ResultCode_RESULT_ERROR_BAD_PARAMETER_field;
|
||||
extern jfieldID ResultCode_RESULT_ERROR_NETWORK_NOT_FOUND_field;
|
||||
extern jfieldID ResultCode_RESULT_ERROR_UNSUPPORTED_OPERATION_field;
|
||||
extern jfieldID ResultCode_RESULT_FATAL_ERROR_DATA_STORE_FAILED_field;
|
||||
extern jfieldID ResultCode_RESULT_FATAL_ERROR_INTERNAL_field;
|
||||
extern jfieldID ResultCode_RESULT_FATAL_ERROR_OUT_OF_MEMORY_field;
|
||||
extern jfieldID ResultCode_RESULT_OK_field;
|
||||
extern jfieldID VirtualNetworkConfigOperation_VIRTUAL_NETWORK_CONFIG_OPERATION_CONFIG_UPDATE_field;
|
||||
extern jfieldID VirtualNetworkConfigOperation_VIRTUAL_NETWORK_CONFIG_OPERATION_DESTROY_field;
|
||||
extern jfieldID VirtualNetworkConfigOperation_VIRTUAL_NETWORK_CONFIG_OPERATION_DOWN_field;
|
||||
|
@ -32,48 +32,12 @@
|
||||
|
||||
jobject createResultObject(JNIEnv *env, ZT_ResultCode code)
|
||||
{
|
||||
jobject resultObject = NULL;
|
||||
|
||||
jfieldID field;
|
||||
switch(code)
|
||||
{
|
||||
case ZT_RESULT_OK:
|
||||
case ZT_RESULT_OK_IGNORED:
|
||||
LOGV("ZT_RESULT_OK");
|
||||
field = ResultCode_RESULT_OK_field;
|
||||
break;
|
||||
case ZT_RESULT_FATAL_ERROR_OUT_OF_MEMORY:
|
||||
LOGV("ZT_RESULT_FATAL_ERROR_OUT_OF_MEMORY");
|
||||
field = ResultCode_RESULT_FATAL_ERROR_OUT_OF_MEMORY_field;
|
||||
break;
|
||||
case ZT_RESULT_FATAL_ERROR_DATA_STORE_FAILED:
|
||||
LOGV("ZT_RESULT_FATAL_ERROR_DATA_STORE_FAILED");
|
||||
field = ResultCode_RESULT_FATAL_ERROR_DATA_STORE_FAILED_field;
|
||||
break;
|
||||
case ZT_RESULT_ERROR_NETWORK_NOT_FOUND:
|
||||
LOGV("ZT_RESULT_ERROR_NETWORK_NOT_FOUND");
|
||||
field = ResultCode_RESULT_ERROR_NETWORK_NOT_FOUND_field;
|
||||
break;
|
||||
case ZT_RESULT_ERROR_UNSUPPORTED_OPERATION:
|
||||
LOGV("ZT_RESULT_ERROR_UNSUPPORTED_OPERATION");
|
||||
field = ResultCode_RESULT_ERROR_UNSUPPORTED_OPERATION_field;
|
||||
break;
|
||||
case ZT_RESULT_ERROR_BAD_PARAMETER:
|
||||
LOGV("ZT_RESULT_ERROR_BAD_PARAMETER");
|
||||
field = ResultCode_RESULT_ERROR_BAD_PARAMETER_field;
|
||||
break;
|
||||
case ZT_RESULT_FATAL_ERROR_INTERNAL:
|
||||
default:
|
||||
LOGV("ZT_RESULT_FATAL_ERROR_INTERNAL");
|
||||
field = ResultCode_RESULT_FATAL_ERROR_INTERNAL_field;
|
||||
break;
|
||||
jobject resultObject = env->CallStaticObjectMethod(ResultCode_class, ResultCode_fromInt_method, code);
|
||||
if(env->ExceptionCheck() || resultObject == NULL) {
|
||||
LOGE("Error creating ResultCode object");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
resultObject = env->GetStaticObjectField(ResultCode_class, field);
|
||||
if(env->ExceptionCheck() || resultObject == NULL)
|
||||
{
|
||||
LOGE("Error on GetStaticObjectField");
|
||||
}
|
||||
return resultObject;
|
||||
}
|
||||
|
||||
|
@ -656,6 +656,10 @@ JNIEXPORT jobject JNICALL Java_com_zerotier_sdk_Node_node_1init(
|
||||
{
|
||||
LOGE("Error creating Node: %d", rc);
|
||||
resultObject = createResultObject(env, rc);
|
||||
if (env->ExceptionCheck() || resultObject == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if(node)
|
||||
{
|
||||
ZT_Node_delete(node);
|
||||
|
@ -34,6 +34,8 @@ package com.zerotier.sdk;
|
||||
* occurs, the node should be considered to not be working correctly. These
|
||||
* indicate serious problems like an inaccessible data store or a compile
|
||||
* problem.</p>
|
||||
*
|
||||
* Defined in ZeroTierOne.h as ZT_ResultCode
|
||||
*/
|
||||
public enum ResultCode {
|
||||
|
||||
@ -69,10 +71,32 @@ public enum ResultCode {
|
||||
|
||||
RESULT_ERROR_BAD_PARAMETER(1002);
|
||||
|
||||
|
||||
private final int id;
|
||||
ResultCode(int id) { this.id = id; }
|
||||
public int getValue() { return id; }
|
||||
private final int id;
|
||||
|
||||
ResultCode(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public static ResultCode fromInt(int id) {
|
||||
switch (id) {
|
||||
case 0:
|
||||
return RESULT_OK;
|
||||
case 100:
|
||||
return RESULT_FATAL_ERROR_OUT_OF_MEMORY;
|
||||
case 101:
|
||||
return RESULT_FATAL_ERROR_DATA_STORE_FAILED;
|
||||
case 102:
|
||||
return RESULT_FATAL_ERROR_INTERNAL;
|
||||
case 1000:
|
||||
return RESULT_ERROR_NETWORK_NOT_FOUND;
|
||||
case 1001:
|
||||
return RESULT_ERROR_UNSUPPORTED_OPERATION;
|
||||
case 1002:
|
||||
return RESULT_ERROR_BAD_PARAMETER;
|
||||
default:
|
||||
throw new RuntimeException("Unhandled value: " + id);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isFatal(int id) {
|
||||
return (id > 100 && id < 1000);
|
||||
|
Loading…
x
Reference in New Issue
Block a user