--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserverplugins/common_tsy/test/integration/src/trpsfunctor.cpp Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,118 @@
+// Copyright (c) 2007-2009 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:
+// trpfunctor.cpp
+// TRpsFunctor implementation
+//
+//
+
+ #include "trpsfunctor.h"
+
+ #
+
+//constructor - takes pointer to the RPS master object, pointer to the RPS function to invoke and 1 paramter
+template <class TRpsParam1, class TRpsParam2, class TRpsParam3>
+TRpsFunctor<TRpsParam1, TRpsParam2, TRpsParam3>::TRpsFunctor(CRPSMaster* aRpsMaster, const TDesC& aDisplayToClientTxt, TEtelLine aLine, TRpsWith1ParamFptr aRpsFptr, TRpsParam1 aRpsParam1)
+: iRpsFptrWith1Param(aRpsFptr),
+ iRpsMaster(aRpsMaster),
+ iRpsParam1(aRpsParam1),
+ iRpsCallType(EOneParam)
+ {
+ SetDisplayToClientTxt(aDisplayToClientTxt, aLine);
+ }
+
+//constructor - takes pointer to the RPS master object, pointer to the RPS function to invoke and 2 paramters
+template <class TRpsParam1, class TRpsParam2, class TRpsParam3>
+TRpsFunctor<TRpsParam1, TRpsParam2, TRpsParam3>::TRpsFunctor(CRPSMaster* aRpsMaster, const TDesC& aDisplayToClientTxt, TEtelLine aLine, TRpsWith2ParamFptr aRpsFptr, TRpsParam1 aRpsParam1, TRpsParam2 aRpsParam2)
+: iRpsFptrWith2Param(aRpsFptr),
+ iRpsMaster(aRpsMaster),
+ iRpsParam1(aRpsParam1),
+ iRpsParam2(aRpsParam2),
+ iRpsCallType(ETwoParam)
+ {
+ SetDisplayToClientTxt(aDisplayToClientTxt, aLine);
+ }
+
+//constructor - takes pointer to the RPS master object, pointer to the RPS function to invoke and 3 paramters
+template <class TRpsParam1, class TRpsParam2, class TRpsParam3>
+TRpsFunctor<TRpsParam1, TRpsParam2, TRpsParam3>::TRpsFunctor(CRPSMaster* aRpsMaster, const TDesC& aDisplayToClientTxt, TEtelLine aLine, TRpsWith3ParamFptr aRpsFptr, TRpsParam1 aRpsParam1, TRpsParam2 aRpsParam2, TRpsParam3 aRpsParam3)
+: iRpsFptrWith3Param(aRpsFptr),
+ iRpsMaster(aRpsMaster),
+ iRpsParam1(aRpsParam1),
+ iRpsParam2(aRpsParam2),
+ iRpsParam3(aRpsParam3),
+ iRpsCallType(EThreeParam)
+ {
+ SetDisplayToClientTxt(aDisplayToClientTxt, aLine);
+ }
+
+//setup msg to display to client
+template <class TRpsParam1, class TRpsParam2, class TRpsParam3>
+void TRpsFunctor<TRpsParam1, TRpsParam2, TRpsParam3>::SetDisplayToClientTxt(const TDesC& aDisplayToClientTxt, TEtelLine aLine)
+ {
+ _LIT(KVoice, "voice");
+ _LIT(KData, "data");
+ _LIT(KFax, "fax");
+ if(aLine >=0 )
+ {
+ switch(aLine)
+ {
+ case EDataLine:
+ iDisplayToClientTxt.Format(aDisplayToClientTxt, &KData);
+ break;
+ case EFaxLine:
+ iDisplayToClientTxt.Format(aDisplayToClientTxt, &KFax);
+ break;
+ case EVoiceLine:
+ default:
+ iDisplayToClientTxt.Format(aDisplayToClientTxt, &KVoice);
+ }
+ }
+ else
+ {
+ iDisplayToClientTxt.Copy(aDisplayToClientTxt);
+ }
+ }
+
+//return msg that is displayed to the client
+template <class TRpsParam1, class TRpsParam2, class TRpsParam3>
+const TDesC& TRpsFunctor<TRpsParam1, TRpsParam2, TRpsParam3>::DisplayToClientTxt()
+ {
+ return iDisplayToClientTxt;
+ }
+
+//execute the RPS request based on the number of parameters that was passed in
+template <class TRpsParam1, class TRpsParam2, class TRpsParam3>
+void TRpsFunctor<TRpsParam1, TRpsParam2, TRpsParam3>::ExecuteRpsRequestL()
+ {
+ if(iRpsCallType == EOneParam)
+ {
+ (*iRpsMaster.*iRpsFptrWith1Param)(iRpsParam1);
+ }
+ else if(iRpsCallType == ETwoParam)
+ {
+ (*iRpsMaster.*iRpsFptrWith2Param)(iRpsParam1, iRpsParam2);
+ }
+ else if(iRpsCallType == EThreeParam)
+ {
+ (*iRpsMaster.*iRpsFptrWith3Param)(iRpsParam1, iRpsParam2, iRpsParam3);
+ }
+ else
+ {
+ __ASSERT_ALWAYS(EFalse, User::Panic(KPanic,KCTSYPanic_invalidrpsparameters));
+ }
+
+ return;
+ }
+
+