From 25bd1e6e492f3c43beb32f6409bea906a7520504 Mon Sep 17 00:00:00 2001 From: Yann Dirson Date: Sun, 20 Apr 2008 21:52:42 +0200 Subject: [PATCH] Add a PromotionManager. --- src/core/CMakeLists.txt | 1 + src/core/promotionmanager.cpp | 17 +++++++++++++++++ src/core/promotionmanager.h | 20 ++++++++++++++++++++ 3 files changed, 38 insertions(+) create mode 100644 src/core/promotionmanager.cpp create mode 100644 src/core/promotionmanager.h diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index e76e728..6b5bb20 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -20,6 +20,7 @@ set(taguacore_SRCS policy.cpp pool.cpp poolcollection.cpp + promotionmanager.cpp repository.cpp state.cpp statefactory.cpp diff --git a/src/core/promotionmanager.cpp b/src/core/promotionmanager.cpp new file mode 100644 index 0000000..bc939a8 --- /dev/null +++ b/src/core/promotionmanager.cpp @@ -0,0 +1,17 @@ +#include "promotionmanager.h" + +void PromotionManager::setPromotion(IType* from, IType* to) +{ + m_promotions[from] = to; + m_depromotions[to] = from; +} + +const IType * PromotionManager::getPromotion(const IType* p) const +{ + return m_promotions[p]; +} + +const IType * PromotionManager::getDepromotion(const IType* p) const +{ + return m_depromotions[p]; +} diff --git a/src/core/promotionmanager.h b/src/core/promotionmanager.h new file mode 100644 index 0000000..d06bc8a --- /dev/null +++ b/src/core/promotionmanager.h @@ -0,0 +1,20 @@ +#ifndef CORE__PROMOTION_MANAGER_H +#define CORE__PROMOTION_MANAGER_H + +#include + +#include "type.h" +#include "component.h" + +class TAGUA_EXPORT PromotionManager: public Component { +private: + QHash m_promotions; + QHash m_depromotions; + +public: + void setPromotion(IType* from, IType* to); + const IType * getPromotion(const IType*) const; + const IType * getDepromotion(const IType*) const; +}; + +#endif // CORE__PROMOTION_MANAGER_H -- 2.11.4.GIT