aboutsummaryrefslogtreecommitdiff
path: root/api/logic/Usable.h
diff options
context:
space:
mode:
Diffstat (limited to 'api/logic/Usable.h')
-rw-r--r--api/logic/Usable.h58
1 files changed, 0 insertions, 58 deletions
diff --git a/api/logic/Usable.h b/api/logic/Usable.h
deleted file mode 100644
index 83dd083d..00000000
--- a/api/logic/Usable.h
+++ /dev/null
@@ -1,58 +0,0 @@
-#pragma once
-
-#include <cstddef>
-#include <memory>
-
-class Usable;
-
-/**
- * Base class for things that can be used by multiple other things and we want to track the use count.
- *
- * @see UseLock
- */
-class Usable
-{
- friend class UseLock;
-public:
- std::size_t useCount()
- {
- return m_useCount;
- }
- bool isInUse()
- {
- return m_useCount > 0;
- }
-protected:
- virtual void decrementUses()
- {
- m_useCount--;
- }
- virtual void incrementUses()
- {
- m_useCount++;
- }
-private:
- std::size_t m_useCount = 0;
-};
-
-/**
- * Lock class to use for keeping track of uses of other things derived from Usable
- *
- * @see Usable
- */
-class UseLock
-{
-public:
- UseLock(std::shared_ptr<Usable> usable)
- : m_usable(usable)
- {
- // this doesn't use shared pointer use count, because that wouldn't be correct. this count is separate.
- m_usable->incrementUses();
- }
- ~UseLock()
- {
- m_usable->decrementUses();
- }
-private:
- std::shared_ptr<Usable> m_usable;
-};