@@ -9,7 +9,7 @@ using namespace nx::core;
99SegmentFeatures::SegmentFeatures (DataStructure& dataStructure, const std::atomic_bool& shouldCancel, const IFilter::MessageHandler& mesgHandler)
1010: m_DataStructure(dataStructure)
1111, m_ShouldCancel(shouldCancel)
12- , m_MessageHandler (mesgHandler)
12+ , m_MessageHelper (mesgHandler)
1313{
1414}
1515
@@ -58,8 +58,7 @@ Result<> SegmentFeatures::execute(IGridGeometry* gridGeom)
5858 periodicPoints[5 ] = -(dims[0 ] * dims[1 ]) * (dims[2 ] - 1 );
5959 }
6060
61- auto start = std::chrono::steady_clock::now ();
62-
61+ ThrottledMessenger throttledMessenger = m_MessageHelper.createThrottledMessenger ();
6362 while (seed >= 0 )
6463 {
6564 if (m_ShouldCancel)
@@ -142,25 +141,18 @@ Result<> SegmentFeatures::execute(IGridGeometry* gridGeom)
142141 voxelsList.assign (initialVoxelsListSize, -1 );
143142 gnum++;
144143
145- auto now = std::chrono::steady_clock::now ();
146- // Only send updates every 1 second
147- if (std::chrono::duration_cast<std::chrono::milliseconds>(now - start).count () > 1000 )
148- {
149- std::string message = fmt::format (" Features Found: {}" , gnum);
150- m_MessageHandler (nx::core::IFilter::ProgressMessage{nx::core::IFilter::Message::Type::Info, message, 0 });
151- start = std::chrono::steady_clock::now ();
152- }
144+ throttledMessenger.sendThrottledMessage ([&]() { return fmt::format (" Features Found: {}" , gnum); });
153145
154146 nextSeed = seed + 1 ;
155147 seed = getSeed (gnum, nextSeed);
156148 }
157149
158150 if (hasNonContiguousFeature)
159151 {
160- m_MessageHandler ({IFilter::Message::Type::Info, " SegmentFeatures found Non-Contiguous Features." } );
152+ m_MessageHelper. sendMessage ( " SegmentFeatures found Non-Contiguous Features." );
161153 }
162154
163- m_MessageHandler ({IFilter::Message::Type::Info, fmt::format (" Total Features Found: {}" , gnum)} );
155+ m_MessageHelper. sendMessage ( fmt::format (" Total Features Found: {}" , gnum));
164156 m_FoundFeatures = gnum;
165157 return {};
166158}
@@ -182,8 +174,8 @@ SegmentFeatures::SeedGenerator SegmentFeatures::initializeStaticVoxelSeedGenerat
182174}
183175
184176// -----------------------------------------------------------------------------
185- void SegmentFeatures::randomizeFeatureIds (nx::core::Int32Array* featureIds, uint64 totalFeatures) const
177+ void SegmentFeatures::randomizeFeatureIds (nx::core::Int32Array* featureIds, uint64 totalFeatures)
186178{
187- m_MessageHandler (IFilter::Message::Type::Info, " Randomizing Feature Ids" );
179+ m_MessageHelper. sendMessage ( " Randomizing Feature Ids" );
188180 ClusterUtilities::RandomizeFeatureIds (featureIds->getDataStoreRef (), totalFeatures);
189181}
0 commit comments