/* XOWA: the XOWA Offline Wiki Application Copyright (C) 2012 gnosygnu@gmail.com This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ package gplx.dbs.engines; import gplx.*; import gplx.dbs.*; import gplx.core.stores.*; import gplx.dbs.metas.*; import gplx.dbs.sqls.*; import gplx.dbs.conn_props.*; import gplx.dbs.qrys.bats.*; public interface Db_engine { String Tid(); Db_conn_info Conn_info(); Db_conn_props_mgr Props(); Db_batch_mgr Batch_mgr(); Sql_qry_wtr Sql_wtr(); Db_engine New_clone(Db_conn_info conn_info); void Conn_open(); void Conn_term(); void Txn_bgn(String name); // NOTE: sqlite has different transaction semantics with SAVEPOINT String Txn_end(); void Txn_cxl(); void Txn_sav(); void Meta_tbl_create(Dbmeta_tbl_itm meta); void Meta_tbl_delete(String tbl); void Meta_fld_append(String tbl, Dbmeta_fld_itm fld); void Meta_idx_create(Gfo_usr_dlg usr_dlg, Dbmeta_idx_itm... ary); void Meta_idx_delete(String idx); Dbmeta_tbl_mgr Meta_mgr(); boolean Meta_tbl_exists(String tbl); boolean Meta_fld_exists(String tbl, String fld); boolean Meta_idx_exists(String idx); Object Exec_as_obj(Db_qry qry); Db_rdr Exec_as_rdr__rls_manual (Object rdr_obj, String sql); // Object o:ResultSet if desktop; Cursor if android Db_rdr Exec_as_rdr__rls_auto (Db_stmt stmt, Object rdr_obj, String sql); // Object o:ResultSet if desktop; Cursor if android Db_stmt Stmt_by_qry(Db_qry qry); Object Stmt_by_sql(String sql); void Env_db_attach(String alias, Db_conn conn); void Env_db_attach(String alias, Io_url db_url); void Env_db_detach(String alias); DataRdr New_rdr(java.sql.ResultSet rdr, String sql); }