lmi-commits
[Top][All Lists]
Advanced

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

[lmi-commits] [5063] Refactor


From: Greg Chicares
Subject: [lmi-commits] [5063] Refactor
Date: Sun, 25 Jul 2010 19:00:52 +0000

Revision: 5063
          http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=5063
Author:   chicares
Date:     2010-07-25 19:00:51 +0000 (Sun, 25 Jul 2010)
Log Message:
-----------
Refactor

Modified Paths:
--------------
    lmi/trunk/ChangeLog
    lmi/trunk/database.cpp
    lmi/trunk/database.hpp
    lmi/trunk/input_test.cpp

Modified: lmi/trunk/ChangeLog
===================================================================
--- lmi/trunk/ChangeLog 2010-07-25 18:59:10 UTC (rev 5062)
+++ lmi/trunk/ChangeLog 2010-07-25 19:00:51 UTC (rev 5063)
@@ -26518,3 +26518,21 @@
   handle_exceptions_test.cpp
 Mark expected stderr output.
 
+20100725T1858Z <address@hidden> [685]
+
+  oecumenic_enumerations.hpp
+Improve documentation.
+
+20100725T1859Z <address@hidden> [685]
+
+  dbindex.hpp
+  dbvalue.hpp
+Move an enumeration.
+
+20100725T1900Z <address@hidden> [685]
+
+  database.cpp
+  database.hpp
+  input_test.cpp
+Refactor.
+

Modified: lmi/trunk/database.cpp
===================================================================
--- lmi/trunk/database.cpp      2010-07-25 18:59:10 UTC (rev 5062)
+++ lmi/trunk/database.cpp      2010-07-25 19:00:51 UTC (rev 5063)
@@ -42,49 +42,30 @@
 /// Construct from essential input (product and axes).
 
 product_database::product_database
-    (std::string const& a_ProductName
-    ,mcenum_gender      a_Gender
-    ,mcenum_class       a_Class
-    ,mcenum_smoking     a_Smoker
-    ,int                a_IssueAge
-    ,mcenum_uw_basis    a_UWBasis
-    ,mcenum_state       a_State
+    (std::string const& ProductName
+    ,mcenum_gender      Gender
+    ,mcenum_class       UnderwritingClass
+    ,mcenum_smoking     Smoking
+    ,int                IssueAge
+    ,mcenum_uw_basis    GroupUnderwritingType
+    ,mcenum_state       StateOfJurisdiction
     )
 {
-    if(is_antediluvian_fork())
-        {
-        DBDictionary::instance().InitAntediluvian();
-        }
-    else
-        {
-        std::string 
filename(product_data(a_ProductName).datum("DatabaseFilename"));
-        DBDictionary::instance().Init(AddDataDir(filename));
-        }
     index_ = database_index
-        (a_Gender
-        ,a_Class
-        ,a_Smoker
-        ,a_IssueAge
-        ,a_UWBasis
-        ,a_State
+        (Gender
+        ,UnderwritingClass
+        ,Smoking
+        ,IssueAge
+        ,GroupUnderwritingType
+        ,StateOfJurisdiction
         );
-    length_ = static_cast<int>(Query(DB_MaturityAge)) - a_IssueAge;
-    LMI_ASSERT(0 < length_ && length_ <= methuselah);
+    initialize(ProductName);
 }
 
 /// Construct from normal illustration input.
 
 product_database::product_database(yare_input const& input)
 {
-    if(is_antediluvian_fork())
-        {
-        DBDictionary::instance().InitAntediluvian();
-        }
-    else
-        {
-        std::string 
filename(product_data(input.ProductName).datum("DatabaseFilename"));
-        DBDictionary::instance().Init(AddDataDir(filename));
-        }
     index_ = database_index
         (input.Gender
         ,input.UnderwritingClass
@@ -93,8 +74,7 @@
         ,input.GroupUnderwritingType
         ,input.StateOfJurisdiction
         );
-    length_ = static_cast<int>(Query(DB_MaturityAge)) - input.IssueAge;
-    LMI_ASSERT(0 < length_ && length_ <= methuselah);
+    initialize(input.ProductName);
 }
 
 product_database::~product_database()
@@ -154,6 +134,22 @@
     return 1 != entity_from_key(k).axis_lengths().at(e_axis_state);
 }
 
+void product_database::initialize(std::string const& product_name)
+{
+    if(is_antediluvian_fork())
+        {
+        DBDictionary::instance().InitAntediluvian();
+        }
+    else
+        {
+        std::string 
filename(product_data(product_name).datum("DatabaseFilename"));
+        DBDictionary::instance().Init(AddDataDir(filename));
+        }
+    int const maturity_age = static_cast<int>(Query(DB_MaturityAge));
+    length_ = maturity_age - index_.index_vector()[e_axis_issue_age];
+    LMI_ASSERT(0 < length_ && length_ <= methuselah);
+}
+
 database_entity const& product_database::entity_from_key(e_database_key k) 
const
 {
     DBDictionary const& db = DBDictionary::instance();

Modified: lmi/trunk/database.hpp
===================================================================
--- lmi/trunk/database.hpp      2010-07-25 18:59:10 UTC (rev 5062)
+++ lmi/trunk/database.hpp      2010-07-25 19:00:51 UTC (rev 5063)
@@ -50,13 +50,13 @@
 
   public:
     product_database
-        (std::string const& a_ProductName
-        ,mcenum_gender      a_Gender
-        ,mcenum_class       a_Class
-        ,mcenum_smoking     a_Smoker
-        ,int                a_IssueAge
-        ,mcenum_uw_basis    a_UWBasis
-        ,mcenum_state       a_State
+        (std::string const& ProductName
+        ,mcenum_gender      Gender
+        ,mcenum_class       UnderwritingClass
+        ,mcenum_smoking     Smoking
+        ,int                IssueAge
+        ,mcenum_uw_basis    GroupUnderwritingType
+        ,mcenum_state       StateOfJurisdiction
         );
     explicit product_database(yare_input const&);
     // Special ctor implemented only in a unit-test TU.
@@ -76,6 +76,8 @@
     bool varies_by_state(e_database_key) const;
 
   private:
+    void initialize(std::string const& product_name);
+
     database_entity const& entity_from_key(e_database_key) const;
 
     database_index  index_;

Modified: lmi/trunk/input_test.cpp
===================================================================
--- lmi/trunk/input_test.cpp    2010-07-25 18:59:10 UTC (rev 5062)
+++ lmi/trunk/input_test.cpp    2010-07-25 19:00:51 UTC (rev 5063)
@@ -145,6 +145,7 @@
 
     std::cout
         << "\n  Database speed tests..."
+        << "\n  initialize()      : " << 
TimeAnAliquot(boost::bind(&product_database::initialize,      &db, 
"sample.database"))
         << "\n  Query(vector)     : " << 
TimeAnAliquot(boost::bind(&product_database::Query,           &db, v, 
DB_MaturityAge))
         << "\n  Query(scalar)     : " << 
TimeAnAliquot(boost::bind(&product_database::Query,           &db,    
DB_MaturityAge))
         << "\n  entity_from_key() : " << 
TimeAnAliquot(boost::bind(&product_database::entity_from_key, &db,    
DB_MaturityAge))




reply via email to

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