--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/systemswstubs/featuremanagerstub/src/featmgrplugin.cpp Mon Jan 18 20:06:52 2010 +0200
@@ -0,0 +1,196 @@
+/*
+* Copyright (c) 2002-2005 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: Feature Manager stub plugin
+* implementation.
+*
+*/
+
+
+#include "featmgrplugin.h"
+#include <featureinfoplugin.h>
+#include "trace.h"
+
+CFeatMgrPlugin* CFeatMgrPlugin::NewL()
+ {
+ CFeatMgrPlugin* self = new(ELeave) CFeatMgrPlugin();
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+CFeatMgrPlugin::~CFeatMgrPlugin()
+ {
+ if ( iTimer )
+ {
+ delete iTimer;
+ iTimer = NULL;
+ }
+ }
+
+CFeatMgrPlugin::CFeatMgrPlugin()
+ {
+ }
+
+void CFeatMgrPlugin::ConstructL()
+ {
+ }
+
+
+void CFeatMgrPlugin::ProcessCommandL( const FeatureInfoCommand::TFeatureInfoCmd aCommandId,
+ const TUint8 aTransId,
+ TDesC8& /*aData*/ )
+ {
+ COMPONENT_TRACE((_L("FeatMgrPlugin: Processing command: 0x%x, TransId: 0x%x"),
+ aCommandId, aTransId));
+
+ switch ( aCommandId )
+ {
+ case FeatureInfoCommand::ELoadFeatureInfoCmdId:
+ {
+ COMPONENT_TRACE(_L("FeatMgrPlugin: Processed ELoadFeatureInfoCmdId"));
+ // Load feature info
+ }
+ break;
+ default :
+ {
+ COMPONENT_TRACE((_L("FeatMgrPlugin: Unknown Command: 0x%x"), aCommandId));
+ }
+ break;
+ }
+
+ TInt retval(KErrNone);
+ TInt timeout( 1000 ); // microseconds
+
+ // create new timer
+
+
+ iTimer = CPluginTimer::NewL(timeout, *iResponseCallback, aCommandId, aTransId, retval,this);
+ }
+
+void CFeatMgrPlugin::GenericTimerFiredL(
+ MFeatureInfoPluginCallback& aService,
+ FeatureInfoCommand::TFeatureInfoCmd aCommandId,
+ TUint8 aTransId,
+ TInt /*aRetVal*/)
+ {
+ COMPONENT_TRACE((_L("FeatMgr Plugin: GenericTimerFiredL (0x%x, 0x%x)"),
+ aCommandId, aTransId));
+
+ //__ASSERT_ALWAYS(!(&aService), User::Invariant() );
+
+ RArray<FeatureInfoCommand::TFeature>* list =
+ new(ELeave) RArray<FeatureInfoCommand::TFeature>(1);
+
+ FeatureInfoCommand::TFeatureInfo featureList;
+ TInt err( KErrNone );
+
+ //
+ // TEST CASES
+ //
+
+ /***/
+ // For testing, case 1.
+ // Returns empty list and KErrNone.
+
+ featureList.iErrorCode = KErrNone;
+ featureList.iList = *list;
+
+ FeatureInfoCommand::TFeatureInfoRespPckg resPackage(featureList);
+
+ TRAP(err, aService.ProcessResponseL(aCommandId, aTransId, resPackage));
+ /***/
+
+ /***
+ // For testing, case 2.
+ // Returns one feature and KErrNone.
+
+ FeatureInfoCommand::TFeature feature1;
+ feature1.iFeatureID = KFeatureIdBt;
+ feature1.iValue = ETrue;
+
+ list->Append(feature1);
+
+ featureList.iErrorCode = KErrNone;
+ featureList.iList = *list;
+
+ FeatureInfoCommand::TFeatureInfoRespPckg resPackage(featureList);
+
+ TRAP(err, aService.ProcessResponseL(aCommandId, aTransId, resPackage));
+ ***/
+
+ /***
+ // For testing, case 3.
+ // Returns three features and KErrNone
+
+ FeatureInfoCommand::TFeature feature1;
+ FeatureInfoCommand::TFeature feature2;
+ FeatureInfoCommand::TFeature feature3;
+
+ feature1.iFeatureID = KFeatureIdBt;
+ feature1.iValue = EFalse;
+
+ feature1.iFeatureID = KFeatureIdIrda;
+ feature1.iValue = ETrue;
+
+ feature1.iFeatureID = KFeatureIdProtocolWlan;
+ feature1.iValue = EFalse;
+
+ list->Append(feature1);
+ list->Append(feature2);
+ list->Append(feature3);
+
+ featureList.iErrorCode = KErrNone;
+ featureList.iList = *list;
+
+ FeatureInfoCommand::TFeatureInfoRespPckg resPackage(featureList);
+
+ TRAP(err, aService.ProcessResponseL(aCommandId, aTransId, resPackage));
+ ***/
+
+ /***
+ // For testing, case 4.
+ // Returns empty list and KErrArgument.
+
+ featureList.iErrorCode = KErrArgument;
+ featureList.iList = *list;
+
+ FeatureInfoCommand::TFeatureInfoRespPckg resPackage(featureList);
+
+ TRAP(err, aService.ProcessResponseL(aCommandId, aTransId, resPackage));
+ ***/
+
+ /***
+ // For testing, case 5.
+ // ProcessResponseL never called.
+ ***/
+
+ list->Reset();
+ delete list;
+
+ // TEST CASES END
+
+ if ( err != KErrNone )
+ {
+ COMPONENT_TRACE((_L("FeatMgr Plugin: Error in ProcessResponseL: %d"), err));
+ }
+
+ if ( iTimer && !iTimer->IsActive() )
+ {
+ delete iTimer;
+ iTimer = NULL;
+ COMPONENT_TRACE((_L("FeatMgr Plugin: GenericTimerFiredL - Removed obsolete timer")));
+ }
+ }
+