[libgdamm] SqlBuilder: Make set_field_value() and add_expr() templated.
- From: Murray Cumming <murrayc src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [libgdamm] SqlBuilder: Make set_field_value() and add_expr() templated.
- Date: Wed, 2 Dec 2009 08:16:31 +0000 (UTC)
commit eb09a0eb851e6a4ac94345b9311044bc8a330c22
Author: Murray Cumming <murrayc murrayc com>
Date: Wed Dec 2 09:08:09 2009 +0100
SqlBuilder: Make set_field_value() and add_expr() templated.
* libgda/src/sqlbuilder.[hg|ccg]: set_field_value(): Rename to
set_field_value_as_value. Rename add_expr() to add_expr_as_value().
Add templated set_field_value() and add_expr() methods so people
do not need to manually construct a Value object.
ChangeLog | 9 +++++++
libgda/src/sqlbuilder.ccg | 4 +-
libgda/src/sqlbuilder.hg | 57 +++++++++++++++++++++++++++++++++++++++++---
3 files changed, 64 insertions(+), 6 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 33ad6f6..0d71d1f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2009-12-02 Murray Cumming <murrayc murrayc-desktop>
+
+ SqlBuilder: Make set_field_value() and add_expr() templated.
+
+ * libgda/src/sqlbuilder.[hg|ccg]: set_field_value(): Rename to
+ set_field_value_as_value. Rename add_expr() to add_expr_as_value().
+ Add templated set_field_value() and add_expr() methods so people
+ do not need to manually construct a Value object.
+
2009-12-01 Murray Cumming <murrayc murrayc com>
SqlBuilder: Added 2 more methods.
diff --git a/libgda/src/sqlbuilder.ccg b/libgda/src/sqlbuilder.ccg
index fa41720..ffff21a 100644
--- a/libgda/src/sqlbuilder.ccg
+++ b/libgda/src/sqlbuilder.ccg
@@ -41,12 +41,12 @@ guint SqlBuilder::add_id(const Glib::ustring& string)
return gda_sql_builder_add_id(gobj(), 0, string.c_str());
}
-guint SqlBuilder::add_expr(const Glib::RefPtr<DataHandler>& dh, const Value& value)
+guint SqlBuilder::add_expr_as_value(const Glib::RefPtr<DataHandler>& dh, const Value& value)
{
return gda_sql_builder_add_expr_value(gobj(), 0, dh->gobj(), const_cast<GValue*>(value.gobj()));
}
-guint SqlBuilder::add_expr(const Value& value)
+guint SqlBuilder::add_expr_as_value(const Value& value)
{
return gda_sql_builder_add_expr_value(gobj(), 0, 0, const_cast<GValue*>(value.gobj()));
}
diff --git a/libgda/src/sqlbuilder.hg b/libgda/src/sqlbuilder.hg
index fc5f62b..cc37c9e 100644
--- a/libgda/src/sqlbuilder.hg
+++ b/libgda/src/sqlbuilder.hg
@@ -70,7 +70,28 @@ public:
*
* @return The ID of the new expression, or 0 if there was an error.
*/
- guint add_expr(const Glib::RefPtr<DataHandler>& dh, const Value& value);
+ template <class ValueType>
+ guint add_expr(const Glib::RefPtr<DataHandler>& dh, const ValueType& value);
+
+ /** Defines an expression in Builder which may be reused to build other parts of a statement.
+ * @param dh The datahandler to use
+ * @param value: value to set the expression to
+ *
+ * See expr() except that no custom datahandler is given
+ *
+ * @return The ID of the new expression, or 0 if there was an error.
+ */
+ guint add_expr_as_value(const Glib::RefPtr<DataHandler>& dh, const Value& value);
+
+ /** Defines an expression in Builder which may be reused to build other parts of a statement.
+ * @param value: value to set the expression to
+ *
+ * See expr() except that no custom datahandler is given
+ *
+ * @return The ID of the new expression, or 0 if there was an error.
+ */
+ template <class ValueType>
+ guint add_expr(const ValueType& value);
/** Defines an expression in Builder which may be reused to build other parts of a statement.
* @param value: value to set the expression to
@@ -79,7 +100,7 @@ public:
*
* @return The ID of the new expression, or 0 if there was an error.
*/
- guint add_expr(const Value& value);
+ guint add_expr_as_value(const Value& value);
/** Defines a parameter which may be reused to build other parts of a statement.
* @param: param_name: name of the parameter
@@ -158,8 +179,11 @@ public:
_WRAP_METHOD(void add_field_id(guint field_id, guint value_id = 0), gda_sql_builder_add_field_id)
- //TODO: Add templated version:
- _WRAP_METHOD(void add_field_value(const Glib::ustring& field_name, const Value& value), gda_sql_builder_add_field_value)
+ //TODO: Documentation:
+ template <class ValueType>
+ void add_field_value(const Glib::ustring& field_name, const ValueType& value);
+
+ _WRAP_METHOD(void add_field_value_as_value(const Glib::ustring& field_name, const Value& value), gda_sql_builder_add_field_value)
_IGNORE(gda_sql_builder_add_field)
@@ -169,6 +193,31 @@ public:
};
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+template <class ValueType> inline
+void SqlBuilder::add_field_value(const Glib::ustring& field_name, const ValueType& value)
+{
+ Gnome::Gda::Value gdavalue(value);
+ this->add_field_value_as_value(field_name, gdavalue);
+}
+
+template <class ValueType> inline
+guint SqlBuilder::add_expr(const Glib::RefPtr<DataHandler>& dh, const ValueType& value)
+{
+ Gnome::Gda::Value gdavalue(value);
+ return this->add_expr_as_value(dh, gdavalue);
+}
+
+template <class ValueType> inline
+guint SqlBuilder::add_expr(const ValueType& value)
+{
+ Gnome::Gda::Value gdavalue(value);
+ return this->add_expr_as_value(gdavalue);
+}
+
+#endif //DOXYGEN_SHOULD_SKIP_THIS
+
} // namespace Gda
} // namespace Gnome
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]