summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2019-07-02 19:27:34 +0100
committerDan Goodliffe <dan@randomdan.homeip.net>2019-07-02 19:27:34 +0100
commit9c2123473fa7c7399edc67d14c3675c2e11a42d3 (patch)
treece4fd000c70715516559b88068fd30a80e875f2d
parentGet glibmm and xml++ flags from pkg-config (diff)
downloadslicer-9c2123473fa7c7399edc67d14c3675c2e11a42d3.tar.bz2
slicer-9c2123473fa7c7399edc67d14c3675c2e11a42d3.tar.xz
slicer-9c2123473fa7c7399edc67d14c3675c2e11a42d3.zip
Swap AdHoc::Buffer for CTF in db libslicer-1.9.2
-rw-r--r--slicer/db/sqlInsertSerializer.cpp27
-rw-r--r--slicer/db/sqlInsertSerializer.h6
-rw-r--r--slicer/db/sqlUpdateSerializer.cpp19
3 files changed, 27 insertions, 25 deletions
diff --git a/slicer/db/sqlInsertSerializer.cpp b/slicer/db/sqlInsertSerializer.cpp
index 17d33b2..dde8f1f 100644
--- a/slicer/db/sqlInsertSerializer.cpp
+++ b/slicer/db/sqlInsertSerializer.cpp
@@ -3,7 +3,7 @@
#include <sqlExceptions.h>
#include "sqlBinder.h"
#include "sqlCommon.h"
-#include <buffer.h>
+#include <compileTimeFormatter.h>
#include <modifycommand.h>
#include <slicer/metadata.h>
#include <boost/numeric/conversion/cast.hpp>
@@ -119,37 +119,38 @@ namespace Slicer {
DB::ModifyCommandPtr
SqlInsertSerializer::createInsert(const Slicer::ModelPartPtr & mp) const
{
- AdHoc::Buffer insert;
- insert.appendbf("INSERT INTO %s(", tableName);
+ using namespace AdHoc::literals;
+ std::stringstream insert;
+ "INSERT INTO %?("_fmt(insert, tableName);
int fieldNo = 0;
mp->OnEachChild(std::bind(&SqlInsertSerializer::createInsertField, this, std::ref(fieldNo), std::ref(insert), _1, _3));
- insert.append(") VALUES (", AdHoc::Buffer::Use);
+ insert << ") VALUES (";
for (; fieldNo > 1; --fieldNo) {
- insert.append("?, ");
+ insert << "?, ";
}
- insert.append("?)");
- return connection->modify(insert);
+ insert << "?)";
+ return connection->modify(insert.str());
}
void
- SqlInsertSerializer::createInsertField(int & fieldNo, AdHoc::Buffer & insert, const std::string & name, const HookCommon * h) const
+ SqlInsertSerializer::createInsertField(int & fieldNo, std::ostream & insert, const std::string & name, const HookCommon * h) const
{
if (isBind(h)) {
if (fieldNo++) {
- insert.append(", ");
+ insert << ',';
}
- insert.append(name);
+ insert << name;
}
}
void
- SqlAutoIdInsertSerializer::createInsertField(int & fieldNo, AdHoc::Buffer & insert, const std::string & name, const HookCommon * h) const
+ SqlAutoIdInsertSerializer::createInsertField(int & fieldNo, std::ostream & insert, const std::string & name, const HookCommon * h) const
{
if (isNotAuto(h)) {
if (fieldNo++) {
- insert.append(", ");
+ insert << ',';
}
- insert.append(name);
+ insert << name;
}
}
}
diff --git a/slicer/db/sqlInsertSerializer.h b/slicer/db/sqlInsertSerializer.h
index d3e2215..3534b87 100644
--- a/slicer/db/sqlInsertSerializer.h
+++ b/slicer/db/sqlInsertSerializer.h
@@ -4,7 +4,7 @@
#include <slicer/serializer.h>
#include <connection.h>
#include <visibility.h>
-#include <buffer.h>
+#include <ostream>
namespace Slicer {
class DLL_PUBLIC SqlInsertSerializer : public Slicer::Serializer {
@@ -17,7 +17,7 @@ namespace Slicer {
void SerializeObject(const Slicer::ModelPartPtr &) const;
void SerializeSequence(const Slicer::ModelPartPtr &) const;
DB::ModifyCommandPtr createInsert(const Slicer::ModelPartPtr &) const;
- virtual void createInsertField(int & fieldNo, AdHoc::Buffer & insert, const std::string & name, const HookCommon * h) const;
+ virtual void createInsertField(int & fieldNo, std::ostream & insert, const std::string & name, const HookCommon * h) const;
virtual void bindObjectAndExecute(const Slicer::ModelPartPtr &, DB::ModifyCommand *) const;
virtual void bindObjectAndExecuteField(int & paramNo, DB::ModifyCommand *, const Slicer::ModelPartPtr &, const HookCommon *) const;
@@ -31,7 +31,7 @@ namespace Slicer {
SqlAutoIdInsertSerializer(const P & ... p) : SqlInsertSerializer(p...) { }
protected:
- virtual void createInsertField(int & fieldNo, AdHoc::Buffer & insert, const std::string & name, const HookCommon * h) const;
+ virtual void createInsertField(int & fieldNo, std::ostream & insert, const std::string & name, const HookCommon * h) const;
virtual void bindObjectAndExecuteField(int & paramNo, DB::ModifyCommand *, const Slicer::ModelPartPtr &, const HookCommon *) const;
};
diff --git a/slicer/db/sqlUpdateSerializer.cpp b/slicer/db/sqlUpdateSerializer.cpp
index 3ed7c2b..64ff1a0 100644
--- a/slicer/db/sqlUpdateSerializer.cpp
+++ b/slicer/db/sqlUpdateSerializer.cpp
@@ -3,7 +3,7 @@
#include <common.h>
#include "sqlBinder.h"
#include "sqlCommon.h"
-#include <buffer.h>
+#include <compileTimeFormatter.h>
#include <modifycommand.h>
#include <slicer/metadata.h>
#include <functional>
@@ -73,28 +73,29 @@ namespace Slicer {
DB::ModifyCommandPtr
SqlUpdateSerializer::createUpdate(const Slicer::ModelPartPtr & mp) const
{
- AdHoc::Buffer update;
- update.appendbf("UPDATE %s SET ", tableName);
+ using namespace AdHoc::literals;
+ std::stringstream update;
+ "UPDATE %? SET "_fmt(update, tableName);
int fieldNo = 0;
mp->OnEachChild([&update, &fieldNo]( const std::string & name, const ModelPartPtr &, const HookCommon * h) {
if (isValue(h)) {
if (fieldNo++) {
- update.append(", ");
+ update << ", ";
}
- update.appendbf("%s = ?", name);
+ "%? = ?"_fmt(update, name);
}
});
- update.append(" WHERE ", AdHoc::Buffer::Use);
+ update << " WHERE ";
fieldNo = 0;
mp->OnEachChild([&update, &fieldNo]( const std::string & name, const ModelPartPtr &, const HookCommon * h) {
if (isPKey(h)) {
if (fieldNo++) {
- update.append(" AND ");
+ update << " AND ";
}
- update.appendbf("%s = ?", name);
+ "%? = ?"_fmt(update, name);
}
});
- return connection->modify(update);
+ return connection->modify(update.str());
}
}