gloox
1.0
|
00001 /* 00002 Copyright (c) 2005-2009 by Jakob Schroeter <js@camaya.net> 00003 This file is part of the gloox library. http://camaya.net/gloox 00004 00005 This software is distributed under a license. The full license 00006 agreement can be found in the file LICENSE in this distribution. 00007 This software may not be copied, modified, sold or distributed 00008 other than expressed in the named license agreement. 00009 00010 This software is distributed without any warranty. 00011 */ 00012 00013 00014 #ifndef MESSAGEFILTER_H__ 00015 #define MESSAGEFILTER_H__ 00016 00017 #include "messagesession.h" 00018 00019 namespace gloox 00020 { 00021 00022 class Message; 00023 00037 class GLOOX_API MessageFilter 00038 { 00039 00040 public: 00045 MessageFilter( MessageSession* parent ); 00046 00050 virtual ~MessageFilter(); 00051 00059 virtual void attachTo( MessageSession* session ); 00060 00066 virtual void decorate( Message& msg ) = 0; 00067 00073 virtual void filter( Message& msg ) = 0; 00074 00075 protected: 00076 void send( Message& msg ) { if( m_parent ) m_parent->send( msg ); } 00077 00078 MessageSession* m_parent; 00079 00080 }; 00081 00082 } 00083 00084 #endif // MESSAGEFILTER_H__