X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=service%2Fresource-encapsulation%2Fsrc%2FresourceCache%2Finclude%2FResourceCacheManager.h;h=ae02caca270d6611677ca48f5d9db939189e8551;hb=588a5d602cc351dbed407b510c6902905af4b443;hp=c1a14a7e47f5b28e2a0ce77e172b789282e445aa;hpb=5d2cc1f41da12c4f2f90750b309506e10fa45947;p=platform%2Fupstream%2Fiotivity.git diff --git a/service/resource-encapsulation/src/resourceCache/include/ResourceCacheManager.h b/service/resource-encapsulation/src/resourceCache/include/ResourceCacheManager.h index c1a14a7..ae02cac 100644 --- a/service/resource-encapsulation/src/resourceCache/include/ResourceCacheManager.h +++ b/service/resource-encapsulation/src/resourceCache/include/ResourceCacheManager.h @@ -28,6 +28,7 @@ #include "CacheTypes.h" #include "DataCache.h" +#include "ObserveCache.h" namespace OIC { @@ -36,35 +37,47 @@ namespace OIC class ResourceCacheManager { public: - class InvalidParameterException: public RCSException + class HasNoCachedDataException: public RCSException { public: - InvalidParameterException(std::string &&what) + HasNoCachedDataException(std::string &&what) : RCSException { std::move(what) } {} }; static ResourceCacheManager *getInstance(); + // throw InvalidParameterException; CacheID requestResourceCache( PrimitiveResourcePtr pResource, CacheCB func = NULL, + CACHE_METHOD cm = CACHE_METHOD::ITERATED_GET, REPORT_FREQUENCY rf = REPORT_FREQUENCY::NONE, long time = 0l); + + // throw InvalidParameterException; void cancelResourceCache(CacheID id); - void updateResourceCache(PrimitiveResourcePtr pResource) const; + // throw InvalidParameterException; void updateResourceCache(CacheID id) const; - const ResourceAttributes getCachedData(PrimitiveResourcePtr pResource) const; - const ResourceAttributes getCachedData(CacheID id) const; + // throw InvalidParameterException; + // throw HasNoCachedDataException; + const RCSResourceAttributes getCachedData(CacheID id) const; - CACHE_STATE getResourceCacheState(PrimitiveResourcePtr pResource) const; + // throw InvalidParameterException; CACHE_STATE getResourceCacheState(CacheID id) const; + // throw InvalidParameterException; + bool isCachedData(CacheID id) const; + private: static ResourceCacheManager *s_instance; + static std::mutex s_mutex; static std::mutex s_mutexForCreation; static std::unique_ptr> s_cacheDataList; std::map cacheIDmap; + std::list m_observeCacheList; + std::map observeCacheIDmap; + ResourceCacheManager() = default; ~ResourceCacheManager(); ResourceCacheManager(const ResourceCacheManager &) = delete;