1*4882a593SmuzhiyunFrom 5486c8c85b9cfb92232518b2fadf6d8ed7b332d5 Mon Sep 17 00:00:00 2001 2*4882a593SmuzhiyunFrom: Boris Kolpackov <boris@codesynthesis.com> 3*4882a593SmuzhiyunDate: Wed, 3 Jun 2015 21:35:43 +0200 4*4882a593SmuzhiyunSubject: [PATCH] Remove gratuitous classes 5*4882a593Smuzhiyun 6*4882a593SmuzhiyunIn the process also get rid of global class processor which conflicts 7*4882a593Smuzhiyunwith enum processor on MIPS. 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun[Upstream: bbc39ffe31c67506b4c03fc56fa3adcb925b6325] 10*4882a593SmuzhiyunSigned-off-by: Kamel Bouhara <kamel.bouhara@bootlin.com> 11*4882a593Smuzhiyun--- 12*4882a593Smuzhiyun odb/context.hxx | 3 ++- 13*4882a593Smuzhiyun odb/generator.cxx | 24 ++++++++++++------------ 14*4882a593Smuzhiyun odb/generator.hxx | 26 ++++++++------------------ 15*4882a593Smuzhiyun odb/plugin.cxx | 18 +++++++----------- 16*4882a593Smuzhiyun odb/processor.cxx | 4 ++-- 17*4882a593Smuzhiyun odb/processor.hxx | 22 ++++++---------------- 18*4882a593Smuzhiyun odb/relational/validator.cxx | 6 +++--- 19*4882a593Smuzhiyun odb/relational/validator.hxx | 29 +++++++++-------------------- 20*4882a593Smuzhiyun odb/validator.cxx | 13 ++++++------- 21*4882a593Smuzhiyun odb/validator.hxx | 28 +++++++++------------------- 22*4882a593Smuzhiyun 10 files changed, 64 insertions(+), 109 deletions(-) 23*4882a593Smuzhiyun 24*4882a593Smuzhiyundiff --git a/odb/context.hxx b/odb/context.hxx 25*4882a593Smuzhiyunindex 1cf002a..351bc61 100644 26*4882a593Smuzhiyun--- a/odb/context.hxx 27*4882a593Smuzhiyun+++ b/odb/context.hxx 28*4882a593Smuzhiyun@@ -41,7 +41,8 @@ typedef cutl::re::format regex_format; 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun typedef std::vector<regexsub> regex_mapping; 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun-// 33*4882a593Smuzhiyun+// Generic exception thrown to indicate a failure when diagnostics 34*4882a593Smuzhiyun+// has already been issued (to stderr). 35*4882a593Smuzhiyun // 36*4882a593Smuzhiyun class operation_failed {}; 37*4882a593Smuzhiyun 38*4882a593Smuzhiyundiff --git a/odb/generator.cxx b/odb/generator.cxx 39*4882a593Smuzhiyunindex e165faf..6aa5151 100644 40*4882a593Smuzhiyun--- a/odb/generator.cxx 41*4882a593Smuzhiyun+++ b/odb/generator.cxx 42*4882a593Smuzhiyun@@ -58,7 +58,7 @@ namespace 43*4882a593Smuzhiyun if (!ifs.is_open ()) 44*4882a593Smuzhiyun { 45*4882a593Smuzhiyun cerr << "error: unable to open '" << p << "' in read mode" << endl; 46*4882a593Smuzhiyun- throw generator::failed (); 47*4882a593Smuzhiyun+ throw generator_failed (); 48*4882a593Smuzhiyun } 49*4882a593Smuzhiyun } 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun@@ -70,7 +70,7 @@ namespace 52*4882a593Smuzhiyun if (!ofs.is_open ()) 53*4882a593Smuzhiyun { 54*4882a593Smuzhiyun cerr << "error: unable to open '" << p << "' in write mode" << endl; 55*4882a593Smuzhiyun- throw generator::failed (); 56*4882a593Smuzhiyun+ throw generator_failed (); 57*4882a593Smuzhiyun } 58*4882a593Smuzhiyun } 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun@@ -118,7 +118,7 @@ namespace 61*4882a593Smuzhiyun } 62*4882a593Smuzhiyun } 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun-void generator:: 65*4882a593Smuzhiyun+void 66*4882a593Smuzhiyun generate (options const& ops, 67*4882a593Smuzhiyun features& fts, 68*4882a593Smuzhiyun semantics::unit& unit, 69*4882a593Smuzhiyun@@ -259,7 +259,7 @@ generate (options const& ops, 70*4882a593Smuzhiyun cerr << in_log_path << ": error: wrong database '" << 71*4882a593Smuzhiyun old_changelog->database () << "', expected '" << db << 72*4882a593Smuzhiyun "'" << endl; 73*4882a593Smuzhiyun- throw generator::failed (); 74*4882a593Smuzhiyun+ throw generator_failed (); 75*4882a593Smuzhiyun } 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun string sn (ops.schema_name ()[db]); 78*4882a593Smuzhiyun@@ -268,18 +268,18 @@ generate (options const& ops, 79*4882a593Smuzhiyun cerr << in_log_path << ": error: wrong schema name '" << 80*4882a593Smuzhiyun old_changelog->schema_name () << "', expected '" << sn << 81*4882a593Smuzhiyun "'" << endl; 82*4882a593Smuzhiyun- throw generator::failed (); 83*4882a593Smuzhiyun+ throw generator_failed (); 84*4882a593Smuzhiyun } 85*4882a593Smuzhiyun } 86*4882a593Smuzhiyun catch (const ios_base::failure& e) 87*4882a593Smuzhiyun { 88*4882a593Smuzhiyun cerr << in_log_path << ": read failure" << endl; 89*4882a593Smuzhiyun- throw failed (); 90*4882a593Smuzhiyun+ throw generator_failed (); 91*4882a593Smuzhiyun } 92*4882a593Smuzhiyun catch (const xml::parsing& e) 93*4882a593Smuzhiyun { 94*4882a593Smuzhiyun cerr << e.what () << endl; 95*4882a593Smuzhiyun- throw failed (); 96*4882a593Smuzhiyun+ throw generator_failed (); 97*4882a593Smuzhiyun } 98*4882a593Smuzhiyun } 99*4882a593Smuzhiyun 100*4882a593Smuzhiyun@@ -976,12 +976,12 @@ generate (options const& ops, 101*4882a593Smuzhiyun catch (const ios_base::failure& e) 102*4882a593Smuzhiyun { 103*4882a593Smuzhiyun cerr << out_log_path << ": write failure" << endl; 104*4882a593Smuzhiyun- throw failed (); 105*4882a593Smuzhiyun+ throw generator_failed (); 106*4882a593Smuzhiyun } 107*4882a593Smuzhiyun catch (const xml::serialization& e) 108*4882a593Smuzhiyun { 109*4882a593Smuzhiyun cerr << e.what () << endl; 110*4882a593Smuzhiyun- throw failed (); 111*4882a593Smuzhiyun+ throw generator_failed (); 112*4882a593Smuzhiyun } 113*4882a593Smuzhiyun } 114*4882a593Smuzhiyun 115*4882a593Smuzhiyun@@ -998,18 +998,18 @@ generate (options const& ops, 116*4882a593Smuzhiyun { 117*4882a593Smuzhiyun // Code generation failed. Diagnostics has already been issued. 118*4882a593Smuzhiyun // 119*4882a593Smuzhiyun- throw failed (); 120*4882a593Smuzhiyun+ throw generator_failed (); 121*4882a593Smuzhiyun } 122*4882a593Smuzhiyun catch (semantics::invalid_path const& e) 123*4882a593Smuzhiyun { 124*4882a593Smuzhiyun cerr << "error: '" << e.path () << "' is not a valid filesystem path" 125*4882a593Smuzhiyun << endl; 126*4882a593Smuzhiyun- throw failed (); 127*4882a593Smuzhiyun+ throw generator_failed (); 128*4882a593Smuzhiyun } 129*4882a593Smuzhiyun catch (fs::error const&) 130*4882a593Smuzhiyun { 131*4882a593Smuzhiyun // Auto-removal of generated files failed. Ignore it. 132*4882a593Smuzhiyun // 133*4882a593Smuzhiyun- throw failed (); 134*4882a593Smuzhiyun+ throw generator_failed (); 135*4882a593Smuzhiyun } 136*4882a593Smuzhiyun } 137*4882a593Smuzhiyundiff --git a/odb/generator.hxx b/odb/generator.hxx 138*4882a593Smuzhiyunindex ce49295..e83d94d 100644 139*4882a593Smuzhiyun--- a/odb/generator.hxx 140*4882a593Smuzhiyun+++ b/odb/generator.hxx 141*4882a593Smuzhiyun@@ -11,23 +11,13 @@ 142*4882a593Smuzhiyun #include <odb/features.hxx> 143*4882a593Smuzhiyun #include <odb/semantics/unit.hxx> 144*4882a593Smuzhiyun 145*4882a593Smuzhiyun-class generator 146*4882a593Smuzhiyun-{ 147*4882a593Smuzhiyun-public: 148*4882a593Smuzhiyun- class failed {}; 149*4882a593Smuzhiyun- 150*4882a593Smuzhiyun- void 151*4882a593Smuzhiyun- generate (options const&, 152*4882a593Smuzhiyun- features&, 153*4882a593Smuzhiyun- semantics::unit&, 154*4882a593Smuzhiyun- semantics::path const& file, 155*4882a593Smuzhiyun- std::vector<semantics::path> const& inputs); 156*4882a593Smuzhiyun- 157*4882a593Smuzhiyun- generator () {} 158*4882a593Smuzhiyun- 159*4882a593Smuzhiyun-private: 160*4882a593Smuzhiyun- generator (generator const&); 161*4882a593Smuzhiyun- generator& operator= (generator const&); 162*4882a593Smuzhiyun-}; 163*4882a593Smuzhiyun+class generator_failed {}; 164*4882a593Smuzhiyun+ 165*4882a593Smuzhiyun+void 166*4882a593Smuzhiyun+generate (options const&, 167*4882a593Smuzhiyun+ features&, 168*4882a593Smuzhiyun+ semantics::unit&, 169*4882a593Smuzhiyun+ semantics::path const& file, 170*4882a593Smuzhiyun+ std::vector<semantics::path> const& inputs); 171*4882a593Smuzhiyun 172*4882a593Smuzhiyun #endif // ODB_GENERATOR_HXX 173*4882a593Smuzhiyundiff --git a/odb/plugin.cxx b/odb/plugin.cxx 174*4882a593Smuzhiyunindex e32f225..51f0cb1 100644 175*4882a593Smuzhiyun--- a/odb/plugin.cxx 176*4882a593Smuzhiyun+++ b/odb/plugin.cxx 177*4882a593Smuzhiyun@@ -199,27 +199,23 @@ gate_callback (void*, void*) 178*4882a593Smuzhiyun parser p (*options_, loc_pragmas_, ns_loc_pragmas_, decl_pragmas_); 179*4882a593Smuzhiyun auto_ptr<unit> u (p.parse (global_namespace, file_)); 180*4882a593Smuzhiyun 181*4882a593Smuzhiyun- 182*4882a593Smuzhiyun features f; 183*4882a593Smuzhiyun 184*4882a593Smuzhiyun // Validate, pass 1. 185*4882a593Smuzhiyun // 186*4882a593Smuzhiyun- validator v; 187*4882a593Smuzhiyun- v.validate (*options_, f, *u, file_, 1); 188*4882a593Smuzhiyun+ validate (*options_, f, *u, file_, 1); 189*4882a593Smuzhiyun 190*4882a593Smuzhiyun // Process. 191*4882a593Smuzhiyun // 192*4882a593Smuzhiyun- processor pr; 193*4882a593Smuzhiyun- pr.process (*options_, f, *u, file_); 194*4882a593Smuzhiyun+ process (*options_, f, *u, file_); 195*4882a593Smuzhiyun 196*4882a593Smuzhiyun // Validate, pass 2. 197*4882a593Smuzhiyun // 198*4882a593Smuzhiyun- v.validate (*options_, f, *u, file_, 2); 199*4882a593Smuzhiyun+ validate (*options_, f, *u, file_, 2); 200*4882a593Smuzhiyun 201*4882a593Smuzhiyun // Generate. 202*4882a593Smuzhiyun // 203*4882a593Smuzhiyun- generator g; 204*4882a593Smuzhiyun- g.generate (*options_, f, *u, file_, inputs_); 205*4882a593Smuzhiyun+ generate (*options_, f, *u, file_, inputs_); 206*4882a593Smuzhiyun } 207*4882a593Smuzhiyun catch (cutl::re::format const& e) 208*4882a593Smuzhiyun { 209*4882a593Smuzhiyun@@ -239,19 +235,19 @@ gate_callback (void*, void*) 210*4882a593Smuzhiyun // 211*4882a593Smuzhiyun r = 1; 212*4882a593Smuzhiyun } 213*4882a593Smuzhiyun- catch (validator::failed const&) 214*4882a593Smuzhiyun+ catch (validator_failed const&) 215*4882a593Smuzhiyun { 216*4882a593Smuzhiyun // Diagnostics has aready been issued. 217*4882a593Smuzhiyun // 218*4882a593Smuzhiyun r = 1; 219*4882a593Smuzhiyun } 220*4882a593Smuzhiyun- catch (processor::failed const&) 221*4882a593Smuzhiyun+ catch (processor_failed const&) 222*4882a593Smuzhiyun { 223*4882a593Smuzhiyun // Diagnostics has aready been issued. 224*4882a593Smuzhiyun // 225*4882a593Smuzhiyun r = 1; 226*4882a593Smuzhiyun } 227*4882a593Smuzhiyun- catch (generator::failed const&) 228*4882a593Smuzhiyun+ catch (generator_failed const&) 229*4882a593Smuzhiyun { 230*4882a593Smuzhiyun // Diagnostics has aready been issued. 231*4882a593Smuzhiyun // 232*4882a593Smuzhiyundiff --git a/odb/processor.cxx b/odb/processor.cxx 233*4882a593Smuzhiyunindex a808a52..3a2cb1d 100644 234*4882a593Smuzhiyun--- a/odb/processor.cxx 235*4882a593Smuzhiyun+++ b/odb/processor.cxx 236*4882a593Smuzhiyun@@ -3064,7 +3064,7 @@ namespace 237*4882a593Smuzhiyun }; 238*4882a593Smuzhiyun } 239*4882a593Smuzhiyun 240*4882a593Smuzhiyun-void processor:: 241*4882a593Smuzhiyun+void 242*4882a593Smuzhiyun process (options const& ops, 243*4882a593Smuzhiyun features& f, 244*4882a593Smuzhiyun semantics::unit& unit, 245*4882a593Smuzhiyun@@ -3120,6 +3120,6 @@ process (options const& ops, 246*4882a593Smuzhiyun { 247*4882a593Smuzhiyun // Processing failed. Diagnostics has already been issued. 248*4882a593Smuzhiyun // 249*4882a593Smuzhiyun- throw failed (); 250*4882a593Smuzhiyun+ throw processor_failed (); 251*4882a593Smuzhiyun } 252*4882a593Smuzhiyun } 253*4882a593Smuzhiyundiff --git a/odb/processor.hxx b/odb/processor.hxx 254*4882a593Smuzhiyunindex 602b999..e62dd25 100644 255*4882a593Smuzhiyun--- a/odb/processor.hxx 256*4882a593Smuzhiyun+++ b/odb/processor.hxx 257*4882a593Smuzhiyun@@ -9,22 +9,12 @@ 258*4882a593Smuzhiyun #include <odb/features.hxx> 259*4882a593Smuzhiyun #include <odb/semantics/unit.hxx> 260*4882a593Smuzhiyun 261*4882a593Smuzhiyun-class processor 262*4882a593Smuzhiyun-{ 263*4882a593Smuzhiyun-public: 264*4882a593Smuzhiyun- class failed {}; 265*4882a593Smuzhiyun+class processor_failed {}; 266*4882a593Smuzhiyun 267*4882a593Smuzhiyun- void 268*4882a593Smuzhiyun- process (options const&, 269*4882a593Smuzhiyun- features&, 270*4882a593Smuzhiyun- semantics::unit&, 271*4882a593Smuzhiyun- semantics::path const&); 272*4882a593Smuzhiyun- 273*4882a593Smuzhiyun- processor () {} 274*4882a593Smuzhiyun- 275*4882a593Smuzhiyun-private: 276*4882a593Smuzhiyun- processor (processor const&); 277*4882a593Smuzhiyun- processor& operator= (processor const&); 278*4882a593Smuzhiyun-}; 279*4882a593Smuzhiyun+void 280*4882a593Smuzhiyun+process (options const&, 281*4882a593Smuzhiyun+ features&, 282*4882a593Smuzhiyun+ semantics::unit&, 283*4882a593Smuzhiyun+ semantics::path const&); 284*4882a593Smuzhiyun 285*4882a593Smuzhiyun #endif // ODB_PROCESSOR_HXX 286*4882a593Smuzhiyundiff --git a/odb/relational/validator.cxx b/odb/relational/validator.cxx 287*4882a593Smuzhiyunindex 1d51c9a..47f089c 100644 288*4882a593Smuzhiyun--- a/odb/relational/validator.cxx 289*4882a593Smuzhiyun+++ b/odb/relational/validator.cxx 290*4882a593Smuzhiyun@@ -528,7 +528,7 @@ namespace relational 291*4882a593Smuzhiyun }; 292*4882a593Smuzhiyun } 293*4882a593Smuzhiyun 294*4882a593Smuzhiyun- void validator:: 295*4882a593Smuzhiyun+ void 296*4882a593Smuzhiyun validate (options const&, 297*4882a593Smuzhiyun features&, 298*4882a593Smuzhiyun semantics::unit& u, 299*4882a593Smuzhiyun@@ -608,7 +608,7 @@ namespace relational 300*4882a593Smuzhiyun } 301*4882a593Smuzhiyun 302*4882a593Smuzhiyun if (!valid) 303*4882a593Smuzhiyun- throw failed (); 304*4882a593Smuzhiyun+ throw operation_failed (); 305*4882a593Smuzhiyun 306*4882a593Smuzhiyun if (pass == 1) 307*4882a593Smuzhiyun { 308*4882a593Smuzhiyun@@ -636,6 +636,6 @@ namespace relational 309*4882a593Smuzhiyun } 310*4882a593Smuzhiyun 311*4882a593Smuzhiyun if (!valid) 312*4882a593Smuzhiyun- throw failed (); 313*4882a593Smuzhiyun+ throw operation_failed (); 314*4882a593Smuzhiyun } 315*4882a593Smuzhiyun } 316*4882a593Smuzhiyundiff --git a/odb/relational/validator.hxx b/odb/relational/validator.hxx 317*4882a593Smuzhiyunindex f0ede53..93360c3 100644 318*4882a593Smuzhiyun--- a/odb/relational/validator.hxx 319*4882a593Smuzhiyun+++ b/odb/relational/validator.hxx 320*4882a593Smuzhiyun@@ -11,26 +11,15 @@ 321*4882a593Smuzhiyun 322*4882a593Smuzhiyun namespace relational 323*4882a593Smuzhiyun { 324*4882a593Smuzhiyun- class validator 325*4882a593Smuzhiyun- { 326*4882a593Smuzhiyun- public: 327*4882a593Smuzhiyun- struct failed {}; 328*4882a593Smuzhiyun- 329*4882a593Smuzhiyun- // The first pass is performed before processing. The second -- after. 330*4882a593Smuzhiyun- // 331*4882a593Smuzhiyun- void 332*4882a593Smuzhiyun- validate (options const&, 333*4882a593Smuzhiyun- features&, 334*4882a593Smuzhiyun- semantics::unit&, 335*4882a593Smuzhiyun- semantics::path const&, 336*4882a593Smuzhiyun- unsigned short pass); 337*4882a593Smuzhiyun- 338*4882a593Smuzhiyun- validator () {} 339*4882a593Smuzhiyun- 340*4882a593Smuzhiyun- private: 341*4882a593Smuzhiyun- validator (validator const&); 342*4882a593Smuzhiyun- validator& operator= (validator const&); 343*4882a593Smuzhiyun- }; 344*4882a593Smuzhiyun+ // The first pass is performed before processing. The second -- after. 345*4882a593Smuzhiyun+ // Throws operation_failed to signal a failure. 346*4882a593Smuzhiyun+ // 347*4882a593Smuzhiyun+ void 348*4882a593Smuzhiyun+ validate (options const&, 349*4882a593Smuzhiyun+ features&, 350*4882a593Smuzhiyun+ semantics::unit&, 351*4882a593Smuzhiyun+ semantics::path const&, 352*4882a593Smuzhiyun+ unsigned short pass); 353*4882a593Smuzhiyun } 354*4882a593Smuzhiyun 355*4882a593Smuzhiyun #endif // ODB_RELATIONAL_VALIDATOR_HXX 356*4882a593Smuzhiyundiff --git a/odb/validator.cxx b/odb/validator.cxx 357*4882a593Smuzhiyunindex e80f4d8..91d91e5 100644 358*4882a593Smuzhiyun--- a/odb/validator.cxx 359*4882a593Smuzhiyun+++ b/odb/validator.cxx 360*4882a593Smuzhiyun@@ -1457,7 +1457,7 @@ namespace 361*4882a593Smuzhiyun }; 362*4882a593Smuzhiyun } 363*4882a593Smuzhiyun 364*4882a593Smuzhiyun-void validator:: 365*4882a593Smuzhiyun+void 366*4882a593Smuzhiyun validate (options const& ops, 367*4882a593Smuzhiyun features& f, 368*4882a593Smuzhiyun semantics::unit& u, 369*4882a593Smuzhiyun@@ -1506,7 +1506,7 @@ validate (options const& ops, 370*4882a593Smuzhiyun } 371*4882a593Smuzhiyun 372*4882a593Smuzhiyun if (!valid) 373*4882a593Smuzhiyun- throw failed (); 374*4882a593Smuzhiyun+ throw validator_failed (); 375*4882a593Smuzhiyun 376*4882a593Smuzhiyun auto_ptr<context> ctx (create_context (cerr, u, ops, f, 0)); 377*4882a593Smuzhiyun 378*4882a593Smuzhiyun@@ -1559,7 +1559,7 @@ validate (options const& ops, 379*4882a593Smuzhiyun } 380*4882a593Smuzhiyun 381*4882a593Smuzhiyun if (!valid) 382*4882a593Smuzhiyun- throw failed (); 383*4882a593Smuzhiyun+ throw validator_failed (); 384*4882a593Smuzhiyun 385*4882a593Smuzhiyun switch (db) 386*4882a593Smuzhiyun { 387*4882a593Smuzhiyun@@ -1575,12 +1575,11 @@ validate (options const& ops, 388*4882a593Smuzhiyun { 389*4882a593Smuzhiyun try 390*4882a593Smuzhiyun { 391*4882a593Smuzhiyun- relational::validator v; 392*4882a593Smuzhiyun- v.validate (ops, f, u, p, pass); 393*4882a593Smuzhiyun+ relational::validate (ops, f, u, p, pass); 394*4882a593Smuzhiyun } 395*4882a593Smuzhiyun- catch (relational::validator::failed const&) 396*4882a593Smuzhiyun+ catch (operation_failed const&) 397*4882a593Smuzhiyun { 398*4882a593Smuzhiyun- throw failed (); 399*4882a593Smuzhiyun+ throw validator_failed (); 400*4882a593Smuzhiyun } 401*4882a593Smuzhiyun 402*4882a593Smuzhiyun break; 403*4882a593Smuzhiyundiff --git a/odb/validator.hxx b/odb/validator.hxx 404*4882a593Smuzhiyunindex f913049..3ffa470 100644 405*4882a593Smuzhiyun--- a/odb/validator.hxx 406*4882a593Smuzhiyun+++ b/odb/validator.hxx 407*4882a593Smuzhiyun@@ -9,25 +9,15 @@ 408*4882a593Smuzhiyun #include <odb/features.hxx> 409*4882a593Smuzhiyun #include <odb/semantics/unit.hxx> 410*4882a593Smuzhiyun 411*4882a593Smuzhiyun-class validator 412*4882a593Smuzhiyun-{ 413*4882a593Smuzhiyun-public: 414*4882a593Smuzhiyun- struct failed {}; 415*4882a593Smuzhiyun+class validator_failed {}; 416*4882a593Smuzhiyun 417*4882a593Smuzhiyun- // The first pass is performed before processing. The second -- after. 418*4882a593Smuzhiyun- // 419*4882a593Smuzhiyun- void 420*4882a593Smuzhiyun- validate (options const&, 421*4882a593Smuzhiyun- features&, 422*4882a593Smuzhiyun- semantics::unit&, 423*4882a593Smuzhiyun- semantics::path const&, 424*4882a593Smuzhiyun- unsigned short pass); 425*4882a593Smuzhiyun- 426*4882a593Smuzhiyun- validator () {} 427*4882a593Smuzhiyun- 428*4882a593Smuzhiyun-private: 429*4882a593Smuzhiyun- validator (validator const&); 430*4882a593Smuzhiyun- validator& operator= (validator const&); 431*4882a593Smuzhiyun-}; 432*4882a593Smuzhiyun+// The first pass is performed before processing. The second -- after. 433*4882a593Smuzhiyun+// 434*4882a593Smuzhiyun+void 435*4882a593Smuzhiyun+validate (options const&, 436*4882a593Smuzhiyun+ features&, 437*4882a593Smuzhiyun+ semantics::unit&, 438*4882a593Smuzhiyun+ semantics::path const&, 439*4882a593Smuzhiyun+ unsigned short pass); 440*4882a593Smuzhiyun 441*4882a593Smuzhiyun #endif // ODB_VALIDATOR_HXX 442*4882a593Smuzhiyun-- 443*4882a593Smuzhiyun2.25.0 444*4882a593Smuzhiyun 445