Change gnc-slots-sql, sixtp-dom-generators, and sixtp-dom-parsers to C++.

So that they'll be able to use the C++ Kvp classes.
This commit is contained in:
John Ralls 2015-06-13 14:21:19 -07:00
parent 9b3f6078fc
commit 8b53483562
10 changed files with 70 additions and 44 deletions

View File

@ -58,7 +58,7 @@ src/backend/sql/gnc-owner-sql.c
src/backend/sql/gnc-price-sql.c
src/backend/sql/gnc-recurrence-sql.c
src/backend/sql/gnc-schedxaction-sql.c
src/backend/sql/gnc-slots-sql.c
src/backend/sql/gnc-slots-sql.cpp
src/backend/sql/gnc-tax-table-sql.c
src/backend/sql/gnc-transaction-sql.c
src/backend/sql/gnc-vendor-sql.c
@ -91,8 +91,8 @@ src/backend/xml/io-gncxml-v1.c
src/backend/xml/io-gncxml-v2.c
src/backend/xml/io-utils.c
src/backend/xml/sixtp.c
src/backend/xml/sixtp-dom-generators.c
src/backend/xml/sixtp-dom-parsers.c
src/backend/xml/sixtp-dom-generators.cpp
src/backend/xml/sixtp-dom-parsers.cpp
src/backend/xml/sixtp-stack.c
src/backend/xml/sixtp-to-dom-parser.c
src/backend/xml/sixtp-utils.c

View File

@ -38,7 +38,7 @@ libgnc_backend_sql_la_SOURCES = \
gnc-price-sql.c \
gnc-recurrence-sql.c \
gnc-schedxaction-sql.c \
gnc-slots-sql.c \
gnc-slots-sql.cpp \
gnc-tax-table-sql.c \
gnc-transaction-sql.c \
gnc-vendor-sql.c \

View File

