blob: 7a2863bfa78fbe442b4d3eef82ac1bc9c4162527 [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SQL_PROXY_H_
#define SQL_PROXY_H_
#include "sql/sql_export.h"
#include "third_party/sqlite/sqlite3.h"
// TODO(shess): third_party/sqlite does not track component build correctly, so
// each shared library gets a private copy of everything, so sqlite3_* calls
// outside of the main sql/ component don't work right. Hack around this by
// adding pass-through functions while I land a separate fix for the component
// issue.
// This is only required for tests - if these abilities are desired for
// production code, they should probably do obvious things like live in
// sql::Connection and use C++ wrappers.
namespace sql {
SQL_EXPORT int sqlite3_create_function_v2(
sqlite3 *db,
const char *zFunctionName,
int nArg,
int eTextRep,
void *pApp,
void (*xFunc)(sqlite3_context*,int,sqlite3_value**),
void (*xStep)(sqlite3_context*,int,sqlite3_value**),
void (*xFinal)(sqlite3_context*),
void (*xDestroy)(void*));
SQL_EXPORT void *sqlite3_commit_hook(sqlite3*, int(*)(void*), void*);
} // namespace sql
#endif // SQL_PROXY_H_