// Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

#pragma once
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class com_baidu_paddle_lite_PaddlePredictor */
#include "lite/api/paddle_lite_factory_helper.h"
#include "lite/api/paddle_use_kernels.h"
#include "lite/api/paddle_use_ops.h"
#ifndef LITE_ON_TINY_PUBLISH
#include "lite/api/paddle_use_passes.h"
#endif
#ifdef __cplusplus
extern "C" {
#endif

namespace paddle {
namespace lite_api {

/*
 * Class:     com_baidu_paddle_lite_PaddlePredictor
 * Method:    run
 * Signature: ()Z
 */
JNIEXPORT jboolean JNICALL
Java_com_baidu_paddle_lite_PaddlePredictor_run(JNIEnv *, jobject);

/*
 * Class:     com_baidu_paddle_lite_PaddlePredictor
 * Method:    saveOptimizedModel
 * Signature: (Ljava/lang/String;)Z
 */
JNIEXPORT jboolean JNICALL
Java_com_baidu_paddle_lite_PaddlePredictor_saveOptimizedModel(JNIEnv *,
                                                              jobject,
                                                              jstring);

/*
 * Class:     com_baidu_paddle_lite_PaddlePredictor
 * Method:    getInputCppTensorPointer
 * Signature: (I)J
 */
JNIEXPORT jlong JNICALL
Java_com_baidu_paddle_lite_PaddlePredictor_getInputCppTensorPointer(JNIEnv *,
                                                                    jobject,
                                                                    jint);

/*
 * Class:     com_baidu_paddle_lite_PaddlePredictor
 * Method:    getOutputCppTensorPointer
 * Signature: (I)J
 */
JNIEXPORT jlong JNICALL
Java_com_baidu_paddle_lite_PaddlePredictor_getOutputCppTensorPointer(JNIEnv *,
                                                                     jobject,
                                                                     jint);

/*
 * Class:     com_baidu_paddle_lite_PaddlePredictor
 * Method:    getCppTensorPointerByName
 * Signature: (Ljava/lang/String;)J
 */
JNIEXPORT jlong JNICALL
Java_com_baidu_paddle_lite_PaddlePredictor_getCppTensorPointerByName(JNIEnv *,
                                                                     jobject,
                                                                     jstring);

/*
 * Class:     com_baidu_paddle_lite_PaddlePredictor
 * Method:    newCppPaddlePredictor
 * Signature: (Lcom/baidu/paddle/lite/CxxConfig;)J
 */
JNIEXPORT jlong JNICALL
Java_com_baidu_paddle_lite_PaddlePredictor_newCppPaddlePredictor__Lcom_baidu_\
paddle_lite_CxxConfig_2(JNIEnv *, jobject, jobject);

/*
 * Class:     com_baidu_paddle_lite_PaddlePredictor
 * Method:    newCppPaddlePredictor
 * Signature: (Lcom/baidu/paddle/lite/MobileConfig;)J
 */
JNIEXPORT jlong JNICALL
Java_com_baidu_paddle_lite_PaddlePredictor_newCppPaddlePredictor__Lcom_baidu_\
paddle_lite_MobileConfig_2(JNIEnv *, jobject, jobject);

/*
 * Class:     com_baidu_paddle_lite_PaddlePredictor
 * Method:    deleteCppPaddlePredictor
 * Signature: (J)Z
 */
JNIEXPORT jboolean JNICALL
Java_com_baidu_paddle_lite_PaddlePredictor_deleteCppPaddlePredictor(JNIEnv *,
                                                                    jobject,
                                                                    jlong);

}  // namespace lite_api
}  // namespace paddle

#ifdef __cplusplus
}
#endif
