diff -r 13d7c31c74e0 -r b183ec05bd8c terminalsecurity/SCP/SCPServer/src/SCPPluginManager.cpp --- a/terminalsecurity/SCP/SCPServer/src/SCPPluginManager.cpp Thu Aug 19 10:44:50 2010 +0300 +++ b/terminalsecurity/SCP/SCPServer/src/SCPPluginManager.cpp Tue Aug 31 16:04:06 2010 +0300 @@ -151,60 +151,52 @@ // Status : Approved // --------------------------------------------------------- // -CSCPParamObject* CSCPPluginManager::PostEvent( TInt aID, CSCPParamObject& aParam ) - { +CSCPParamObject* CSCPPluginManager :: PostEvent(TInt aID, CSCPParamObject& aParam) { Dprint(_L("[CSCPPluginManager]-> PostEvent() >>>")); // If the plugins aren't loaded, load them here TBool okToPost = ETrue; + TInt lErr = KErrNone; - if ( !iPluginsLoaded ) - { - TRAPD( err, LoadPluginsL() ); - if ( err != KErrNone ) - { - Dprint( (_L("CSCPPluginManager::PostEvent(): ERROR loading plugins: %d"), err )); + if(!iPluginsLoaded) { + TRAP(lErr, LoadPluginsL()); + + if(lErr != KErrNone) { + Dprint((_L("CSCPPluginManager::PostEvent(): ERROR loading plugins: %d"), lErr)); okToPost = EFalse; - } } + } + lErr = KErrNone; CSCPParamObject* reply = NULL; - if ( okToPost ) - { - // Send the incoming event to all plugins - TBool continueProcessing = ETrue; + TRAP(lErr, reply = CSCPParamObject :: NewL()); + + if(lErr != KErrNone) { + return NULL; + } + + lErr = KErrNone; + TInt lPolicyRunStatus = KErrNone; - for ( TInt i = 0; i < iPlugins.Count(); i++ ) - { + if(okToPost) { + // Send the incoming event to all plugins + for(TInt i = 0; i < iPlugins.Count(); i++) { // The method shouldn't leave, but make sure - TRAPD( err, reply = iPlugins[i]->HandleEvent( aID, aParam ) ); - if ( err != KErrNone ) - { - // Plugin error - continue; + TRAP(lErr, iPlugins[i]->HandleEventL(aID, aParam, *reply)); + + if(reply->Get(KSCPParamStatus, lPolicyRunStatus) == KErrNone) { + if(lPolicyRunStatus != KErrNone) { + lErr = lPolicyRunStatus; } - - // Check reply - if ( reply != NULL ) - { - Dprint(_L("[CSCPPluginManager]-> The event '%d' was consumed..."), aID); - continueProcessing = EFalse; - } - else - { - // No action requested - } + } + } - if ( !continueProcessing ) - { - break; // Event consumed, don't continue - } - } - } + reply->Set(KSCPParamStatus, lErr); + } Dprint(_L("[CSCPPluginManager]-> PostEvent() okToPost=%d<<<"), okToPost); return reply; - } +} // --------------------------------------------------------- // void CSCPPluginManager::~CSCPPluginManager()