00001 // -*- c++ -*- 00002 //***************************************************************************** 00014 //***************************************************************************** 00015 00016 #ifndef polybori_cache_CacheManager_h_ 00017 #define polybori_cache_CacheManager_h_ 00018 00019 // include basic definitions 00020 #include <polybori/pbori_defs.h> 00021 00022 // get internal cache management classes 00023 #include "CCacheManagement.h" 00024 00025 #include <polybori/BoolePolyRing.h> 00026 00027 BEGIN_NAMESPACE_PBORI 00028 00029 class BooleEnv; 00030 template <class CacheType> 00031 class CacheManager: 00032 public CCacheManagement<BoolePolyRing, CacheType, CacheType::nargs> { 00033 00034 public: 00036 typedef CCacheManagement<BoolePolyRing, CacheType, CacheType::nargs> base; 00037 typedef typename base::manager_type manager_type; 00038 00040 CacheManager(const manager_type& mgr): 00041 base(mgr) {} 00042 00044 ~CacheManager() {} 00045 }; 00046 00047 template <class CacheType> 00048 class CommutativeCacheManager: 00049 public CCommutativeCacheManagement<BoolePolyRing, CacheType> { 00050 00051 public: 00053 typedef CCommutativeCacheManagement<BoolePolyRing, CacheType> base; 00054 typedef typename base::manager_type manager_type; 00055 00057 CommutativeCacheManager(const manager_type& mgr): 00058 base(mgr) {} 00059 00061 ~CommutativeCacheManager() {} 00062 }; 00063 00064 00065 END_NAMESPACE_PBORI 00066 00067 #endif