gloox 1.0

messagefilter.h

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__