00001 #ifndef __METADATA_TABLE_PRIVATE_H__ 00002 #define __METADATA_TABLE_PRIVATE_H__ 00003 00004 /** 00005 * File Name : metadata_table_private.h 00006 * 00007 * Description: Extension of metadata_table.h for libermetadb internal use only. 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_cell.h" 00038 #include "metadata_cell_private.h" 00039 00040 G_BEGIN_DECLS 00041 00042 /**--------------------------------------------------------------------------- 00043 * 00044 * Name : metadata_table_set_value 00045 * 00046 * @brief Assign a value to a specific cell in a metadata_table 00047 * This may move data already in the table to another memory location 00048 * 00049 * @param thiz - the metadata_table 00050 * @param [in] idx - cell index (0 ...) 00051 * @param [in] value - sqlite3_value to be assigned to this cell 00052 * 00053 * @return ER_OK or error code 00054 * 00055 *--------------------------------------------------------------------------*/ 00056 int metadata_table_set_value (metadata_table *thiz, const guint idx, const sqlite3_value *value); 00057 00058 00059 /**--------------------------------------------------------------------------- 00060 * 00061 * Name : metadata_table_set_cell 00062 * 00063 * @brief Assign a metadata_cell value to a specific cell in a metadata_table 00064 * This may move data already in the table to another memory location 00065 * 00066 * @param thiz - the metadata_table 00067 * @param [in] idx - cell index (0 ...) 00068 * @param [in] value - metadata_cell whose value must be copied into the metadata_table 00069 * 00070 * @return ER_OK or error code 00071 * 00072 *--------------------------------------------------------------------------*/ 00073 int metadata_table_set_cell (metadata_table *thiz, const guint idx, const metadata_cell *value); 00074 00075 00076 /**--------------------------------------------------------------------------- 00077 * 00078 * Name : metadata_table_set_blob_static 00079 * 00080 * @brief Assign a blob to a specific cell in a sql table, assuming blob is static data 00081 * BLOB = Binary Large OBject 00082 * 00083 * @param thiz - the metadata_table 00084 * @param [in] idx - cell index (0 ...) 00085 * @param [in] value - binary value 00086 * Note: The metadata_table will NOT release this memory block 00087 * so caller must ensure the data stays available for 00088 * as long as 'thiz' metadata_table exists 00089 * or until a new value is assigned to the same cell. 00090 * @param [in] len - length of value in bytes 00091 * 00092 * @return ER_OK or error code 00093 * 00094 *--------------------------------------------------------------------------*/ 00095 int metadata_table_set_blob_static (metadata_table *thiz, const guint idx, const gchar *value, const guint len); 00096 00097 00098 G_END_DECLS 00099 00100 #endif // __METADATA_TABLE_PRIVATE_H__ 00101