00001 #ifndef __ERMETADB_PRIVATE_H__ 00002 #define __ERMETADB_PRIVATE_H__ 00003 00004 /** 00005 * File Name : ermetadb_private.h 00006 * 00007 * Description: Private functions used by libermetadb internally 00008 */ 00009 00010 /* 00011 * This file is part of libermetadb. 00012 * 00013 * libermetadb is free software: you can redistribute it and/or modify 00014 * it under the terms of the GNU General Public License as published by 00015 * the Free Software Foundation, either version 2 of the License, or 00016 * (at your option) any later version. 00017 * 00018 * libermetadb is distributed in the hope that it will be useful, 00019 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00020 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00021 * GNU General Public License for more details. 00022 * 00023 * You should have received a copy of the GNU General Public License 00024 * along with this program. If not, see <http://www.gnu.org/licenses/>. 00025 */ 00026 00027 /** 00028 * Copyright (C) 2008 iRex Technologies B.V. 00029 * All rights reserved. 00030 */ 00031 00032 00033 //---------------------------------------------------------------------------- 00034 // Include Files 00035 //---------------------------------------------------------------------------- 00036 00037 #include "metadata_table_private.h" 00038 00039 G_BEGIN_DECLS 00040 00041 //---------------------------------------------------------------------------- 00042 // Global Constants 00043 //---------------------------------------------------------------------------- 00044 00045 #define SQLITE_COLLATION_STRCASECMP "IREX_CASE_INSENSITIVE" 00046 00047 struct erMetadb_t 00048 { 00049 sqlite3 *database; // sqlite3 handle to the physical database 00050 00051 gchar* directory; // directory of db file 00052 gboolean is_global; 00053 gboolean readonly; 00054 unsigned int transaction_nesting; // number of nested transactions in progress 00055 gboolean is_transaction_readonly;// current transaction is read-only 00056 gboolean do_force_rollback; // force a rollback of the current transaction 00057 }; 00058 00059 00060 //============================================================================ 00061 // Public Functions 00062 //============================================================================ 00063 00064 /**--------------------------------------------------------------------------- 00065 * 00066 * Name : ermetadb_private_get_global_column_names 00067 * 00068 * @brief Get column names for a specified SQL table name 00069 * 00070 * @param [in] table - name of the SQL table 00071 * 00072 * @return Pointer to a NULL-terminated array of column names 00073 * or NULL when error 00074 * 00075 *--------------------------------------------------------------------------*/ 00076 const char* const * ermetadb_private_get_global_column_names(const char* table); 00077 00078 int local_delete_all_data_for_file(erMetadb thiz, const char* filename); 00079 00080 int local_delete_all_data_for_id(erMetadb thiz, gint64 file_id); 00081 00082 G_END_DECLS 00083 00084 #endif // __ERMETADB_PRIVATE_H__ 00085