All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.ironcorelabs.sdk.IronOxideConfig Maven / Gradle / Ivy

There is a newer version: 0.16.0
Show newest version
// Automatically generated by rust_swig
package com.ironcorelabs.sdk;

/**
 * Top-level configuration object for IronOxide
 */
public final class IronOxideConfig {

    public IronOxideConfig() {
        mNativeObj = init();
    }
    private static native long init();
    /**
     * @param policy_caching         policy caching configuration for IronOxide
     * @param sdk_operation_timeout  timeout for all SDK methods
     */
    public IronOxideConfig(PolicyCachingConfig policy_caching, Duration sdk_operation_timeout) {
        long a0 = policy_caching.mNativeObj;
        long a1 = 0;//TODO: use ptr::null() for corresponding constant
        if (sdk_operation_timeout != null) {
            a1 = sdk_operation_timeout.mNativeObj;
        }

        mNativeObj = init(a0, a1);
        JNIReachabilityFence.reachabilityFence2(policy_caching, sdk_operation_timeout);
    }
    private static native long init(long policy_caching, long sdk_operation_timeout);

    public final PolicyCachingConfig getPolicyCachingConfig() {
        long ret = do_getPolicyCachingConfig(mNativeObj);
        PolicyCachingConfig convRet = new PolicyCachingConfig(InternalPointerMarker.RAW_PTR, ret);

        return convRet;
    }
    private static native long do_getPolicyCachingConfig(long self);

    public final java.util.Optional getSdkOperationTimeout() {
        long ret = do_getSdkOperationTimeout(mNativeObj);
        java.util.Optional convRet;
        if (ret != 0) {
            convRet = java.util.Optional.of(new Duration(InternalPointerMarker.RAW_PTR, ret));
        } else {
            convRet = java.util.Optional.empty();
        }

        return convRet;
    }
    private static native long do_getSdkOperationTimeout(long self);

    public synchronized void delete() {
        if (mNativeObj != 0) {
            do_delete(mNativeObj);
            mNativeObj = 0;
       }
    }
    @Override
    protected void finalize() throws Throwable {
        try {
            delete();
        }
        finally {
             super.finalize();
        }
    }
    private static native void do_delete(long me);
    /*package*/ IronOxideConfig(InternalPointerMarker marker, long ptr) {
        assert marker == InternalPointerMarker.RAW_PTR;
        this.mNativeObj = ptr;
    }
    /*package*/ long mNativeObj;
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy