00001 #ifndef ABUSECACHESTACK_H
00002 #define ABUSECACHESTACK_H
00003
00004 #include <abuse/AbuseAddiesCache.h>
00005 #include <deque>
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 class AbuseCacheStack: public AbuseAddiesCache
00022 {
00023 public:
00024 AbuseCacheStack(){}
00025
00026 virtual ~AbuseCacheStack();
00027 virtual std::list<std::string> query(const Url& url)const throw(std::runtime_error);
00028 virtual std::list<std::string> query(const std::string& doman)const throw(std::runtime_error);
00029 virtual void add(const UrlRange& range,const std::list<std::string>& addies);
00030
00031
00032
00033
00034 void push_front(AbuseAddiesCache* cache);
00035 void push_back(AbuseAddiesCache* cache);
00036 size_t size()const;
00037 AbuseAddiesCache* pop_front();
00038 AbuseAddiesCache* pop_back();
00039 private:
00040 std::deque<AbuseAddiesCache*> m_stack;
00041
00042 AbuseCacheStack(const AbuseCacheStack&);
00043 void operator=(const AbuseCacheStack&);
00044 };
00045
00046 #endif //ABUSECACHESTACK_H