articleinterceptor.h
00001 #ifndef AKREGATOR_ARTICLEINTERCEPTOR_H 00002 #define AKREGATOR_ARTICLEINTERCEPTOR_H 00003 00004 #include "akregator_export.h" 00005 00006 template <class T> class TQValueList; 00007 00008 namespace Akregator { 00009 00010 class Article; 00011 00016 class AKREGATOR_EXPORT ArticleInterceptor 00017 { 00018 public: 00020 virtual void processArticle(Article& article) = 0; 00021 00022 }; 00023 00025 class AKREGATOR_EXPORT ArticleInterceptorManager 00026 { 00027 public: 00028 00029 static ArticleInterceptorManager* self(); 00030 00031 ArticleInterceptorManager(); 00032 virtual ~ArticleInterceptorManager(); 00033 00034 void addInterceptor(ArticleInterceptor* interceptor); 00035 void removeInterceptor(ArticleInterceptor* interceptor); 00036 TQValueList<ArticleInterceptor*> interceptors() const; 00037 00038 private: 00039 static ArticleInterceptorManager* m_self; 00040 class ArticleInterceptorManagerPrivate; 00041 ArticleInterceptorManagerPrivate* d; 00042 }; 00043 00044 } //namespace Akregator 00045 00046 #endif // AKREGATOR_ARTICLEINTERCEPTOR_H