idlefw/src/framework/aipluginfactory.cpp
branchRCL_3
changeset 59 a0713522ab97
parent 51 15e4dd19031c
child 64 b276298d5729
equal deleted inserted replaced
51:15e4dd19031c 59:a0713522ab97
   141 // CAiPluginFactory::CreatePluginL()
   141 // CAiPluginFactory::CreatePluginL()
   142 //
   142 //
   143 // ----------------------------------------------------------------------------
   143 // ----------------------------------------------------------------------------
   144 //
   144 //
   145 TInt CAiPluginFactory::CreatePlugin( 
   145 TInt CAiPluginFactory::CreatePlugin( 
   146     const THsPublisherInfo& aPublisherInfo )                             
   146     const THsPublisherInfo& aPublisherInfo )
   147     {                                            
   147     {
   148     __PRINTS( "*** CAiPluginFactory::CreatePlugin: Start ***" );
   148     __PRINTS( "*** CAiPluginFactory::CreatePlugin: Start ***" );
   149                                     
   149 
   150     if ( IsRecyclable( aPublisherInfo ) )
   150     if ( IsRecyclable( aPublisherInfo ) )
   151         {
   151         {
   152         CHsContentPublisher* plugin( PluginByUid( aPublisherInfo.Uid() ) );
   152         CHsContentPublisher* plugin( PluginByUid( aPublisherInfo.Uid() ) );
   153         
   153 
   154         if ( plugin )
   154         if ( plugin )
   155             {
   155             {
       
   156             if ( aPublisherInfo.Namespace() == KNullDesC8 )
       
   157                 {
       
   158                 // No namespace available
       
   159                 __PRINTS( "*** CAiPluginFactory::CreatePlugin: Done -\
       
   160                                Failed to Load Plug-in: KErrNotSupported ***" );
       
   161                 return KErrNotSupported;
       
   162                 }
       
   163 
   156             // Plugin already exists, update its namespace
   164             // Plugin already exists, update its namespace
   157             THsPublisherInfo& info( 
   165             THsPublisherInfo& info( 
   158                 const_cast< THsPublisherInfo& >( plugin->PublisherInfo() ) );
   166                 const_cast< THsPublisherInfo& >( plugin->PublisherInfo() ) );
   159             
   167 
   160             info.iNamespace.Copy( aPublisherInfo.Namespace() );
   168             info.iNamespace.Copy( aPublisherInfo.Namespace() );
   161             
   169 
   162             __PRINTS( "*** CAiPluginFactory::CreatePlugin: Done - Plugin recycled ***" );
   170             __PRINTS( "*** CAiPluginFactory::CreatePlugin: Done -\
   163             
   171                            Plugin recycled ***" );
       
   172 
   164             return KErrNone;
   173             return KErrNone;
   165             }
   174             }
   166         }
   175         }
   167             
   176 
   168     TBool implFound( EFalse );
   177     TBool implFound( EFalse );
   169     
   178 
   170     for( TInt i = 0; i < iEComPlugins.Count(); i++ )
   179     for( TInt i = 0; i < iEComPlugins.Count(); i++ )
   171         {
   180         {
   172         CImplementationInformation* information( iEComPlugins[i] );
   181         CImplementationInformation* information( iEComPlugins[i] );
   173                                                                  
   182 
   174         if( information->ImplementationUid().iUid == aPublisherInfo.Uid().iUid )
   183         if( information->ImplementationUid().iUid == aPublisherInfo.Uid().iUid )
   175             {
   184             {
   176             implFound = ETrue;
   185             implFound = ETrue;
   177             break;
   186             break;
   178             }
   187             }
   179         }
   188         }
   180     
   189     
   181     if( aPublisherInfo.Namespace() == KNullDesC8 || !implFound )
   190     if( aPublisherInfo.Namespace() == KNullDesC8 || !implFound )
   182         {
   191         {
   183         // No namespace available or no ecom implementation available
   192         // No namespace available or no ecom implementation available
   184         __PRINTS( "*** CAiPluginFactory::CreatePlugin: Done - Failed to Load Plug-in: KErrNotSupported ***" );
   193         __PRINTS( "*** CAiPluginFactory::CreatePlugin: Done -\
       
   194                        Failed to Load Plug-in: KErrNotSupported ***" );
   185         
   195         
   186         return KErrNotSupported;
   196         return KErrNotSupported;
   187         }
   197         }
   188            
   198            
   189     CHsContentPublisher* plugin( PluginByInfo( aPublisherInfo ) );
   199     CHsContentPublisher* plugin( PluginByInfo( aPublisherInfo ) );
   190     
   200 
   191     if( plugin )
   201     if( plugin )
   192         {                             
   202         {
   193         __PRINTS( "*** CAiPluginFactory::CreatePlugin: Done - Failed to Load Plug-in: KErrAlreadyExists ***" );
   203         __PRINTS( "*** CAiPluginFactory::CreatePlugin: Done -\
       
   204                        Failed to Load Plug-in: KErrAlreadyExists ***" );
   194         
   205         
   195         return KErrAlreadyExists;
   206         return KErrAlreadyExists;
   196         }
   207         }
   197     
   208 
   198     TInt err( KErrNone );
   209     TInt err( KErrNone );
   199     
   210 
   200     TRAP( err, CreatePluginL( aPublisherInfo ) );
   211     TRAP( err, CreatePluginL( aPublisherInfo ) );
   201     
   212     
   202     __PRINTS( "*** CAiPluginFactory::CreatePlugin: Done - Load Plug-in ***" );
   213     __PRINTS( "*** CAiPluginFactory::CreatePlugin: Done - Load Plug-in ***" );
   203     
   214 
   204     return err;    
   215     return err;
   205     }
   216     }
   206         
   217 
   207 // ----------------------------------------------------------------------------
   218 // ----------------------------------------------------------------------------
   208 // CAiPluginFactory::DestroyPlugin()
   219 // CAiPluginFactory::DestroyPlugin()
   209 //
   220 //
   210 // ----------------------------------------------------------------------------
   221 // ----------------------------------------------------------------------------
   211 //
   222 //