BOOL setClientInfo()

in src/JNI/com/amazonaws/kinesis/video/producer/jni/Parameters.cpp [157:230]


BOOL setClientInfo(JNIEnv *env, jobject clientInfo, PClientInfo pClientInfo) {
    STATUS retStatus = STATUS_SUCCESS;
    jmethodID methodId = NULL;
    const char *retChars;

    CHECK(env != NULL && clientInfo != NULL && pClientInfo != NULL);

    // Load ClientInfo
    jclass cls = env->GetObjectClass(clientInfo);
    if (cls == NULL) {
        DLOGE("Failed to create ClientInfo class.");
        CHK(FALSE, STATUS_INVALID_OPERATION);
    }

    // Retrieve the methods and call it
    methodId = env->GetMethodID(cls, "getVersion", "()I");
    if (methodId == NULL) {
        DLOGW("Couldn't find method id getVersion");
    } else {
        pClientInfo->version = env->CallIntMethod(clientInfo, methodId);
        CHK_JVM_EXCEPTION(env);
    }

    methodId = env->GetMethodID(cls, "getCreateClientTimeout", "()J");
    if (methodId == NULL) {
        DLOGW("Couldn't find method id getCreateClientTimeout");
    } else {
        pClientInfo->createClientTimeout = env->CallLongMethod(clientInfo, methodId);
        CHK_JVM_EXCEPTION(env);
    }

    methodId = env->GetMethodID(cls, "getCreateStreamTimeout", "()J");
    if (methodId == NULL) {
        DLOGW("Couldn't find method id getCreateStreamTimeout");
    } else {
        pClientInfo->createStreamTimeout = env->CallLongMethod(clientInfo, methodId);
        CHK_JVM_EXCEPTION(env);
    }

    methodId = env->GetMethodID(cls, "getStopStreamTimeout", "()J");
    if (methodId == NULL) {
        DLOGW("Couldn't find method id getStopStreamTimeout");
    } else {
        pClientInfo->stopStreamTimeout = env->CallLongMethod(clientInfo, methodId);
        CHK_JVM_EXCEPTION(env);
    }

    methodId = env->GetMethodID(cls, "getOfflineBufferAvailabilityTimeout", "()J");
    if (methodId == NULL) {
        DLOGW("Couldn't find method id getOfflineBufferAvailabilityTimeout");
    } else {
        pClientInfo->offlineBufferAvailabilityTimeout = env->CallLongMethod(clientInfo, methodId);
        CHK_JVM_EXCEPTION(env);
    }

    methodId = env->GetMethodID(cls, "getLoggerLogLevel", "()I");
    if (methodId == NULL) {
        DLOGW("Couldn't find method id getLoggerLogLevel");
    } else {
        pClientInfo->loggerLogLevel = env->CallIntMethod(clientInfo, methodId);
        CHK_JVM_EXCEPTION(env);
    }

    methodId = env->GetMethodID(cls, "getLogMetric", "()Z");
    if (methodId == NULL) {
        DLOGW("Couldn't find method id getLogMetric");
    } else {
        pClientInfo->logMetric = env->CallBooleanMethod(clientInfo, methodId);
        CHK_JVM_EXCEPTION(env);
    }

CleanUp:
    return STATUS_FAILED(retStatus) ? FALSE : TRUE;
}