diff options
Diffstat (limited to 'Simulator/src/simulation/workloads/Workload.cpp')
| -rw-r--r-- | Simulator/src/simulation/workloads/Workload.cpp | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/Simulator/src/simulation/workloads/Workload.cpp b/Simulator/src/simulation/workloads/Workload.cpp new file mode 100644 index 00000000..b6a3b2d0 --- /dev/null +++ b/Simulator/src/simulation/workloads/Workload.cpp @@ -0,0 +1,47 @@ +#include "simulation/workloads/Workload.h" + +#include <iostream> + +namespace Simulation +{ + Workload::Workload(int size, int startTick, int dbId, int traceId, int dependency) : dependencyId(dependency), remainingFlops(size), TOTAL_FLOPS(size), START_TICK(startTick), ID(dbId), TRACE_ID(traceId) {} + + void Workload::doOperations(uint32_t opCount) + { + if (opCount < 0 || finished) return; + + if (remainingFlops <= opCount) + { + remainingFlops = 0; + finished = true; + } + else + { + remainingFlops -= opCount; + } + } + + uint32_t Workload::getRemainingOperations() const + { + return remainingFlops; + } + + uint32_t Workload::getTotalOperations() const + { + return TOTAL_FLOPS; + } + + bool Workload::isFinished() const + { + return this->finished; + } + uint32_t Workload::getId() const + { + return ID; + } + + int Workload::getDependencyId() const + { + return this->dependencyId; + } +} |
