From ca2cccaa9c79f625584569d19d5c0a55445868d2 Mon Sep 17 00:00:00 2001 From: Hayodea Hekol Date: Sun, 24 May 2026 16:23:07 -0400 Subject: [PATCH] New multi-op result set class --- include/spinscale/multiOperationResultSet.h | 29 +++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 include/spinscale/multiOperationResultSet.h diff --git a/include/spinscale/multiOperationResultSet.h b/include/spinscale/multiOperationResultSet.h new file mode 100644 index 0000000..02965c0 --- /dev/null +++ b/include/spinscale/multiOperationResultSet.h @@ -0,0 +1,29 @@ +#ifndef MULTI_OPERATION_RESULT_SET_H +#define MULTI_OPERATION_RESULT_SET_H + +namespace sscl { + +/** Plain aggregate for fan-out / fan-in results returned from coroutines. */ +struct MultiOperationResultSet +{ + MultiOperationResultSet( + unsigned int total = 0, + unsigned int succeeded = 0, + unsigned int failed = 0) + : nTotal(total), nSucceeded(succeeded), nFailed(failed) + {} + + bool isComplete() const + { return nSucceeded + nFailed == nTotal; } + + bool nTotalIsZero() const + { return nTotal == 0; } + + unsigned int nTotal; + unsigned int nSucceeded; + unsigned int nFailed; +}; + +} // namespace sscl + +#endif // MULTI_OPERATION_RESULT_SET_H