Fennel: /home/pub/open/dev/fennel/cache/PagePredicate.h Source File (original) (raw)
00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019 00020 00021 00022 00023 00024 #ifndef Fennel_PagePredicate_Included 00025 #define Fennel_PagePredicate_Included 00026 00027 #include "fennel/common/CompoundId.h" 00028 #include "fennel/cache/CachePage.h" 00029 00030 FENNEL_BEGIN_NAMESPACE 00031 00032 class MappedPageListener; 00033 00037 class FENNEL_CACHE_EXPORT PagePredicate 00038 { 00039 public: 00040 virtual ~PagePredicate(); 00041 00049 virtual bool operator ()(CachePage const &page) = 0; 00050 }; 00051 00056 class FENNEL_CACHE_EXPORT DeviceIdPagePredicate 00057 : public PagePredicate 00058 { 00059 DeviceId deviceId; 00060 00061 public: 00062 explicit DeviceIdPagePredicate(DeviceId); 00063 00064 virtual bool operator()(CachePage const &page); 00065 }; 00066 00071 class FENNEL_CACHE_EXPORT MappedPageListenerPredicate 00072 : public PagePredicate 00073 { 00074 MappedPageListener &listener; 00075 00076 public: 00077 explicit MappedPageListenerPredicate(MappedPageListener &); 00078 00079 virtual bool operator()(CachePage const &page); 00080 }; 00081 00082 FENNEL_END_NAMESPACE 00083 00084 #endif 00085 00086