diff --git a/include/asynchronousLoop.h b/include/asynchronousLoop.h new file mode 100644 index 0000000..fd596cf --- /dev/null +++ b/include/asynchronousLoop.h @@ -0,0 +1,30 @@ +#ifndef ASYNCHRONOUS_LOOP_H +#define ASYNCHRONOUS_LOOP_H + +#include + +namespace smo { + +class AsynchronousLoop +{ +public: + AsynchronousLoop( + unsigned int nTotal, unsigned int nSucceeded=0, unsigned int nFailed=0) + : nTotal(nTotal), nSucceeded(nSucceeded), nFailed(nFailed) + { + } + + ~AsynchronousLoop(void); + + bool isComplete(void) const + { + return nSucceeded + nFailed == nTotal; + } + +public: + std::atomic nTotal, nSucceeded, nFailed; +}; + +} // namespace smo + +#endif