445 lines
11 KiB
Diff
445 lines
11 KiB
Diff
|
From 5486c8c85b9cfb92232518b2fadf6d8ed7b332d5 Mon Sep 17 00:00:00 2001
|
||
|
From: Boris Kolpackov <boris@codesynthesis.com>
|
||
|
Date: Wed, 3 Jun 2015 21:35:43 +0200
|
||
|
Subject: [PATCH] Remove gratuitous classes
|
||
|
|
||
|
In the process also get rid of global class processor which conflicts
|
||
|
with enum processor on MIPS.
|
||
|
|
||
|
[Upstream: bbc39ffe31c67506b4c03fc56fa3adcb925b6325]
|
||
|
Signed-off-by: Kamel Bouhara <kamel.bouhara@bootlin.com>
|
||
|
---
|
||
|
odb/context.hxx | 3 ++-
|
||
|
odb/generator.cxx | 24 ++++++++++++------------
|
||
|
odb/generator.hxx | 26 ++++++++------------------
|
||
|
odb/plugin.cxx | 18 +++++++-----------
|
||
|
odb/processor.cxx | 4 ++--
|
||
|
odb/processor.hxx | 22 ++++++----------------
|
||
|
odb/relational/validator.cxx | 6 +++---
|
||
|
odb/relational/validator.hxx | 29 +++++++++--------------------
|
||
|
odb/validator.cxx | 13 ++++++-------
|
||
|
odb/validator.hxx | 28 +++++++++-------------------
|
||
|
10 files changed, 64 insertions(+), 109 deletions(-)
|
||
|
|
||
|
diff --git a/odb/context.hxx b/odb/context.hxx
|
||
|
index 1cf002a..351bc61 100644
|
||
|
--- a/odb/context.hxx
|
||
|
+++ b/odb/context.hxx
|
||
|
@@ -41,7 +41,8 @@ typedef cutl::re::format regex_format;
|
||
|
|
||
|
typedef std::vector<regexsub> regex_mapping;
|
||
|
|
||
|
-//
|
||
|
+// Generic exception thrown to indicate a failure when diagnostics
|
||
|
+// has already been issued (to stderr).
|
||
|
//
|
||
|
class operation_failed {};
|
||
|
|
||
|
diff --git a/odb/generator.cxx b/odb/generator.cxx
|
||
|
index e165faf..6aa5151 100644
|
||
|
--- a/odb/generator.cxx
|
||
|
+++ b/odb/generator.cxx
|
||
|
@@ -58,7 +58,7 @@ namespace
|
||
|
if (!ifs.is_open ())
|
||
|
{
|
||
|
cerr << "error: unable to open '" << p << "' in read mode" << endl;
|
||
|
- throw generator::failed ();
|
||
|
+ throw generator_failed ();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@@ -70,7 +70,7 @@ namespace
|
||
|
if (!ofs.is_open ())
|
||
|
{
|
||
|
cerr << "error: unable to open '" << p << "' in write mode" << endl;
|
||
|
- throw generator::failed ();
|
||
|
+ throw generator_failed ();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@@ -118,7 +118,7 @@ namespace
|
||
|
}
|
||
|
}
|
||
|
|
||
|
-void generator::
|
||
|
+void
|
||
|
generate (options const& ops,
|
||
|
features& fts,
|
||
|
semantics::unit& unit,
|
||
|
@@ -259,7 +259,7 @@ generate (options const& ops,
|
||
|
cerr << in_log_path << ": error: wrong database '" <<
|
||
|
old_changelog->database () << "', expected '" << db <<
|
||
|
"'" << endl;
|
||
|
- throw generator::failed ();
|
||
|
+ throw generator_failed ();
|
||
|
}
|
||
|
|
||
|
string sn (ops.schema_name ()[db]);
|
||
|
@@ -268,18 +268,18 @@ generate (options const& ops,
|
||
|
cerr << in_log_path << ": error: wrong schema name '" <<
|
||
|
old_changelog->schema_name () << "', expected '" << sn <<
|
||
|
"'" << endl;
|
||
|
- throw generator::failed ();
|
||
|
+ throw generator_failed ();
|
||
|
}
|
||
|
}
|
||
|
catch (const ios_base::failure& e)
|
||
|
{
|
||
|
cerr << in_log_path << ": read failure" << endl;
|
||
|
- throw failed ();
|
||
|
+ throw generator_failed ();
|
||
|
}
|
||
|
catch (const xml::parsing& e)
|
||
|
{
|
||
|
cerr << e.what () << endl;
|
||
|
- throw failed ();
|
||
|
+ throw generator_failed ();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@@ -976,12 +976,12 @@ generate (options const& ops,
|
||
|
catch (const ios_base::failure& e)
|
||
|
{
|
||
|
cerr << out_log_path << ": write failure" << endl;
|
||
|
- throw failed ();
|
||
|
+ throw generator_failed ();
|
||
|
}
|
||
|
catch (const xml::serialization& e)
|
||
|
{
|
||
|
cerr << e.what () << endl;
|
||
|
- throw failed ();
|
||
|
+ throw generator_failed ();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@@ -998,18 +998,18 @@ generate (options const& ops,
|
||
|
{
|
||
|
// Code generation failed. Diagnostics has already been issued.
|
||
|
//
|
||
|
- throw failed ();
|
||
|
+ throw generator_failed ();
|
||
|
}
|
||
|
catch (semantics::invalid_path const& e)
|
||
|
{
|
||
|
cerr << "error: '" << e.path () << "' is not a valid filesystem path"
|
||
|
<< endl;
|
||
|
- throw failed ();
|
||
|
+ throw generator_failed ();
|
||
|
}
|
||
|
catch (fs::error const&)
|
||
|
{
|
||
|
// Auto-removal of generated files failed. Ignore it.
|
||
|
//
|
||
|
- throw failed ();
|
||
|
+ throw generator_failed ();
|
||
|
}
|
||
|
}
|
||
|
diff --git a/odb/generator.hxx b/odb/generator.hxx
|
||
|
index ce49295..e83d94d 100644
|
||
|
--- a/odb/generator.hxx
|
||
|
+++ b/odb/generator.hxx
|
||
|
@@ -11,23 +11,13 @@
|
||
|
#include <odb/features.hxx>
|
||
|
#include <odb/semantics/unit.hxx>
|
||
|
|
||
|
-class generator
|
||
|
-{
|
||
|
-public:
|
||
|
- class failed {};
|
||
|
-
|
||
|
- void
|
||
|
- generate (options const&,
|
||
|
- features&,
|
||
|
- semantics::unit&,
|
||
|
- semantics::path const& file,
|
||
|
- std::vector<semantics::path> const& inputs);
|
||
|
-
|
||
|
- generator () {}
|
||
|
-
|
||
|
-private:
|
||
|
- generator (generator const&);
|
||
|
- generator& operator= (generator const&);
|
||
|
-};
|
||
|
+class generator_failed {};
|
||
|
+
|
||
|
+void
|
||
|
+generate (options const&,
|
||
|
+ features&,
|
||
|
+ semantics::unit&,
|
||
|
+ semantics::path const& file,
|
||
|
+ std::vector<semantics::path> const& inputs);
|
||
|
|
||
|
#endif // ODB_GENERATOR_HXX
|
||
|
diff --git a/odb/plugin.cxx b/odb/plugin.cxx
|
||
|
index e32f225..51f0cb1 100644
|
||
|
--- a/odb/plugin.cxx
|
||
|
+++ b/odb/plugin.cxx
|
||
|
@@ -199,27 +199,23 @@ gate_callback (void*, void*)
|
||
|
parser p (*options_, loc_pragmas_, ns_loc_pragmas_, decl_pragmas_);
|
||
|
auto_ptr<unit> u (p.parse (global_namespace, file_));
|
||
|
|
||
|
-
|
||
|
features f;
|
||
|
|
||
|
// Validate, pass 1.
|
||
|
//
|
||
|
- validator v;
|
||
|
- v.validate (*options_, f, *u, file_, 1);
|
||
|
+ validate (*options_, f, *u, file_, 1);
|
||
|
|
||
|
// Process.
|
||
|
//
|
||
|
- processor pr;
|
||
|
- pr.process (*options_, f, *u, file_);
|
||
|
+ process (*options_, f, *u, file_);
|
||
|
|
||
|
// Validate, pass 2.
|
||
|
//
|
||
|
- v.validate (*options_, f, *u, file_, 2);
|
||
|
+ validate (*options_, f, *u, file_, 2);
|
||
|
|
||
|
// Generate.
|
||
|
//
|
||
|
- generator g;
|
||
|
- g.generate (*options_, f, *u, file_, inputs_);
|
||
|
+ generate (*options_, f, *u, file_, inputs_);
|
||
|
}
|
||
|
catch (cutl::re::format const& e)
|
||
|
{
|
||
|
@@ -239,19 +235,19 @@ gate_callback (void*, void*)
|
||
|
//
|
||
|
r = 1;
|
||
|
}
|
||
|
- catch (validator::failed const&)
|
||
|
+ catch (validator_failed const&)
|
||
|
{
|
||
|
// Diagnostics has aready been issued.
|
||
|
//
|
||
|
r = 1;
|
||
|
}
|
||
|
- catch (processor::failed const&)
|
||
|
+ catch (processor_failed const&)
|
||
|
{
|
||
|
// Diagnostics has aready been issued.
|
||
|
//
|
||
|
r = 1;
|
||
|
}
|
||
|
- catch (generator::failed const&)
|
||
|
+ catch (generator_failed const&)
|
||
|
{
|
||
|
// Diagnostics has aready been issued.
|
||
|
//
|
||
|
diff --git a/odb/processor.cxx b/odb/processor.cxx
|
||
|
index a808a52..3a2cb1d 100644
|
||
|
--- a/odb/processor.cxx
|
||
|
+++ b/odb/processor.cxx
|
||
|
@@ -3064,7 +3064,7 @@ namespace
|
||
|
};
|
||
|
}
|
||
|
|
||
|
-void processor::
|
||
|
+void
|
||
|
process (options const& ops,
|
||
|
features& f,
|
||
|
semantics::unit& unit,
|
||
|
@@ -3120,6 +3120,6 @@ process (options const& ops,
|
||
|
{
|
||
|
// Processing failed. Diagnostics has already been issued.
|
||
|
//
|
||
|
- throw failed ();
|
||
|
+ throw processor_failed ();
|
||
|
}
|
||
|
}
|
||
|
diff --git a/odb/processor.hxx b/odb/processor.hxx
|
||
|
index 602b999..e62dd25 100644
|
||
|
--- a/odb/processor.hxx
|
||
|
+++ b/odb/processor.hxx
|
||
|
@@ -9,22 +9,12 @@
|
||
|
#include <odb/features.hxx>
|
||
|
#include <odb/semantics/unit.hxx>
|
||
|
|
||
|
-class processor
|
||
|
-{
|
||
|
-public:
|
||
|
- class failed {};
|
||
|
+class processor_failed {};
|
||
|
|
||
|
- void
|
||
|
- process (options const&,
|
||
|
- features&,
|
||
|
- semantics::unit&,
|
||
|
- semantics::path const&);
|
||
|
-
|
||
|
- processor () {}
|
||
|
-
|
||
|
-private:
|
||
|
- processor (processor const&);
|
||
|
- processor& operator= (processor const&);
|
||
|
-};
|
||
|
+void
|
||
|
+process (options const&,
|
||
|
+ features&,
|
||
|
+ semantics::unit&,
|
||
|
+ semantics::path const&);
|
||
|
|
||
|
#endif // ODB_PROCESSOR_HXX
|
||
|
diff --git a/odb/relational/validator.cxx b/odb/relational/validator.cxx
|
||
|
index 1d51c9a..47f089c 100644
|
||
|
--- a/odb/relational/validator.cxx
|
||
|
+++ b/odb/relational/validator.cxx
|
||
|
@@ -528,7 +528,7 @@ namespace relational
|
||
|
};
|
||
|
}
|
||
|
|
||
|
- void validator::
|
||
|
+ void
|
||
|
validate (options const&,
|
||
|
features&,
|
||
|
semantics::unit& u,
|
||
|
@@ -608,7 +608,7 @@ namespace relational
|
||
|
}
|
||
|
|
||
|
if (!valid)
|
||
|
- throw failed ();
|
||
|
+ throw operation_failed ();
|
||
|
|
||
|
if (pass == 1)
|
||
|
{
|
||
|
@@ -636,6 +636,6 @@ namespace relational
|
||
|
}
|
||
|
|
||
|
if (!valid)
|
||
|
- throw failed ();
|
||
|
+ throw operation_failed ();
|
||
|
}
|
||
|
}
|
||
|
diff --git a/odb/relational/validator.hxx b/odb/relational/validator.hxx
|
||
|
index f0ede53..93360c3 100644
|
||
|
--- a/odb/relational/validator.hxx
|
||
|
+++ b/odb/relational/validator.hxx
|
||
|
@@ -11,26 +11,15 @@
|
||
|
|
||
|
namespace relational
|
||
|
{
|
||
|
- class validator
|
||
|
- {
|
||
|
- public:
|
||
|
- struct failed {};
|
||
|
-
|
||
|
- // The first pass is performed before processing. The second -- after.
|
||
|
- //
|
||
|
- void
|
||
|
- validate (options const&,
|
||
|
- features&,
|
||
|
- semantics::unit&,
|
||
|
- semantics::path const&,
|
||
|
- unsigned short pass);
|
||
|
-
|
||
|
- validator () {}
|
||
|
-
|
||
|
- private:
|
||
|
- validator (validator const&);
|
||
|
- validator& operator= (validator const&);
|
||
|
- };
|
||
|
+ // The first pass is performed before processing. The second -- after.
|
||
|
+ // Throws operation_failed to signal a failure.
|
||
|
+ //
|
||
|
+ void
|
||
|
+ validate (options const&,
|
||
|
+ features&,
|
||
|
+ semantics::unit&,
|
||
|
+ semantics::path const&,
|
||
|
+ unsigned short pass);
|
||
|
}
|
||
|
|
||
|
#endif // ODB_RELATIONAL_VALIDATOR_HXX
|
||
|
diff --git a/odb/validator.cxx b/odb/validator.cxx
|
||
|
index e80f4d8..91d91e5 100644
|
||
|
--- a/odb/validator.cxx
|
||
|
+++ b/odb/validator.cxx
|
||
|
@@ -1457,7 +1457,7 @@ namespace
|
||
|
};
|
||
|
}
|
||
|
|
||
|
-void validator::
|
||
|
+void
|
||
|
validate (options const& ops,
|
||
|
features& f,
|
||
|
semantics::unit& u,
|
||
|
@@ -1506,7 +1506,7 @@ validate (options const& ops,
|
||
|
}
|
||
|
|
||
|
if (!valid)
|
||
|
- throw failed ();
|
||
|
+ throw validator_failed ();
|
||
|
|
||
|
auto_ptr<context> ctx (create_context (cerr, u, ops, f, 0));
|
||
|
|
||
|
@@ -1559,7 +1559,7 @@ validate (options const& ops,
|
||
|
}
|
||
|
|
||
|
if (!valid)
|
||
|
- throw failed ();
|
||
|
+ throw validator_failed ();
|
||
|
|
||
|
switch (db)
|
||
|
{
|
||
|
@@ -1575,12 +1575,11 @@ validate (options const& ops,
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
- relational::validator v;
|
||
|
- v.validate (ops, f, u, p, pass);
|
||
|
+ relational::validate (ops, f, u, p, pass);
|
||
|
}
|
||
|
- catch (relational::validator::failed const&)
|
||
|
+ catch (operation_failed const&)
|
||
|
{
|
||
|
- throw failed ();
|
||
|
+ throw validator_failed ();
|
||
|
}
|
||
|
|
||
|
break;
|
||
|
diff --git a/odb/validator.hxx b/odb/validator.hxx
|
||
|
index f913049..3ffa470 100644
|
||
|
--- a/odb/validator.hxx
|
||
|
+++ b/odb/validator.hxx
|
||
|
@@ -9,25 +9,15 @@
|
||
|
#include <odb/features.hxx>
|
||
|
#include <odb/semantics/unit.hxx>
|
||
|
|
||
|
-class validator
|
||
|
-{
|
||
|
-public:
|
||
|
- struct failed {};
|
||
|
+class validator_failed {};
|
||
|
|
||
|
- // The first pass is performed before processing. The second -- after.
|
||
|
- //
|
||
|
- void
|
||
|
- validate (options const&,
|
||
|
- features&,
|
||
|
- semantics::unit&,
|
||
|
- semantics::path const&,
|
||
|
- unsigned short pass);
|
||
|
-
|
||
|
- validator () {}
|
||
|
-
|
||
|
-private:
|
||
|
- validator (validator const&);
|
||
|
- validator& operator= (validator const&);
|
||
|
-};
|
||
|
+// The first pass is performed before processing. The second -- after.
|
||
|
+//
|
||
|
+void
|
||
|
+validate (options const&,
|
||
|
+ features&,
|
||
|
+ semantics::unit&,
|
||
|
+ semantics::path const&,
|
||
|
+ unsigned short pass);
|
||
|
|
||
|
#endif // ODB_VALIDATOR_HXX
|
||
|
--
|
||
|
2.25.0
|
||
|
|