1e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown/*
2e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown * Copyright (C) 2007 The Android Open Source Project
3e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown *
4e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown * Licensed under the Apache License, Version 2.0 (the "License");
5e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown * you may not use this file except in compliance with the License.
6e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown * You may obtain a copy of the License at
7e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown *
8e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown *      http://www.apache.org/licenses/LICENSE-2.0
9e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown *
10e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown * Unless required by applicable law or agreed to in writing, software
11e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown * distributed under the License is distributed on an "AS IS" BASIS,
12e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown * See the License for the specific language governing permissions and
14e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown * limitations under the License.
15e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown */
16e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown
17e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown#ifndef _ANDROID_DATABASE_SQLITE_COMMON_H
18e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown#define _ANDROID_DATABASE_SQLITE_COMMON_H
19e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown
20e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown#include <jni.h>
21e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown#include <JNIHelp.h>
22e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown
23e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown#include <sqlite3.h>
24e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown
25e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown// Special log tags defined in SQLiteDebug.java.
26e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown#define SQLITE_LOG_TAG "SQLiteLog"
27e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown#define SQLITE_TRACE_TAG "SQLiteStatements"
28e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown#define SQLITE_PROFILE_TAG "SQLiteTime"
29e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown
30e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brownnamespace android {
31e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown
32e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown/* throw a SQLiteException with a message appropriate for the error in handle */
33e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brownvoid throw_sqlite3_exception(JNIEnv* env, sqlite3* handle);
34e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown
35e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown/* throw a SQLiteException with the given message */
36e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brownvoid throw_sqlite3_exception(JNIEnv* env, const char* message);
37e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown
38e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown/* throw a SQLiteException with a message appropriate for the error in handle
39e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown   concatenated with the given message
40e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown */
41e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brownvoid throw_sqlite3_exception(JNIEnv* env, sqlite3* handle, const char* message);
42e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown
43e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown/* throw a SQLiteException for a given error code */
44e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brownvoid throw_sqlite3_exception_errcode(JNIEnv* env, int errcode, const char* message);
45e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown
46e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brownvoid throw_sqlite3_exception(JNIEnv* env, int errcode,
47e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown        const char* sqlite3Message, const char* message);
48e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown
49e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown}
50e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown
51e5360fbf3efe85427f7e7f59afe7bbeddb4949acJeff Brown#endif // _ANDROID_DATABASE_SQLITE_COMMON_H
52