/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class org_trafodion_sql_HTableClient */

#ifndef _Included_org_trafodion_sql_HTableClient
#define _Included_org_trafodion_sql_HTableClient
#ifdef __cplusplus
extern "C" {
#endif
#undef org_trafodion_sql_HTableClient_GET_ROW
#define org_trafodion_sql_HTableClient_GET_ROW 1L
#undef org_trafodion_sql_HTableClient_BATCH_GET
#define org_trafodion_sql_HTableClient_BATCH_GET 2L
#undef org_trafodion_sql_HTableClient_SCAN_FETCH
#define org_trafodion_sql_HTableClient_SCAN_FETCH 3L
/*
 * Class:     org_trafodion_sql_HTableClient
 * Method:    setResultInfo
 * Signature: (J[I[I[I[I[I[I[J[[B[[B[III)I
 */
JNIEXPORT jint JNICALL Java_org_trafodion_sql_HTableClient_setResultInfo
  (JNIEnv *, jobject, jlong, jintArray, jintArray, jintArray, jintArray, jintArray, jintArray, jlongArray, jobjectArray, jobjectArray, jintArray, jint, jint);

/*
 * Class:     org_trafodion_sql_HTableClient
 * Method:    cleanup
 * Signature: (J)V
 */
JNIEXPORT void JNICALL Java_org_trafodion_sql_HTableClient_cleanup
  (JNIEnv *, jobject, jlong);

/*
 * Class:     org_trafodion_sql_HTableClient
 * Method:    setJavaObject
 * Signature: (J)I
 */
JNIEXPORT jint JNICALL Java_org_trafodion_sql_HTableClient_setJavaObject
  (JNIEnv *, jobject, jlong);

#ifdef __cplusplus
}
#endif
#endif
