diff -r 000000000000 -r 094583676ce7 PECengine/PresenceManager2/SrcCommon/GenObserverNotifyMediators.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PECengine/PresenceManager2/SrcCommon/GenObserverNotifyMediators.h Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,96 @@ +/* +* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Templated notify mediator implementation. +* +*/ + +#ifndef GENOBSERVERNOTIFYMEDIATORS_H__ +#define GENOBSERVERNOTIFYMEDIATORS_H__ + +// INCLUDES +#include +#include "RGenericObserverArray.h" + + +// CLASS DECLARATION +/** + * Templated notify mediator implementation. + * + * Suitable for observers which have event and error + * functions type: + * - void ObserverClass::EventFuncL( Type1 aArg1, + * Type2 aArg2 ) + * - void ObserverClass::ErrorFunc( TInt aLeaveError, + * Type1 aArg1 ) + * + * Inline functions left to header for clarity. + * + * @since 3.0 + */ +template < class _ObsClass, +class _Arg1, +class _Arg2 > +class TGenNotifyMediator2 + : public MGenObserverNotifyMediator< _ObsClass > + { + public: //Constructor + + explicit TGenNotifyMediator2( + void ( _ObsClass::* aEventFuncL )( _Arg1, _Arg2 ), + void ( _ObsClass::* aErrorFunc )( TInt, _Arg1 ), + _Arg1 aArg1, + _Arg2 aArg2 ) + : iEventFuncL( aEventFuncL ), + iErrorFunc( aErrorFunc ), + iArg1( aArg1 ), + iArg2( aArg2 ) + { + } + + + private: //From MGenObserverNotifyMediator + + void MediateNotifyL( _ObsClass& aObserverToNotify ) + { + ( aObserverToNotify.*iEventFuncL )( iArg1, iArg2 ); + } + + void MediateNotifyError( _ObsClass& aObserverToNotify, + TInt aLeaveError ) + { + ( aObserverToNotify.*iErrorFunc )( aLeaveError, iArg1 ); + } + + + private: //Data + //OWN: Event handler function + void ( _ObsClass::* iEventFuncL )( _Arg1, _Arg2 ); + + //OWN: Error handler function + void ( _ObsClass::* iErrorFunc )( TInt, _Arg1 ); + + //OWN: Templated argument + _Arg1 iArg1; + + //OWN: Templated argument + _Arg2 iArg2; + }; + + + +#endif //GENOBSERVERNOTIFYMEDIATORS_H__ + + +// End of File +