[MOAB-dev] r4070 - in MOAB/branches/jk-direct-tag: src src/moab test tools/mbperf

kraftche at cae.wisc.edu kraftche at cae.wisc.edu
Tue Jul 27 16:53:46 CDT 2010


Author: kraftche
Date: 2010-07-27 16:53:46 -0500 (Tue, 27 Jul 2010)
New Revision: 4070

Modified:
   MOAB/branches/jk-direct-tag/src/Core.cpp
   MOAB/branches/jk-direct-tag/src/SequenceManager.cpp
   MOAB/branches/jk-direct-tag/src/SequenceManager.hpp
   MOAB/branches/jk-direct-tag/src/SparseTagCollection.cpp
   MOAB/branches/jk-direct-tag/src/SparseTagCollection.hpp
   MOAB/branches/jk-direct-tag/src/SparseTagSuperCollection.cpp
   MOAB/branches/jk-direct-tag/src/SparseTagSuperCollection.hpp
   MOAB/branches/jk-direct-tag/src/TagServer.cpp
   MOAB/branches/jk-direct-tag/src/TagServer.hpp
   MOAB/branches/jk-direct-tag/src/moab/Core.hpp
   MOAB/branches/jk-direct-tag/src/moab/Interface.hpp
   MOAB/branches/jk-direct-tag/test/TagTest.cpp
   MOAB/branches/jk-direct-tag/tools/mbperf/mbperf.cpp
Log:
direct access to tag storage, including unit and performance tests

Modified: MOAB/branches/jk-direct-tag/src/Core.cpp
===================================================================
--- MOAB/branches/jk-direct-tag/src/Core.cpp	2010-07-27 21:52:55 UTC (rev 4069)
+++ MOAB/branches/jk-direct-tag/src/Core.cpp	2010-07-27 21:53:46 UTC (rev 4070)
@@ -1942,6 +1942,15 @@
   return tag_server()->remove_tag(tag_handle);
 }
 
+ErrorCode Core::tag_iterate( Tag tag_handle,
+                             Range::iterator& iter,
+                             const Range::iterator& end,
+                             void*& data_ptr )
+{
+  return tag_server()->tag_iterate( tag_handle, iter, end, data_ptr );
+}
+
+
 //! gets the tag name string for the tag_handle
 ErrorCode  Core::tag_get_name(const Tag tag_handle, 
                                     std::string& tag_name) const

Modified: MOAB/branches/jk-direct-tag/src/SequenceManager.cpp
===================================================================
--- MOAB/branches/jk-direct-tag/src/SequenceManager.cpp	2010-07-27 21:52:55 UTC (rev 4069)
+++ MOAB/branches/jk-direct-tag/src/SequenceManager.cpp	2010-07-27 21:53:46 UTC (rev 4070)
@@ -1157,6 +1157,41 @@
 }
       
 
+ErrorCode SequenceManager::tag_iterate( TagId tag_id,
+                                        Range::iterator& iter,
+                                        const Range::iterator& end,
+                                        void*& data_ptr_out,
+                                        const void* default_value )
+{
+  if (tag_id >= tagSizes.size() || tagSizes[tag_id] < 1) {
+    if (tag_id < tagSizes.size() && tagSizes[tag_id] == MB_VARIABLE_LENGTH)
+      return MB_VARIABLE_DATA_LENGTH;
+    else
+      return MB_TAG_NOT_FOUND;
+  }
+
+    // If asked for nothing, successfully return nothing.
+  if (iter == end)
+    return MB_SUCCESS;
+  
+  EntitySequence* seq = 0;
+  ErrorCode rval = find( *iter, seq );
+  if (MB_SUCCESS != rval)
+    return rval;
+  


More information about the moab-dev mailing list