[Top][All Lists]
[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)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [lmi-commits] [5322] Refactor to support more extensive caching of database values,
Greg Chicares <=