diff options
author | Kyle Edwards <kyle.edwards@kitware.com> | 2019-07-08 21:09:34 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2019-10-02 13:33:54 (GMT) |
commit | c494b2973a1557c3373a2841ba39da6b8d4bdb5a (patch) | |
tree | 09a5508bf005d7518beed699db52c4dbd3a64d36 /Source/CTest/cmCTestHardwareAllocator.h | |
parent | c8f48069430cb286ca593a967e0c3b8e5ea842c4 (diff) | |
download | CMake-c494b2973a1557c3373a2841ba39da6b8d4bdb5a.zip CMake-c494b2973a1557c3373a2841ba39da6b8d4bdb5a.tar.gz CMake-c494b2973a1557c3373a2841ba39da6b8d4bdb5a.tar.bz2 |
CTest: Add cmCTestHardwareAllocator class
Diffstat (limited to 'Source/CTest/cmCTestHardwareAllocator.h')
-rw-r--r-- | Source/CTest/cmCTestHardwareAllocator.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/Source/CTest/cmCTestHardwareAllocator.h b/Source/CTest/cmCTestHardwareAllocator.h new file mode 100644 index 0000000..441f84d --- /dev/null +++ b/Source/CTest/cmCTestHardwareAllocator.h @@ -0,0 +1,39 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#ifndef cmCTestHardwareAllocator_h +#define cmCTestHardwareAllocator_h + +#include <map> +#include <string> + +class cmCTestHardwareSpec; + +class cmCTestHardwareAllocator +{ +public: + struct Resource + { + unsigned int Total; + unsigned int Locked; + + unsigned int Free() const { return this->Total - this->Locked; } + + bool operator==(const Resource& other) const; + bool operator!=(const Resource& other) const; + }; + + void InitializeFromHardwareSpec(const cmCTestHardwareSpec& spec); + + const std::map<std::string, std::map<std::string, Resource>>& GetResources() + const; + + bool AllocateResource(const std::string& name, const std::string& id, + unsigned int slots); + bool DeallocateResource(const std::string& name, const std::string& id, + unsigned int slots); + +private: + std::map<std::string, std::map<std::string, Resource>> Resources; +}; + +#endif |