akregator/src
articleinterceptor.h
00001 #ifndef AKREGATOR_ARTICLEINTERCEPTOR_H 00002 #define AKREGATOR_ARTICLEINTERCEPTOR_H 00003 00004 template <class T> class QValueList; 00005 00006 namespace Akregator { 00007 00008 class Article; 00009 00012 class ArticleInterceptor 00013 { 00014 public: 00016 virtual void processArticle(Article& article) = 0; 00017 00018 }; 00019 00021 class ArticleInterceptorManager 00022 { 00023 public: 00024 00025 static ArticleInterceptorManager* self(); 00026 00027 ArticleInterceptorManager(); 00028 virtual ~ArticleInterceptorManager(); 00029 00030 void addInterceptor(ArticleInterceptor* interceptor); 00031 void removeInterceptor(ArticleInterceptor* interceptor); 00032 QValueList<ArticleInterceptor*> interceptors() const; 00033 00034 private: 00035 static ArticleInterceptorManager* m_self; 00036 class ArticleInterceptorManagerPrivate; 00037 ArticleInterceptorManagerPrivate* d; 00038 }; 00039 00040 } //namespace Akregator 00041 00042 #endif // AKREGATOR_ARTICLEINTERCEPTOR_H