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