lmi-commits
[Top][All Lists]
Advanced

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

[lmi-commits] [5401] Assert certain invariants


From: Greg Chicares
Subject: [lmi-commits] [5401] Assert certain invariants
Date: Sun, 19 Feb 2012 14:05:17 +0000

Revision: 5401
          http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=5401
Author:   chicares
Date:     2012-02-19 14:05:16 +0000 (Sun, 19 Feb 2012)
Log Message:
-----------
Assert certain invariants

Modified Paths:
--------------
    lmi/trunk/multiple_cell_document.cpp
    lmi/trunk/multiple_cell_document.hpp

Modified: lmi/trunk/multiple_cell_document.cpp
===================================================================
--- lmi/trunk/multiple_cell_document.cpp        2012-02-19 13:03:08 UTC (rev 
5400)
+++ lmi/trunk/multiple_cell_document.cpp        2012-02-19 14:05:16 UTC (rev 
5401)
@@ -44,6 +44,7 @@
     ,class_parms_ (1)
     ,cell_parms_  (1)
 {
+    assert_vector_sizes_are_sane();
 }
 
 //============================================================================
@@ -51,6 +52,7 @@
 {
     xml_lmi::dom_parser parser(filename);
     parse(parser.root_node(xml_root_name()));
+    assert_vector_sizes_are_sane();
 }
 
 //============================================================================
@@ -58,6 +60,17 @@
 {
 }
 
+/// Verify invariants.
+///
+/// Throws if any asserted invariant does not hold.
+
+void multiple_cell_document::assert_vector_sizes_are_sane() const
+{
+    LMI_ASSERT(1 == case_parms_.size());
+    LMI_ASSERT(    !class_parms_.empty());
+    LMI_ASSERT(    !cell_parms_ .empty());
+}
+
 //============================================================================
 std::string const& multiple_cell_document::xml_root_name() const
 {
@@ -206,6 +219,8 @@
             << LMI_FLUSH
             ;
         }
+
+    assert_vector_sizes_are_sane();
 }
 
 //============================================================================
@@ -218,6 +233,8 @@
 //============================================================================
 void multiple_cell_document::write(std::ostream& os) const
 {
+    assert_vector_sizes_are_sane();
+
     xml_lmi::xml_document document(xml_root_name());
     xml::element& root = document.root_node();
 

Modified: lmi/trunk/multiple_cell_document.hpp
===================================================================
--- lmi/trunk/multiple_cell_document.hpp        2012-02-19 13:03:08 UTC (rev 
5400)
+++ lmi/trunk/multiple_cell_document.hpp        2012-02-19 14:05:16 UTC (rev 
5401)
@@ -59,6 +59,9 @@
 
   private:
     void parse(xml::element const&);
+
+    void assert_vector_sizes_are_sane() const;
+
     std::string const& xml_root_name() const;
 
     // Default parameters for the whole case, stored as a vector for




reply via email to

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