lmi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lmi-commits] [lmi] odd/product 9eddb59: Experiment with a different way


From: Greg Chicares
Subject: [lmi-commits] [lmi] odd/product 9eddb59: Experiment with a different way of generating product databases
Date: Thu, 24 Jan 2019 14:58:10 -0500 (EST)

branch: odd/product
commit 9eddb596b8324bea4d538e80cd7e4f1674145076
Author: Gregory W. Chicares <address@hidden>
Commit: Gregory W. Chicares <address@hidden>

    Experiment with a different way of generating product databases
---
 dbdict.cpp                 |  6 ++++++
 dbdict.hpp                 |  8 ++++++--
 generate_product_files.cpp | 36 ++++++++++++++++++++++++++++++++++++
 3 files changed, 48 insertions(+), 2 deletions(-)

diff --git a/dbdict.cpp b/dbdict.cpp
index ea66e6e..59b776f 100644
--- a/dbdict.cpp
+++ b/dbdict.cpp
@@ -97,6 +97,12 @@ DBDictionary::DBDictionary(std::string const& filename)
     Init(filename);
 }
 
+DBDictionary::~DBDictionary() = default;
+
+void DBDictionary::CrawlingChaos()
+{
+}
+
 database_entity const& DBDictionary::datum(std::string const& name) const
 {
     return *member_cast<database_entity>(operator[](name));
diff --git a/dbdict.hpp b/dbdict.hpp
index abfa12c..9c373e1 100644
--- a/dbdict.hpp
+++ b/dbdict.hpp
@@ -34,7 +34,7 @@
 
 /// Cached product database.
 
-class LMI_SO DBDictionary final
+class LMI_SO DBDictionary
     :public xml_serializable  <DBDictionary>
     ,public MemberSymbolTable <DBDictionary>
     ,public cache_file_reads  <DBDictionary>
@@ -48,7 +48,7 @@ class LMI_SO DBDictionary final
     DBDictionary();
     DBDictionary(std::string const& filename);
 
-    ~DBDictionary() override = default;
+    ~DBDictionary() override;
 
     database_entity const& datum(std::string const&) const;
 
@@ -67,9 +67,13 @@ class LMI_SO DBDictionary final
 
     database_entity& datum(std::string const&);
 
+  public:
+    virtual void CrawlingChaos();
+  protected:
     void WriteDB(std::string const& filename) const;
     void Add(database_entity const&);
     void InitDB();
+  private:
 
     // A temporary expedient.
     void Nyarlathotep();
diff --git a/generate_product_files.cpp b/generate_product_files.cpp
index 65ef6a0..6449608 100644
--- a/generate_product_files.cpp
+++ b/generate_product_files.cpp
@@ -32,6 +32,38 @@
 #include <iostream>
 #include <ostream>
 
+// Relocate:
+#include "data_directory.hpp"
+#include "dbnames.hpp"
+
+class specimen_0_db : public DBDictionary
+{
+  public:
+    void CrawlingChaos() override;
+};
+
+void specimen_0_db::CrawlingChaos()
+{
+    DBDictionary::InitDB();
+    Add(database_entity(DB_GuarMonthlyPolFee   , 7.65));
+    Add(database_entity(DB_CurrMonthlyPolFee   , 4.32));
+    WriteDB(AddDataDir("eraseme.database"));
+}
+
+class specimen_0a_db : public specimen_0_db
+{
+  public:
+    void CrawlingChaos() override;
+};
+
+void specimen_0a_db::CrawlingChaos()
+{
+    specimen_0_db::CrawlingChaos();
+    Add(database_entity(DB_GuarMonthlyPolFee   , 5.67));
+    Add(database_entity(DB_CurrMonthlyPolFee   , 2.34));
+    WriteDB(AddDataDir("eraseme0.database"));
+}
+
 int try_main(int, char*[])
 {
     initialize_filesystem();
@@ -50,6 +82,10 @@ int try_main(int, char*[])
     rounding_rules     ::write_proprietary_rounding_files ();
     stratified_charges ::write_proprietary_strata_files   ();
 
+    // Relocate:
+    {specimen_0_db  z;  z.CrawlingChaos();}
+    {specimen_0a_db z;  z.CrawlingChaos();}
+
     std::cout << "\nAll product files written.\n" << std::endl;
 
     return EXIT_SUCCESS;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]