--- /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 <E32Std.h>
+#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
+