[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