/* * 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 SQL_RENDER_H #define SQL_RENDER_H #include #define SQL_RENDER_LOG_DOMAIN (g_quark_from_string ("SqlRender")) #define SQL_TYPE_RENDER (sql_render_get_type ()) #define SQL_RENDER(obj) (G_TYPE_CHECK_INSTANCE_CAST (obj, SQL_TYPE_RENDER, SqlRender)) #define SQL_IS_RENDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE (obj, SQL_TYPE_RENDER)) #define SQL_BUFFER_SIZE 500 typedef struct _SqlRender SqlRender; typedef struct _SqlRenderClass SqlRenderClass; #include "sql-batch.h" /** * SqlRender: * @custom_renderers: (element-type GType Sql.RenderFunc): **/ struct _SqlRender { GObject parent; GError * error; GString * buffer; gpointer object; SqlBatch * batch; GSList * ancestors; gpointer data; GHashTable * custom_renderers; gint8 delimiter; }; struct _SqlRenderClass { /* */ GObjectClass parent; }; /** * SqlRenderError: * @SQL_RENDER_ERROR: an error from an #SqlRender * * Identifies the error codes for #SqlRender **/ typedef enum { SQL_RENDER_ERROR } SqlRenderError; #include "sql-object.h" #include "sql-list.h" GType sql_render_get_type (); SqlRender * sql_render_new (gchar delimiter); gchar * sql_render_get_string (SqlRender * obj, gpointer object, SqlBatch * batch, gpointer data, GError ** err); void sql_render_register_function (SqlRender * obj, GType type, SqlRenderFunc function); GSList * sql_render_get_ancestors (SqlRender * obj); void sql_render_add_espace (SqlRender * obj); void sql_render_printf (SqlRender * obj, const gchar * string, ...); void sql_render_append (SqlRender * obj, const gchar * string); void sql_render_append_with_delimiter (SqlRender * obj, const gchar * string, gchar delimiter); void sql_render_add_token (SqlRender * obj, const gchar * token); void sql_render_add_identifier (SqlRender * obj, const gchar * identifier); void sql_render_add_object (SqlRender * obj, gpointer object); void sql_render_add_item (SqlRender * obj, gboolean required, const gchar * token, gpointer item); void sql_render_add_list (SqlRender * obj, gboolean required, const gchar * token, SqlList * list, const gchar * separator); void sql_render_add_list_with_func (SqlRender * obj, gboolean required, const gchar * token, SqlList * list, const gchar * separator, SqlRenderFunc function); void sql_render_set_error (SqlRender * obj); #endif