[MOAB-dev] r5241 - in MOAB/trunk/itaps: . imesh

jvporter at wisc.edu jvporter at wisc.edu
Thu Dec 8 12:39:44 CST 2011


Author: jvporter
Date: 2011-12-08 12:39:44 -0600 (Thu, 08 Dec 2011)
New Revision: 5241

Modified:
   MOAB/trunk/itaps/iBase.h
   MOAB/trunk/itaps/imesh/iMesh.h
   MOAB/trunk/itaps/imesh/iMesh_MOAB.cpp
Log:
Update spec


Modified: MOAB/trunk/itaps/iBase.h
===================================================================
--- MOAB/trunk/itaps/iBase.h	2011-12-08 18:37:56 UTC (rev 5240)
+++ MOAB/trunk/itaps/iBase.h	2011-12-08 18:39:44 UTC (rev 5241)
@@ -9,10 +9,10 @@
  * Technically speaking, there is not much practical value in patch digit
  * for an interface specification. A patch release is typically only used
  * for bug fix releases. Although it is rare, sometimes a bug fix
- * necessitates an API change. So, we define a patch digit for iMesh.
+ * necessitates an API change. So, we define a patch digit for iBase.
  *
  * Although each interface in ITAPS has been designed to support its own
- * uniqe version numbers, apart from other ITAPS interfaces, as currently
+ * unique version numbers, apart from other ITAPS interfaces, as currently
  * used, we require all ITAPS interfaces to use the same ITAPS-wide version
  * number derived from the version number defined by these three digits.
  ******************************************************************************/
@@ -114,7 +114,7 @@
     iBase_REGION,
         /**< A topological dimension 3 entity */
     iBase_ALL_TYPES,
-        /**< used only in queires to request information about all types */
+        /**< used only in queries to request information about all types */
     iBase_EntityType_MAX = iBase_ALL_TYPES
         /**< facilitates iteration over all values */
 };
@@ -409,6 +409,152 @@
  * Note that iMesh itself currently does not define any options. In order
  * to discover options a given implementation defines, users are directed
  * to the developers of the respective implementations.
+ *
+ * \page resilient Resilient and Non-Resilient Iterators
+ *
+ * A resilient iterator is one that can deal with modifications to the container
+ * it is iterating over.
+ *
+ * A common concern about an iterator is how it behaves when the container
+ * over which it is iterating is modified. For example, in STL, iterators
+ * for std::set<> and std::map<> and std::list<> containers are guaranteed
+ * to <em>work</em> in the presence of modifications to the associated
+ * containers with one exception; they don't handle the case when the
+ * container member the iterator is currently pointed at is deleted. However,
+ * iterators for std::vector<> are not guaranteed to work under any kinds of
+ * modification.
+ *
+ * In the ITAPS interfaces, a <em>resilient</em> iterator is one that makes
+ * certain guarantees (described below) about how it behaves when the
+ * container being iterated is modified. On the other hand, a
+ * <em>non-resilient</em> is one that does not make such guarantees.
+ *
+ * In all cases, the <em>container</em> associated with an iterator in the


More information about the moab-dev mailing list