[Top][All Lists]
[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))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [lmi-commits] [5063] Refactor,
Greg Chicares <=