From ac45e4b440aede4054f544e1263f6c07422022dc Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Tue, 29 Dec 2015 17:02:11 +0000 Subject: Unambigous sqlWriter[s].h name --- project2/sql/sqlMergeTask.h | 2 +- project2/sql/sqlRows.h | 2 +- project2/sql/sqlTask.h | 2 +- project2/sql/sqlTest.h | 2 +- project2/sql/sqlWriter.cpp | 134 -------------------------------------------- project2/sql/sqlWriter.h | 69 ----------------------- project2/sql/sqlWriters.cpp | 134 ++++++++++++++++++++++++++++++++++++++++++++ project2/sql/sqlWriters.h | 69 +++++++++++++++++++++++ project2/sql/tablepatch.h | 2 +- 9 files changed, 208 insertions(+), 208 deletions(-) delete mode 100644 project2/sql/sqlWriter.cpp delete mode 100644 project2/sql/sqlWriter.h create mode 100644 project2/sql/sqlWriters.cpp create mode 100644 project2/sql/sqlWriters.h diff --git a/project2/sql/sqlMergeTask.h b/project2/sql/sqlMergeTask.h index 07b7ffb..0c005f8 100644 --- a/project2/sql/sqlMergeTask.h +++ b/project2/sql/sqlMergeTask.h @@ -9,7 +9,7 @@ #include "task.h" #include #include "variables.h" -#include "sqlWriter.h" +#include "sqlWriters.h" #include "rdbmsDataSource.h" #include #include diff --git a/project2/sql/sqlRows.h b/project2/sql/sqlRows.h index aec233e..20aa473 100644 --- a/project2/sql/sqlRows.h +++ b/project2/sql/sqlRows.h @@ -6,7 +6,7 @@ #include "selectcommand.h" #include "iHaveParameters.h" #include "rowSet.h" -#include "sqlWriter.h" +#include "sqlWriters.h" #include "sqlBase.h" class RdbmsDataSource; diff --git a/project2/sql/sqlTask.h b/project2/sql/sqlTask.h index 224d108..d6193ae 100644 --- a/project2/sql/sqlTask.h +++ b/project2/sql/sqlTask.h @@ -6,7 +6,7 @@ #include "task.h" #include "sqlBase.h" #include "variables.h" -#include "sqlWriter.h" +#include "sqlWriters.h" #include namespace DB { class ModifyCommand; } diff --git a/project2/sql/sqlTest.h b/project2/sql/sqlTest.h index 45e7836..4476b64 100644 --- a/project2/sql/sqlTest.h +++ b/project2/sql/sqlTest.h @@ -2,7 +2,7 @@ #define SQLTEST_H #include "test.h" -#include "sqlWriter.h" +#include "sqlWriters.h" #include "sqlBase.h" namespace DB { class SelectCommand; } diff --git a/project2/sql/sqlWriter.cpp b/project2/sql/sqlWriter.cpp deleted file mode 100644 index e3f632e..0000000 --- a/project2/sql/sqlWriter.cpp +++ /dev/null @@ -1,134 +0,0 @@ -#include -#include "sqlWriter.h" -#include "scripts.h" -#include -#include "sqlVariableBinder.h" - -DynamicSql::SqlWriter::SqlWriter() -{ -} - -DynamicSql::SqlWriter::~SqlWriter() -{ -} - -template -static -void -appendNew(DynamicSql::Writers * w, const Cons & cons) -{ - w->push_back(new Type(cons)); -} - -static -void -appendNewFromNode(DynamicSql::Writers * w, DynamicSql::SqlCommand::Filters * fs, ScriptNodePtr p) -{ - if (fs && p->get_name() == "filter") { - DynamicSql::SqlFilterPtr f = new DynamicSql::SqlFilter(p); - w->push_back(f); - fs->insert(DynamicSql::SqlCommand::Filters::value_type(f->name, f)); - } - else if (p->get_name() == "param") { - w->push_back(new DynamicSql::SqlParameter(p)); - } -} - -DynamicSql::SqlCommand::SqlCommand(ScriptNodePtr s) -{ - if (s) { - s->composeWithCallbacks( - boost::bind(&appendNew, &writers, _1), - boost::bind(&appendNewFromNode, &writers, &filters, _1)); - } -} - -Glib::ustring -DynamicSql::SqlCommand::getSqlFor(const Glib::ustring & f) const -{ - for (const SqlCommand::Filters::value_type & filter : filters) { - filter.second->active = (filter.second->name == f); - } - AdHoc::Buffer sql; - writeSql(sql); - return Glib::ustring(sql.str()); -} - -void -DynamicSql::SqlCommand::writeSql(AdHoc::Buffer & sql) const -{ - for (const SqlWriterPtr & w : writers) { - w->writeSql(sql); - } -} - -void -DynamicSql::SqlCommand::bindParams(ExecContext * ec, DB::Command * cmd, unsigned int & offset) const -{ - for (const SqlWriterPtr & w : writers) { - w->bindParams(ec, cmd, offset); - } -} - -DynamicSql::SqlFilter::SqlFilter(ScriptNodePtr p) : - name(p->value("name", NULL).as()), - active(false) -{ - p->composeWithCallbacks( - boost::bind(&appendNew, &writers, _1), - boost::bind(&appendNewFromNode, &writers, (DynamicSql::SqlCommand::Filters *)NULL, _1)); -} - -void -DynamicSql::SqlFilter::writeSql(AdHoc::Buffer & sql) const -{ - if (active) { - for (const SqlWriterPtr & w : writers) { - w->writeSql(sql); - } - } -} - -void -DynamicSql::SqlFilter::bindParams(ExecContext * ec, DB::Command * cmd, unsigned int & offset) const -{ - if (active) { - for (const SqlWriterPtr & w : writers) { - w->bindParams(ec, cmd, offset); - } - } -} - -DynamicSql::SqlParameter::SqlParameter(ScriptNodePtr n) : - Variable(n, boost::optional("local")) -{ -} - -void -DynamicSql::SqlParameter::writeSql(AdHoc::Buffer & sql) const -{ - sql.append("?"); -} - -void -DynamicSql::SqlParameter::bindParams(ExecContext * ec, DB::Command * cmd, unsigned int & offset) const -{ - boost::apply_visitor(SqlVariableBinder(cmd, offset++), (*this)(ec)); -} - -DynamicSql::SqlText::SqlText(const Glib::ustring & n) : - text(n) -{ -} - -void -DynamicSql::SqlText::writeSql(AdHoc::Buffer & sql) const -{ - sql.append(text); -} - -void -DynamicSql::SqlText::bindParams(ExecContext *, DB::Command *, unsigned int &) const -{ -} - diff --git a/project2/sql/sqlWriter.h b/project2/sql/sqlWriter.h deleted file mode 100644 index 7fb9fa0..0000000 --- a/project2/sql/sqlWriter.h +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef SQLWRITER_H -#define SQLWRITER_H - -#include -#include -#include -#include -#include -#include -#include "variables.h" - -namespace DynamicSql { - class SqlWriter; - typedef boost::intrusive_ptr SqlWriterPtr; - typedef std::list Writers; - - class SqlWriter : public IntrusivePtrBase { - public: - SqlWriter(); - virtual ~SqlWriter(); - virtual void writeSql(AdHoc::Buffer & sql) const = 0; - virtual void bindParams(ExecContext *, DB::Command *, unsigned int & offset) const = 0; - }; - - class SqlText : public SqlWriter { - public: - SqlText(const Glib::ustring &); - virtual void writeSql(AdHoc::Buffer & sql) const; - virtual void bindParams(ExecContext *, DB::Command *, unsigned int & offset) const; - - const Glib::ustring text; - }; - - class SqlParameter : public SqlWriter, Variable { - public: - SqlParameter(ScriptNodePtr); - virtual void writeSql(AdHoc::Buffer & sql) const; - virtual void bindParams(ExecContext *, DB::Command *, unsigned int & offset) const; - }; - - class SqlFilter : public SqlWriter { - public: - SqlFilter(ScriptNodePtr); - virtual void writeSql(AdHoc::Buffer & sql) const; - virtual void bindParams(ExecContext *, DB::Command *, unsigned int & offset) const; - - const Glib::ustring name; - bool active; - private: - Writers writers; - }; - - typedef boost::intrusive_ptr SqlFilterPtr; - - class SqlCommand : public SqlWriter { - public: - SqlCommand(ScriptNodePtr); - virtual void writeSql(AdHoc::Buffer & sql) const; - virtual void bindParams(ExecContext *, DB::Command *, unsigned int & offset) const; - typedef std::multimap Filters; - Glib::ustring getSqlFor(const Glib::ustring & f) const; - private: - Filters filters; - Writers writers; - }; -} - -#endif - diff --git a/project2/sql/sqlWriters.cpp b/project2/sql/sqlWriters.cpp new file mode 100644 index 0000000..abffe72 --- /dev/null +++ b/project2/sql/sqlWriters.cpp @@ -0,0 +1,134 @@ +#include +#include "sqlWriters.h" +#include "scripts.h" +#include +#include "sqlVariableBinder.h" + +DynamicSql::SqlWriter::SqlWriter() +{ +} + +DynamicSql::SqlWriter::~SqlWriter() +{ +} + +template +static +void +appendNew(DynamicSql::Writers * w, const Cons & cons) +{ + w->push_back(new Type(cons)); +} + +static +void +appendNewFromNode(DynamicSql::Writers * w, DynamicSql::SqlCommand::Filters * fs, ScriptNodePtr p) +{ + if (fs && p->get_name() == "filter") { + DynamicSql::SqlFilterPtr f = new DynamicSql::SqlFilter(p); + w->push_back(f); + fs->insert(DynamicSql::SqlCommand::Filters::value_type(f->name, f)); + } + else if (p->get_name() == "param") { + w->push_back(new DynamicSql::SqlParameter(p)); + } +} + +DynamicSql::SqlCommand::SqlCommand(ScriptNodePtr s) +{ + if (s) { + s->composeWithCallbacks( + boost::bind(&appendNew, &writers, _1), + boost::bind(&appendNewFromNode, &writers, &filters, _1)); + } +} + +Glib::ustring +DynamicSql::SqlCommand::getSqlFor(const Glib::ustring & f) const +{ + for (const SqlCommand::Filters::value_type & filter : filters) { + filter.second->active = (filter.second->name == f); + } + AdHoc::Buffer sql; + writeSql(sql); + return Glib::ustring(sql.str()); +} + +void +DynamicSql::SqlCommand::writeSql(AdHoc::Buffer & sql) const +{ + for (const SqlWriterPtr & w : writers) { + w->writeSql(sql); + } +} + +void +DynamicSql::SqlCommand::bindParams(ExecContext * ec, DB::Command * cmd, unsigned int & offset) const +{ + for (const SqlWriterPtr & w : writers) { + w->bindParams(ec, cmd, offset); + } +} + +DynamicSql::SqlFilter::SqlFilter(ScriptNodePtr p) : + name(p->value("name", NULL).as()), + active(false) +{ + p->composeWithCallbacks( + boost::bind(&appendNew, &writers, _1), + boost::bind(&appendNewFromNode, &writers, (DynamicSql::SqlCommand::Filters *)NULL, _1)); +} + +void +DynamicSql::SqlFilter::writeSql(AdHoc::Buffer & sql) const +{ + if (active) { + for (const SqlWriterPtr & w : writers) { + w->writeSql(sql); + } + } +} + +void +DynamicSql::SqlFilter::bindParams(ExecContext * ec, DB::Command * cmd, unsigned int & offset) const +{ + if (active) { + for (const SqlWriterPtr & w : writers) { + w->bindParams(ec, cmd, offset); + } + } +} + +DynamicSql::SqlParameter::SqlParameter(ScriptNodePtr n) : + Variable(n, boost::optional("local")) +{ +} + +void +DynamicSql::SqlParameter::writeSql(AdHoc::Buffer & sql) const +{ + sql.append("?"); +} + +void +DynamicSql::SqlParameter::bindParams(ExecContext * ec, DB::Command * cmd, unsigned int & offset) const +{ + boost::apply_visitor(SqlVariableBinder(cmd, offset++), (*this)(ec)); +} + +DynamicSql::SqlText::SqlText(const Glib::ustring & n) : + text(n) +{ +} + +void +DynamicSql::SqlText::writeSql(AdHoc::Buffer & sql) const +{ + sql.append(text); +} + +void +DynamicSql::SqlText::bindParams(ExecContext *, DB::Command *, unsigned int &) const +{ +} + diff --git a/project2/sql/sqlWriters.h b/project2/sql/sqlWriters.h new file mode 100644 index 0000000..7fb9fa0 --- /dev/null +++ b/project2/sql/sqlWriters.h @@ -0,0 +1,69 @@ +#ifndef SQLWRITER_H +#define SQLWRITER_H + +#include +#include +#include +#include +#include +#include +#include "variables.h" + +namespace DynamicSql { + class SqlWriter; + typedef boost::intrusive_ptr SqlWriterPtr; + typedef std::list Writers; + + class SqlWriter : public IntrusivePtrBase { + public: + SqlWriter(); + virtual ~SqlWriter(); + virtual void writeSql(AdHoc::Buffer & sql) const = 0; + virtual void bindParams(ExecContext *, DB::Command *, unsigned int & offset) const = 0; + }; + + class SqlText : public SqlWriter { + public: + SqlText(const Glib::ustring &); + virtual void writeSql(AdHoc::Buffer & sql) const; + virtual void bindParams(ExecContext *, DB::Command *, unsigned int & offset) const; + + const Glib::ustring text; + }; + + class SqlParameter : public SqlWriter, Variable { + public: + SqlParameter(ScriptNodePtr); + virtual void writeSql(AdHoc::Buffer & sql) const; + virtual void bindParams(ExecContext *, DB::Command *, unsigned int & offset) const; + }; + + class SqlFilter : public SqlWriter { + public: + SqlFilter(ScriptNodePtr); + virtual void writeSql(AdHoc::Buffer & sql) const; + virtual void bindParams(ExecContext *, DB::Command *, unsigned int & offset) const; + + const Glib::ustring name; + bool active; + private: + Writers writers; + }; + + typedef boost::intrusive_ptr SqlFilterPtr; + + class SqlCommand : public SqlWriter { + public: + SqlCommand(ScriptNodePtr); + virtual void writeSql(AdHoc::Buffer & sql) const; + virtual void bindParams(ExecContext *, DB::Command *, unsigned int & offset) const; + typedef std::multimap Filters; + Glib::ustring getSqlFor(const Glib::ustring & f) const; + private: + Filters filters; + Writers writers; + }; +} + +#endif + diff --git a/project2/sql/tablepatch.h b/project2/sql/tablepatch.h index f08e543..cef90a7 100644 --- a/project2/sql/tablepatch.h +++ b/project2/sql/tablepatch.h @@ -8,7 +8,7 @@ #include #include #include -#include "sqlWriter.h" +#include "sqlWriters.h" #define foreach(_type, _con, _it) for (_type _it = ((_con).begin()); _it != ((_con).end()); _it++) -- cgit v1.2.3