From 8185c9fb27134725efb5801e623165c12bad323d Mon Sep 17 00:00:00 2001 From: groot Date: Wed, 24 Apr 2019 13:57:22 +0800 Subject: [PATCH] rewrite cache code Former-commit-id: d4a2336ade2a39d34380dba715290992dcdabc84 --- cpp/src/cache/CacheMgr.cpp | 18 ++++++++++++++++++ cpp/src/cache/CacheMgr.h | 2 ++ 2 files changed, 20 insertions(+) diff --git a/cpp/src/cache/CacheMgr.cpp b/cpp/src/cache/CacheMgr.cpp index e93a1e8e..9a875a5e 100644 --- a/cpp/src/cache/CacheMgr.cpp +++ b/cpp/src/cache/CacheMgr.cpp @@ -41,6 +41,15 @@ DataObjPtr CacheMgr::GetItem(const std::string& key) { return cache_->get(key); } +engine::Index_ptr CacheMgr::GetIndex(const std::string& key) { + DataObjPtr obj = GetItem(key); + if(obj != nullptr) { + return obj->data(); + } + + return nullptr; +} + void CacheMgr::InsertItem(const std::string& key, const DataObjPtr& data) { if(cache_ == nullptr) { return; @@ -49,6 +58,15 @@ void CacheMgr::InsertItem(const std::string& key, const DataObjPtr& data) { cache_->insert(key, data); } +void CacheMgr::InsertItem(const std::string& key, const engine::Index_ptr& index) { + if(cache_ == nullptr) { + return; + } + + DataObjPtr obj = std::make_shared(index); + cache_->insert(key, obj); +} + void CacheMgr::EraseItem(const std::string& key) { if(cache_ == nullptr) { return; diff --git a/cpp/src/cache/CacheMgr.h b/cpp/src/cache/CacheMgr.h index 159ef986..3d560017 100644 --- a/cpp/src/cache/CacheMgr.h +++ b/cpp/src/cache/CacheMgr.h @@ -19,8 +19,10 @@ public: virtual bool ItemExists(const std::string& key); virtual DataObjPtr GetItem(const std::string& key); + virtual engine::Index_ptr GetIndex(const std::string& key); virtual void InsertItem(const std::string& key, const DataObjPtr& data); + virtual void InsertItem(const std::string& key, const engine::Index_ptr& index); virtual void EraseItem(const std::string& key); -- GitLab