summaryrefslogtreecommitdiff
path: root/project2/sql/sqlWriter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'project2/sql/sqlWriter.cpp')
-rw-r--r--project2/sql/sqlWriter.cpp134
1 files changed, 0 insertions, 134 deletions
diff --git a/project2/sql/sqlWriter.cpp b/project2/sql/sqlWriter.cpp
deleted file mode 100644
index f654636..0000000
--- a/project2/sql/sqlWriter.cpp
+++ /dev/null
@@ -1,134 +0,0 @@
-#include <pch.hpp>
-#include "sqlWriter.h"
-#include "scripts.h"
-#include <boost/bind.hpp>
-#include "sqlVariableBinder.h"
-
-DynamicSql::SqlWriter::SqlWriter()
-{
-}
-
-DynamicSql::SqlWriter::~SqlWriter()
-{
-}
-
-template <typename Type, typename Cons>
-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<SqlText, Glib::ustring>, &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);
- }
- Buffer sql;
- writeSql(sql);
- return Glib::ustring(sql.str());
-}
-
-void
-DynamicSql::SqlCommand::writeSql(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<Glib::ustring>()),
- active(false)
-{
- p->composeWithCallbacks(
- boost::bind(&appendNew<SqlText, Glib::ustring>, &writers, _1),
- boost::bind(&appendNewFromNode, &writers, (DynamicSql::SqlCommand::Filters *)NULL, _1));
-}
-
-void
-DynamicSql::SqlFilter::writeSql(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<Glib::ustring>("local"))
-{
-}
-
-void
-DynamicSql::SqlParameter::writeSql(Buffer & sql) const
-{
- sql.append("?");
-}
-
-void
-DynamicSql::SqlParameter::bindParams(ExecContext * ec, DB::Command * cmd, unsigned int & offset) const
-{
- boost::apply_visitor<const SqlVariableBinder, const VariableType>(SqlVariableBinder(cmd, offset++), (*this)(ec));
-}
-
-DynamicSql::SqlText::SqlText(const Glib::ustring & n) :
- text(n)
-{
-}
-
-void
-DynamicSql::SqlText::writeSql(Buffer & sql) const
-{
- sql.append(text);
-}
-
-void
-DynamicSql::SqlText::bindParams(ExecContext *, DB::Command *, unsigned int &) const
-{
-}
-