| 123456789101112131415161718192021222324252627282930313233343536373839 |
- /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
- file Copyright.txt or https://cmake.org/licensing for details. */
- #ifndef cmCTestResourceAllocator_h
- #define cmCTestResourceAllocator_h
- #include <map>
- #include <string>
- class cmCTestResourceSpec;
- class cmCTestResourceAllocator
- {
- 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 InitializeFromResourceSpec(const cmCTestResourceSpec& 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
|