lmi-commits
[Top][All Lists]
Advanced

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

[lmi-commits] [5322] Refactor to support more extensive caching of datab


From: Greg Chicares
Subject: [lmi-commits] [5322] Refactor to support more extensive caching of database values
Date: Sat, 03 Dec 2011 15:12:33 +0000

Revision: 5322
          http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=5322
Author:   chicares
Date:     2011-12-03 15:12:32 +0000 (Sat, 03 Dec 2011)
Log Message:
-----------
Refactor to support more extensive caching of database values

Modified Paths:
--------------
    lmi/trunk/ihs_basicval.cpp

Modified: lmi/trunk/ihs_basicval.cpp
===================================================================
--- lmi/trunk/ihs_basicval.cpp  2011-12-01 13:02:30 UTC (rev 5321)
+++ lmi/trunk/ihs_basicval.cpp  2011-12-03 15:12:32 UTC (rev 5322)
@@ -170,6 +170,8 @@
     ProductData_.reset(new product_data(yare_input_.ProductName));
     Database_.reset(new product_database(yare_input_));
 
+    SetPermanentInvariants();
+
     StateOfDomicile_ = 
mc_state_from_string(ProductData_->datum("InsCoDomicile"));
     StateOfJurisdiction_ = yare_input_.StateOfJurisdiction;
     PremiumTaxState_     = yare_input_.PremiumTaxState    ;
@@ -252,7 +254,7 @@
     // determined by a strategy.
     InitialTargetPremium = 0.0;
 
-    SetPermanentInvariants();
+    SetMaxSurvivalDur();
 
     Init7702();
     Init7702A();
@@ -265,6 +267,8 @@
     ProductData_.reset(new product_data(yare_input_.ProductName));
     Database_.reset(new product_database(yare_input_));
 
+    SetPermanentInvariants();
+
     IssueAge = yare_input_.IssueAge;
     RetAge   = yare_input_.RetirementAge;
     HOPEFULLY(IssueAge < 100);
@@ -334,7 +338,7 @@
     PremiumTax_    .reset(new premium_tax    (PremiumTaxState_, 
StateOfDomicile_, yare_input_.AmortizePremiumLoad, *Database_, 
*StratifiedCharges_));
     Loads_         .reset(new Loads          (*this));
 
-    SetPermanentInvariants();
+    SetMaxSurvivalDur();
 
     Init7702();
 }
@@ -703,7 +707,12 @@
         }
 }
 
-//============================================================================
+/// Establish up front some values that cannot later change.
+///
+/// Values set here depend on Database_, and thus on yare_input_ and
+/// on ProductData_, but not on any other shared_ptr members--so they
+/// can reliably be used in initializing those other members.
+
 void BasicValues::SetPermanentInvariants()
 {
     MinIssSpecAmt       = Database_->Query(DB_MinIssSpecAmt        );
@@ -807,8 +816,6 @@
     MaxNAAR             = yare_input_.MaximumNaar;
 
     Database_->Query(MinPremIntSpread_, DB_MinPremIntSpread);
-
-    SetMaxSurvivalDur();
 }
 
 namespace
@@ -842,7 +849,10 @@
     set_rounding_rule(round_interest_rate_7702_, 
RoundingRules_->datum("RoundIntRate7702"));
 }
 
-//============================================================================
+/// Establish maximum survivorship duration.
+///
+/// Depends on MortalityRates_ for life-expectancy calculation.
+
 void BasicValues::SetMaxSurvivalDur()
 {
     switch(yare_input_.SurviveToType)




reply via email to

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