Files
salmanoff/include/asynchronousLoop.h
T

42 lines
742 B
C++
Raw Normal View History

2025-09-10 11:06:29 -04:00
#ifndef ASYNCHRONOUS_LOOP_H
#define ASYNCHRONOUS_LOOP_H
#include <atomic>
namespace smo {
class AsynchronousLoop
{
public:
AsynchronousLoop(
unsigned int nTotal, unsigned int nSucceeded=0, unsigned int nFailed=0)
: nTotal(nTotal), nSucceeded(nSucceeded), nFailed(nFailed)
2025-09-10 11:07:42 -04:00
{}
2025-09-10 11:06:29 -04:00
bool isComplete(void) const
{
return nSucceeded + nFailed == nTotal;
}
void incrementSuccessOrFailureDueTo(bool success)
{
if (success)
{ ++nSucceeded; }
else
{ ++nFailed; }
}
bool incrementSuccessOrFailureAndTestForCompletionDueTo(bool success)
{
incrementSuccessOrFailureDueTo(success);
return isComplete();
}
2025-09-10 11:06:29 -04:00
public:
std::atomic<unsigned int> nTotal, nSucceeded, nFailed;
};
} // namespace smo
2025-09-10 11:07:42 -04:00
#endif // ASYNCHRONOUS_LOOP_H