@ -25,7 +25,8 @@
* This file implements the top-level QofBackend API for saving/
* restoring data to/from an SQL db
*/
extern "C"
{
#include "config.h"
#include <glib.h>
@ -40,7 +41,7 @@
#ifdef S_SPLINT_S
#include "splint-defs.h"
#endif
}
/*@ unused @*/ static QofLogModule log_module = G_LOG_DOMAIN;
#define TABLE_NAME "slots"
@ -323,7 +324,7 @@ get_slot_type( gpointer pObject )
{
slot_info_t* pInfo = (slot_info_t*)pObject;
g_return_val_if_fail( pObject != NULL, 0 );
g_return_val_if_fail( pObject != NULL, KVP_TYPE_INVALID );
// return (gpointer)kvp_value_get_type( pInfo->pKvpValue );
return pInfo->value_type;
@ -337,7 +338,7 @@ set_slot_type( gpointer pObject, /*@ null @*/ gpointer pValue )
g_return_if_fail( pObject != NULL );
g_return_if_fail( pValue != NULL );
pInfo->value_type = (KvpValueType)pValue;
pInfo->value_type = static_cast<KvpValueType>(GPOINTER_TO_INT(pValue));
}
static gint64
@ -709,7 +710,8 @@ save_slot( const gchar* key, KvpValue* value, gpointer data )
gboolean
gnc_sql_slots_save( GncSqlBackend* be, const GncGUID* guid, gboolean is_infant, KvpFrame* pFrame )
{
slot_info_t slot_info = { NULL, NULL, TRUE, NULL, 0, NULL, FRAME, NULL, g_string_new(NULL) };
slot_info_t slot_info = { NULL, NULL, TRUE, NULL, KVP_TYPE_INVALID, NULL, FRAME, NULL, g_string_new(NULL) };
KvpFrame *pFrame = qof_instance_get_slots (inst);
g_return_val_if_fail( be != NULL, FALSE );
g_return_val_if_fail( guid != NULL, FALSE );
@ -736,7 +738,7 @@ gnc_sql_slots_delete( GncSqlBackend* be, const GncGUID* guid )
GncSqlResult* result;
gchar guid_buf[GUID_ENCODING_LENGTH + 1];
GncSqlStatement* stmt;
slot_info_t slot_info = { NULL, NULL, TRUE, NULL, 0, NULL, FRAME, NULL, g_string_new(NULL) };
slot_info_t slot_info = { NULL, NULL, TRUE, NULL, KVP_TYPE_INVALID, NULL, FRAME, NULL, g_string_new(NULL) };
g_return_val_if_fail( be != NULL, FALSE );
g_return_val_if_fail( guid != NULL, FALSE );
@ -818,7 +820,7 @@ load_slot( slot_info_t *pInfo, GncSqlRow* row )
void
gnc_sql_slots_load( GncSqlBackend* be, QofInstance* inst )
{
slot_info_t info = { NULL, NULL, TRUE, NULL, 0, NULL, FRAME, NULL, g_string_new(NULL) };
slot_info_t info = { NULL, NULL, TRUE, NULL, KVP_TYPE_INVALID, NULL, FRAME, NULL, g_string_new(NULL) };
g_return_if_fail( be != NULL );
g_return_if_fail( inst != NULL );
@ -883,7 +885,7 @@ load_obj_guid( const GncSqlBackend* be, GncSqlRow* row )
static void
load_slot_for_list_item( GncSqlBackend* be, GncSqlRow* row, QofCollection* coll )
{
slot_info_t slot_info = { NULL, NULL, TRUE, NULL, 0, NULL, FRAME, NULL, NULL };
slot_info_t slot_info = { NULL, NULL, TRUE, NULL, KVP_TYPE_INVALID, NULL, FRAME, NULL, NULL };
const GncGUID* guid;
QofInstance* inst;
@ -969,7 +971,7 @@ gnc_sql_slots_load_for_list( GncSqlBackend* be, GList* list )
static void
load_slot_for_book_object( GncSqlBackend* be, GncSqlRow* row, BookLookupFn lookup_fn )
{
slot_info_t slot_info = { NULL, NULL, TRUE, NULL, 0, NULL, FRAME, NULL, NULL };
slot_info_t slot_info = { NULL, NULL, TRUE, NULL, KVP_TYPE_INVALID, NULL, FRAME, NULL, NULL };
const GncGUID* guid;
QofInstance* inst;

View File

@ -28,6 +28,10 @@
#ifndef GNC_SLOTS_SQL_H
#define GNC_SLOTS_SQL_H
#ifdef __cplusplus
extern "C"
{
#endif
#include <glib.h>
#include "guid.h"
@ -88,4 +92,7 @@ void gnc_sql_slots_load_for_sql_subquery( GncSqlBackend* be, const gchar* subque
void gnc_sql_init_slots_handler( void );
#ifdef __cplusplus
}
#endif
#endif /* GNC_SLOTS_SQL_H */

View File

@ -45,8 +45,8 @@ libgnc_backend_xml_utils_la_SOURCES = \
io-gncxml-v1.c \
io-gncxml-v2.c \
io-utils.c \
sixtp-dom-generators.c \
sixtp-dom-parsers.c \
sixtp-dom-generators.cpp \
sixtp-dom-parsers.cpp \
sixtp-stack.c \
sixtp-to-dom-parser.c \
sixtp-utils.c \

View File

@ -20,7 +20,8 @@
* Boston, MA 02110-1301, USA gnu@gnu.org *
* *
********************************************************************/
extern "C"
{
#define __EXTENSIONS__
#include "config.h"
@ -31,6 +32,7 @@
#include "sixtp-dom-generators.h"
#include "sixtp-utils.h"
}
static QofLogModule log_module = GNC_MOD_IO;
@ -237,11 +239,11 @@ double_to_string(double value)
}
static void
add_text_to_node(xmlNodePtr node, gchar *type, gchar *val)
add_text_to_node(xmlNodePtr node, const gchar *type, gchar *val)
{
gchar *newtype = g_strdup (type);
gchar *newval = g_strdup (val);
xmlSetProp(node, BAD_CAST "type", checked_char_cast (type));
xmlSetProp(node, BAD_CAST "type", BAD_CAST type);
xmlNodeSetContent(node, checked_char_cast (val));
g_free (newtype);
g_free(newval);
@ -251,7 +253,7 @@ static void
add_kvp_slot(const char * key, KvpValue* value, xmlNodePtr node);
static void
add_kvp_value_node(xmlNodePtr node, gchar *tag, KvpValue* val)
add_kvp_value_node(xmlNodePtr node, const gchar *tag, KvpValue* val)
{
xmlNodePtr val_node;
kvp_value_t kvp_type;

View File

@ -24,6 +24,10 @@
#ifndef SIXTP_DOM_GENERATORS_H
#define SIXTP_DOM_GENERATORS_H
#ifdef __cplusplus
extern "C"
{
#endif
#include <glib.h>
#include "gnc-xml-helper.h"
@ -49,4 +53,7 @@ xmlNodePtr recurrence_to_dom_tree(const gchar *tag, const Recurrence *r);
gchar* double_to_string(double value);
#ifdef __cplusplus
}
#endif
#endif /* _SIXTP_DOM_GENERATORS_H_ */

View File

@ -20,7 +20,8 @@
* Boston, MA 02110-1301, USA gnu@gnu.org *
* *
********************************************************************/
extern "C"
{
#include "config.h"
#include <glib.h>
@ -30,7 +31,7 @@
#include "gnc-engine.h"
#include "sixtp-utils.h"
#include "sixtp-dom-parsers.h"
}
static QofLogModule log_module = GNC_MOD_IO;
GncGUID*
@ -350,7 +351,7 @@ dom_tree_to_frame_kvp_value(xmlNodePtr node)
struct kvp_val_converter
{
gchar *tag;
const gchar *tag;
KvpValue* (*converter)(xmlNodePtr node);
};
@ -683,7 +684,8 @@ dom_tree_to_gdate(xmlNodePtr node)
}
g_free(content);
seen_date = TRUE;
g_date_set_dmy( ret, day, month, year );
g_date_set_dmy( ret, day, static_cast<GDateMonth>(month),
year );
if ( !g_date_valid( ret ) )
{
PWARN("invalid date");

View File

@ -23,6 +23,10 @@
#ifndef SIXTP_DOM_PARSERS_H
#define SIXTP_DOM_PARSERS_H
#ifdef __cplusplus
extern "C"
{
#endif
#include <glib.h>
@ -88,5 +92,7 @@ gboolean dom_tree_generic_parse(xmlNodePtr node,
struct dom_tree_handler *handlers,
gpointer data);
#ifdef __cplusplus
}
#endif
#endif /* _SIXTP_DOM_PARSERS_H_ */

View File

@ -2,8 +2,8 @@
SUBDIRS = test-files
test_date_converting_SOURCES = \
${top_srcdir}/src/backend/xml/sixtp-dom-parsers.c \
${top_srcdir}/src/backend/xml/sixtp-dom-generators.c \
${top_srcdir}/src/backend/xml/sixtp-dom-parsers.cpp \
${top_srcdir}/src/backend/xml/sixtp-dom-generators.cpp \
${top_srcdir}/src/backend/xml/sixtp-utils.c \
${top_srcdir}/src/backend/xml/sixtp.c \
${top_srcdir}/src/backend/xml/sixtp-stack.c \
@ -12,8 +12,8 @@ test_date_converting_SOURCES = \
test-date-converting.c
test_dom_converters1_SOURCES = \
${top_srcdir}/src/backend/xml/sixtp-dom-parsers.c \
${top_srcdir}/src/backend/xml/sixtp-dom-generators.c \
${top_srcdir}/src/backend/xml/sixtp-dom-parsers.cpp \
${top_srcdir}/src/backend/xml/sixtp-dom-generators.cpp \
${top_srcdir}/src/backend/xml/sixtp-utils.c \
${top_srcdir}/src/backend/xml/sixtp.c \
${top_srcdir}/src/backend/xml/sixtp-stack.c \
@ -22,8 +22,8 @@ test_dom_converters1_SOURCES = \
test-dom-converters1.c
test_kvp_frames_SOURCES = \
${top_srcdir}/src/backend/xml/sixtp-dom-parsers.c \
${top_srcdir}/src/backend/xml/sixtp-dom-generators.c \
${top_srcdir}/src/backend/xml/sixtp-dom-parsers.cpp \
${top_srcdir}/src/backend/xml/sixtp-dom-generators.cpp \
${top_srcdir}/src/backend/xml/sixtp-utils.c \
${top_srcdir}/src/backend/xml/sixtp.c \
${top_srcdir}/src/backend/xml/sixtp-stack.c \
@ -36,8 +36,8 @@ test_kvp_frames_SOURCES = \
# and remain portable.
test_load_example_account_SOURCES = \
${top_srcdir}/src/backend/xml/sixtp-dom-parsers.c \
${top_srcdir}/src/backend/xml/sixtp-dom-generators.c \
${top_srcdir}/src/backend/xml/sixtp-dom-parsers.cpp \
${top_srcdir}/src/backend/xml/sixtp-dom-generators.cpp \
${top_srcdir}/src/backend/xml/sixtp-utils.c \
${top_srcdir}/src/backend/xml/sixtp.c \
${top_srcdir}/src/backend/xml/sixtp-stack.c \
@ -60,8 +60,8 @@ test_load_example_account_SOURCES = \
test-load-example-account.c
test_string_converters_SOURCES = \
${top_srcdir}/src/backend/xml/sixtp-dom-parsers.c \
${top_srcdir}/src/backend/xml/sixtp-dom-generators.c \
${top_srcdir}/src/backend/xml/sixtp-dom-parsers.cpp \
${top_srcdir}/src/backend/xml/sixtp-dom-generators.cpp \
${top_srcdir}/src/backend/xml/sixtp-utils.c \
${top_srcdir}/src/backend/xml/sixtp.c \
${top_srcdir}/src/backend/xml/sixtp-stack.c \
@ -70,8 +70,8 @@ test_string_converters_SOURCES = \
test-string-converters.c
test_xml_account_SOURCES = \
${top_srcdir}/src/backend/xml/sixtp-dom-parsers.c \
${top_srcdir}/src/backend/xml/sixtp-dom-generators.c \
${top_srcdir}/src/backend/xml/sixtp-dom-parsers.cpp \
${top_srcdir}/src/backend/xml/sixtp-dom-generators.cpp \
${top_srcdir}/src/backend/xml/sixtp-utils.c \
${top_srcdir}/src/backend/xml/sixtp.c \
${top_srcdir}/src/backend/xml/sixtp-stack.c \
@ -93,8 +93,8 @@ test_xml_account_SOURCES = \
test-xml-account.c
test_xml_commodity_SOURCES = \
${top_srcdir}/src/backend/xml/sixtp-dom-parsers.c \
${top_srcdir}/src/backend/xml/sixtp-dom-generators.c \
${top_srcdir}/src/backend/xml/sixtp-dom-parsers.cpp \
${top_srcdir}/src/backend/xml/sixtp-dom-generators.cpp \
${top_srcdir}/src/backend/xml/sixtp-utils.c \
${top_srcdir}/src/backend/xml/sixtp.c \
${top_srcdir}/src/backend/xml/sixtp-stack.c \
@ -116,8 +116,8 @@ test_xml_commodity_SOURCES = \
test-xml-commodity.c
test_xml_pricedb_SOURCES = \
${top_srcdir}/src/backend/xml/sixtp-dom-parsers.c \
${top_srcdir}/src/backend/xml/sixtp-dom-generators.c \
${top_srcdir}/src/backend/xml/sixtp-dom-parsers.cpp \
${top_srcdir}/src/backend/xml/sixtp-dom-generators.cpp \
${top_srcdir}/src/backend/xml/sixtp-utils.c \
${top_srcdir}/src/backend/xml/sixtp.c \
${top_srcdir}/src/backend/xml/sixtp-stack.c \
@ -139,8 +139,8 @@ test_xml_pricedb_SOURCES = \
test-xml-pricedb.c
test_xml_transaction_SOURCES = \
${top_srcdir}/src/backend/xml/sixtp-dom-parsers.c \
${top_srcdir}/src/backend/xml/sixtp-dom-generators.c \
${top_srcdir}/src/backend/xml/sixtp-dom-parsers.cpp \
${top_srcdir}/src/backend/xml/sixtp-dom-generators.cpp \
${top_srcdir}/src/backend/xml/sixtp-utils.c \
${top_srcdir}/src/backend/xml/sixtp.c \
${top_srcdir}/src/backend/xml/sixtp-stack.c \
@ -162,8 +162,8 @@ test_xml_transaction_SOURCES = \
test-xml-transaction.c
test_xml2_is_file_SOURCES = \
${top_srcdir}/src/backend/xml/sixtp-dom-parsers.c \
${top_srcdir}/src/backend/xml/sixtp-dom-generators.c \
${top_srcdir}/src/backend/xml/sixtp-dom-parsers.cpp \
${top_srcdir}/src/backend/xml/sixtp-dom-generators.cpp \
${top_srcdir}/src/backend/xml/sixtp-utils.c \
${top_srcdir}/src/backend/xml/sixtp.c \
${top_srcdir}/src/backend/xml/sixtp-stack.c \