[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;