--- a/contentpublishingsrv/contentpublishingutils/pluginvalidator/src/cpluginvalidator.cpp Wed Sep 01 12:22:09 2010 +0100
+++ b/contentpublishingsrv/contentpublishingutils/pluginvalidator/src/cpluginvalidator.cpp Tue Sep 14 21:55:16 2010 +0300
@@ -11,7 +11,7 @@
*
* Contributors:
*
-* Description:
+* Description:
*
*/
@@ -26,7 +26,7 @@
//
// ----------------------------------------------------------------------------
//
-EXPORT_C CPluginValidator* CPluginValidator::NewL( TUid aUid,
+EXPORT_C CPluginValidator* CPluginValidator::NewL( TUid aUid,
TAny *aParameter )
{
CPluginValidator* self = CPluginValidator::NewLC( aUid , aParameter );
@@ -41,7 +41,7 @@
EXPORT_C CPluginValidator* CPluginValidator::NewLC( TUid aUid,
TAny *aParameter )
{
- CPluginValidator* self = new( ELeave ) CPluginValidator( aUid,
+ CPluginValidator* self = new( ELeave ) CPluginValidator( aUid,
aParameter );
CleanupStack::PushL( self );
self->ConstructL();
@@ -56,8 +56,8 @@
{
TPluginInfo pluginInfo;
pluginInfo.iImplementationUid = aUid;
- TInt index = iPluginArray.Find( pluginInfo,
- TIdentityRelation< TPluginInfo >(UidMatch) );
+ TInt index = iPluginArray.Find( pluginInfo,
+ TIdentityRelation< TPluginInfo >(UidMatch) );
return GetImplementation( index );
}
@@ -67,12 +67,12 @@
//
EXPORT_C TAny* CPluginValidator::GetImplementation( TInt aIndex )
{
- TAny* ret( NULL );
+ TAny* ret( NULL );
if (( aIndex != KErrNotFound ) && ( aIndex < iPluginArray.Count() ))
- {
- ret= iPluginArray[aIndex].iPlugin;
- }
- return ret;
+ {
+ ret= iPluginArray[aIndex].iPlugin;
+ }
+ return ret;
}
// ----------------------------------------------------------------------------
@@ -98,16 +98,16 @@
}
REComSession::FinalClose( );
}
-
+
// ----------------------------------------------------------------------------
//
// ----------------------------------------------------------------------------
//
void CPluginValidator::RunL()
{
+ iSession->NotifyOnChange( iStatus );
+ SetActive();
ManagePluginsL();
- iSession->NotifyOnChange( iStatus );
- SetActive();
}
// ----------------------------------------------------------------------------
@@ -131,12 +131,12 @@
//
// ----------------------------------------------------------------------------
//
-CPluginValidator::CPluginValidator( TUid aUid, TAny* aParameter ):
+CPluginValidator::CPluginValidator( TUid aUid, TAny* aParameter ):
CActive(EPriorityStandard),
iUid( aUid ),
iParameter( aParameter )
{
-
+
}
// ----------------------------------------------------------------------------
@@ -156,111 +156,110 @@
//
// ----------------------------------------------------------------------------
//
-TBool CPluginValidator::PresentInArrayL( TPluginInfo aPluginInfo,
- const RImplInfoPtrArray& aInfoArray )
- {
- TBool result(EFalse);
- for ( TInt i = 0; i< aInfoArray.Count(); i++ )
- {
- if ( aPluginInfo.iImplementationUid.iUid ==
- aInfoArray[i]->ImplementationUid().iUid)
- {
- result = ETrue;
- break;
- }
- }
- return result;
- }
-
-// ----------------------------------------------------------------------------
-//
-// ----------------------------------------------------------------------------
-//
-void CPluginValidator::DestroyPlugin( TInt aIndex )
+TBool CPluginValidator::PresentInArrayL( TPluginInfo aPluginInfo,
+ const RImplInfoPtrArray& aInfoArray )
{
- CBase* plugin = static_cast<CBase*>( iPluginArray[aIndex].iPlugin );
- delete plugin;
- REComSession::DestroyedImplementation(
- iPluginArray[aIndex].iDtor_ID_Key );
+ TBool result( EFalse );
+ for( TInt i = 0; i < aInfoArray.Count(); i++ )
+ {
+ if( aPluginInfo.iImplementationUid.iUid
+ == aInfoArray[i]->ImplementationUid().iUid )
+ {
+ result = ETrue;
+ break;
+ }
+ }
+ return result;
}
// ----------------------------------------------------------------------------
//
// ----------------------------------------------------------------------------
-//
-void CPluginValidator::CleanPluginsTable()
+//
+void CPluginValidator::DestroyPlugin( TInt aIndex )
{
- for ( TInt i = 0; i < iPluginArray.Count(); i++ )
- {
- DestroyPlugin( i );
- }
+ CBase* plugin = static_cast<CBase*>( iPluginArray[aIndex].iPlugin );
+ delete plugin;
+ REComSession::DestroyedImplementation(
+ iPluginArray[aIndex].iDtor_ID_Key );
+ }
+
+// ----------------------------------------------------------------------------
+//
+// ----------------------------------------------------------------------------
+//
+void CPluginValidator::CleanPluginsTable()
+ {
+ for( TInt i = 0; i < iPluginArray.Count(); i++ )
+ {
+ DestroyPlugin( i );
+ }
}
// ----------------------------------------------------------------------------
//
// ----------------------------------------------------------------------------
//
-void CPluginValidator::ManagePluginsL()
+void CPluginValidator::ManagePluginsL()
{
// Read info about all implementations into infoArray
RImplInfoPtrArray infoArray;
CleanupResetAndDestroyPushL( infoArray );
-
+
REComSession::ListImplementationsL( iUid , infoArray );
- TPluginInfo pluginInfo;
+ TPluginInfo pluginInfo;
//Load new plugins
for ( TInt i = 0; i < infoArray.Count( ); i++ )
{
pluginInfo.iImplementationUid = infoArray[i]->ImplementationUid( );
pluginInfo.iVersion = infoArray[i]->Version();
-
- TInt index = iPluginArray.Find( pluginInfo,
- TIdentityRelation< TPluginInfo >(UidMatch) );
-
- if ( index == KErrNotFound )
- {
- //plugin wasn't present, we load it now
- LoadPluginL( pluginInfo );
- }
- else if ( pluginInfo.iVersion > iPluginArray[index].iVersion )
- {
- //plugin was present but it is a newer version,
- //remove old and load a new one
- DestroyPlugin( index );
- iPluginArray.Remove( index );
- LoadPluginL( pluginInfo );
- }
+
+ TInt index = iPluginArray.Find( pluginInfo,
+ TIdentityRelation< TPluginInfo >(UidMatch) );
+
+ if( index == KErrNotFound )
+ {
+ //plugin wasn't present, we load it now
+ LoadPluginL( pluginInfo );
+ }
+ else if( pluginInfo.iVersion > iPluginArray[index].iVersion )
+ {
+ //plugin was present but it is a newer version,
+ //remove old and load a new one
+ DestroyPlugin( index );
+ iPluginArray.Remove( index );
+ LoadPluginL( pluginInfo );
+ }
}
//Remove old plugins
- for ( TInt i = iPluginArray.Count() - 1 ; i >= 0; i-- )
- {
- pluginInfo = iPluginArray[i];
- if ( !PresentInArrayL( pluginInfo, infoArray ) )
- {
- DestroyPlugin( i );
- iPluginArray.Remove( i );
- }
- }
- CleanupStack::PopAndDestroy( &infoArray );
+ for( TInt i = iPluginArray.Count() - 1; i >= 0; i-- )
+ {
+ pluginInfo = iPluginArray[i];
+ if ( !PresentInArrayL( pluginInfo, infoArray ) )
+ {
+ DestroyPlugin( i );
+ iPluginArray.Remove( i );
+ }
+ }
+ CleanupStack::PopAndDestroy( &infoArray );
}
// ----------------------------------------------------------------------------
//
// ----------------------------------------------------------------------------
//
-void CPluginValidator::LoadPluginL( TPluginInfo& aPluginInfo )
+void CPluginValidator::LoadPluginL( TPluginInfo& aPluginInfo )
{
- TAny* plug ( NULL );
- TInt err( KErrNone );
- TRAP( err, plug = REComSession::CreateImplementationL(
- aPluginInfo.iImplementationUid,
- aPluginInfo.iDtor_ID_Key, iParameter ) );
- if( err==KErrNone && plug )
- {
- CleanupStack::PushL( plug );
- aPluginInfo.iPlugin = plug;
- iPluginArray.AppendL( aPluginInfo );
- CleanupStack::Pop( plug );
- }
- }
-
+ TAny* plug( NULL );
+ TInt err( KErrNone );
+ TRAP( err, plug = REComSession::CreateImplementationL(
+ aPluginInfo.iImplementationUid,
+ aPluginInfo.iDtor_ID_Key, iParameter ) );
+ if( err == KErrNone && plug )
+ {
+ CleanupStack::PushL( plug );
+ aPluginInfo.iPlugin = plug;
+ iPluginArray.AppendL( aPluginInfo );
+ CleanupStack::Pop( plug );
+ }
+ }