/*
* Copyright (C) 2012 - Juan Ferrer Toribio
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
#ifndef DB_RESULT_H
#define DB_RESULT_H
#include
#include "db-row.h"
#define DB_TYPE_RESULT (db_result_get_type())
typedef struct _DbResult DbResult;
typedef struct _DbColumn DbColumn;
/**
* DbResult:
* @nrows: Number of rows.
* @ncols: Number of columns.
* @data: (element-type DbRow): Has a #GList.
* @column: Has a #DbColumn.
*
* Has the information of a row.
**/
struct _DbResult
{
gint nrows;
gint ncols;
GPtrArray * data;
DbColumn * column;
};
/**
* DbColumnInfo:
* @DB_COLUMN_PRI_KEY: Attribute primary Key.
* @DB_COLUMN_UNIQUE: Attribute unique.
*
* Saves the information about if it is primary key or unique.
**/
typedef enum
{
DB_COLUMN_PRI_KEY = 1 << 0
,DB_COLUMN_UNIQUE = 1 << 1
}
DbColumnInfo;
/**
* DbColumn:
* @info: A #DbColumnInfo
* @spec: A #GvnParamSpec
* @table: Name of the table
* @name: Name of the column
* @display: The name given to it in the query
*
* Has the information of a column.
**/
struct _DbColumn
{
DbColumnInfo info;
GvnParamSpec * spec;
gchar * table;
gchar * name;
gchar * display;
};
GType db_result_get_type ();
DbResult * db_result_new ();
DbRow * db_result_get_row (const DbResult * obj, gint row_index);
void db_result_remove_row (DbResult * obj, gint row_index);
DbResult * db_result_copy (const DbResult * obj);
void db_result_free (DbResult * obj);
#endif