Files
WFR-lib/include/wfr/common/resource/ResourceReservation.h
T
2017-04-11 15:49:21 +02:00

36 lines
904 B
C++
Executable File

#pragma once
#include <wfr/common/types/WfrTypes.h>
namespace wfr {
namespace resource {
class ComputingResource;
class ComputingResourceReservation {
// Invariant properties that can be accessed directly.
public:
resource::ComputingResource* const resource = nullptr;
const wfr_size_t slotCount = 0;
// Mutable properties that need to be accessed via getter-/setter-functions.
protected:
bool isValidFlag = false;
// Public Functions
public:
ComputingResourceReservation() noexcept {}
ComputingResourceReservation(resource::ComputingResource* resource, const wfr_size_t& slotCount = 1) noexcept
: resource(resource), slotCount(slotCount), isValidFlag(true) {}
virtual ~ComputingResourceReservation() noexcept {}
bool isValid() const noexcept { return isValidFlag; }
void invalidateReservation() noexcept { isValidFlag = false; }
};
} /* namespace resource */
} /* namespace wfr */