harvester/blacklistclient/src/blacklistclient.cpp
branchRCL_3
changeset 15 3cebc1a84278
parent 1 acef663c1218
child 17 50de4d668bb6
equal deleted inserted replaced
14:646a02f170b9 15:3cebc1a84278
    35 // RBlacklistClient::~RBlacklistClient()
    35 // RBlacklistClient::~RBlacklistClient()
    36 // ---------------------------------------------------------------------------
    36 // ---------------------------------------------------------------------------
    37 //
    37 //
    38 EXPORT_C RBlacklistClient::~RBlacklistClient()
    38 EXPORT_C RBlacklistClient::~RBlacklistClient()
    39     {
    39     {
    40     WRITELOG( "CBlacklistServer::~RBlacklistClient - begin" );
    40     WRITELOG( "RBlacklistClient::~RBlacklistClient - begin" );
    41     
    41     
    42     RSessionBase::Close(); 
    42     RSessionBase::Close(); 
    43     iBlacklistMemoryTable.ResetAndDestroy();
    43     iBlacklistMemoryTable.ResetAndDestroy();
    44     iBlacklistMemoryTable.Close();
    44     iBlacklistMemoryTable.Close();
    45 	iBlacklistChunk.Close();
    45 	iBlacklistChunk.Close();
    46 
    46 
    47     WRITELOG( "CBlacklistServer::~RBlacklistClient - end" );
    47     WRITELOG( "RBlacklistClient::~RBlacklistClient - end" );
    48     }
    48     }
    49 
    49 
    50 // ---------------------------------------------------------------------------
    50 // ---------------------------------------------------------------------------
    51 // RBlacklistClient::Connect()
    51 // RBlacklistClient::Connect()
    52 // ---------------------------------------------------------------------------
    52 // ---------------------------------------------------------------------------
    53 //
    53 //
    54 EXPORT_C TInt RBlacklistClient::Connect()
    54 EXPORT_C TInt RBlacklistClient::Connect()
    55     {
    55     {
    56     WRITELOG( "CBlacklistServer::Connect - begin" );
    56     WRITELOG( "RBlacklistClient::Connect - begin" );
    57 
    57 
    58     TInt retryCount = 2;
    58     TInt retryCount = 2;
    59     TInt error = KErrNone;
    59     TInt error = KErrNone;
    60     
    60     
    61     iSessionOk = EFalse;
    61     iSessionOk = EFalse;
    79             }
    79             }
    80        
    80        
    81         --retryCount;
    81         --retryCount;
    82         }
    82         }
    83     
    83     
    84     WRITELOG( "CBlacklistServer::Connect - end" );
    84     WRITELOG( "RBlacklistClient::Connect - end" );
    85 
    85 
    86     return error;
    86     return error;
    87     }
    87     }
    88 
    88 
    89 // ---------------------------------------------------------------------------
    89 // ---------------------------------------------------------------------------
    90 // RBlacklistClient::Version()
    90 // RBlacklistClient::Version()
    91 // ---------------------------------------------------------------------------
    91 // ---------------------------------------------------------------------------
    92 //
    92 //
    93 TVersion RBlacklistClient::Version() const
    93 TVersion RBlacklistClient::Version() const
    94     {
    94     {
    95     WRITELOG( "CBlacklistServer::Version - begin" );
    95     WRITELOG( "RBlacklistClient::Version - begin" );
    96 
    96 
    97     return TVersion( KBlacklistServerMajorVersion, KBlacklistServerMinorVersion,
    97     return TVersion( KBlacklistServerMajorVersion, KBlacklistServerMinorVersion,
    98     	KBlacklistServerBuildVersion );
    98     	KBlacklistServerBuildVersion );
    99 
    99 
   100     }
   100     }
   103 // RBlacklistClient::StartServer()
   103 // RBlacklistClient::StartServer()
   104 // ---------------------------------------------------------------------------
   104 // ---------------------------------------------------------------------------
   105 //
   105 //
   106 TInt RBlacklistClient::StartServer()
   106 TInt RBlacklistClient::StartServer()
   107     {
   107     {
   108     WRITELOG( "CBlacklistServer::CustomSecurityCheckL - begin" );
   108     WRITELOG( "RBlacklistClient::CustomSecurityCheckL - begin" );
   109 
   109 
   110     const TUidType serverUid = ( KNullUid, KNullUid, KUidKBlacklistServer );
   110     const TUidType serverUid = ( KNullUid, KNullUid, KUidKBlacklistServer );
   111 
   111 
   112     RProcess server;
   112     RProcess server;
   113     TInt error = server.Create( KBlacklistServerExe, KNullDesC );
   113     TInt error = server.Create( KBlacklistServerExe, KNullDesC );
   130 
   130 
   131     User::WaitForRequest( status );
   131     User::WaitForRequest( status );
   132     error = server.ExitType() == EExitPanic ? KErrGeneral : status.Int();
   132     error = server.ExitType() == EExitPanic ? KErrGeneral : status.Int();
   133     server.Close();
   133     server.Close();
   134 
   134 
   135     WRITELOG( "CBlacklistServer::Version - end" );
   135     WRITELOG( "RBlacklistClient::Version - end" );
   136 
   136 
   137     return error;
   137     return error;
   138     }
   138     }
   139 
   139 
   140 // ---------------------------------------------------------------------------
   140 // ---------------------------------------------------------------------------
   141 // RBlacklistClient::RemoveFromDBL()
   141 // RBlacklistClient::RemoveFromDBL()
   142 // ---------------------------------------------------------------------------
   142 // ---------------------------------------------------------------------------
   143 //
   143 //
   144 void RBlacklistClient::RemoveFromDBL( const TDesC& aUri, TUint32 aMediaId ) const
   144 void RBlacklistClient::RemoveFromDBL( const TDesC& aUri, TUint32 aMediaId ) const
   145     {
   145     {
   146     WRITELOG( "CBlacklistServer::RemoveFromDBL - begin" );
   146     WRITELOG( "RBlacklistClient::RemoveFromDBL - begin" );
   147 
   147 
   148     TPckgBuf<TUint32> mediaIdPckg( aMediaId );
   148     TPckgBuf<TUint32> mediaIdPckg( aMediaId );
   149     
   149     
   150     TIpcArgs ipcArgs;
   150     TIpcArgs ipcArgs;
   151     ipcArgs.Set( 1, &aUri );
   151     ipcArgs.Set( 1, &aUri );
   152     ipcArgs.Set( 2, &mediaIdPckg );
   152     ipcArgs.Set( 2, &mediaIdPckg );
   153  
   153  
   154     const TInt err = SendReceive( EBlacklistRemoveFromDB, ipcArgs );
   154     const TInt err = SendReceive( EBlacklistRemoveFromDB, ipcArgs );
   155     User::LeaveIfError( err );
   155     User::LeaveIfError( err );
   156 
   156 
   157     WRITELOG( "CBlacklistServer::RemoveFromDBL - end" );
   157     WRITELOG( "RBlacklistClient::RemoveFromDBL - end" );
   158     }
   158     }
   159 
   159 
   160 // ---------------------------------------------------------------------------
   160 // ---------------------------------------------------------------------------
   161 // RBlacklistClient::DoLoadBlacklistL()
   161 // RBlacklistClient::DoLoadBlacklistL()
   162 // ---------------------------------------------------------------------------
   162 // ---------------------------------------------------------------------------
   163 //
   163 //
   164 void RBlacklistClient::DoLoadBlacklistL( TInt& aHandle ) const
   164 void RBlacklistClient::DoLoadBlacklistL( TInt& aHandle ) const
   165     {
   165     {
   166     WRITELOG( "CBlacklistServer::DoLoadBlacklistL - begin" );
   166     WRITELOG( "RBlacklistClient::DoLoadBlacklistL - begin" );
   167 
   167 
   168     TPckgBuf<TInt> handleBuf;
   168     TPckgBuf<TInt> handleBuf;
   169     TIpcArgs ipcArgs;
   169     TIpcArgs ipcArgs;
   170     ipcArgs.Set( 1, &handleBuf );
   170     ipcArgs.Set( 1, &handleBuf );
   171     const TInt err = SendReceive( EGetBlacklistData, ipcArgs );
   171     const TInt err = SendReceive( EGetBlacklistData, ipcArgs );
   172     User::LeaveIfError( err );
   172     User::LeaveIfError( err );
   173     aHandle = handleBuf();
   173     aHandle = handleBuf();
   174 
   174 
   175     WRITELOG( "CBlacklistServer::DoLoadBlacklistL - end" );
   175     WRITELOG( "RBlacklistClient::DoLoadBlacklistL - end" );
   176     } 
   176     } 
   177 
   177 
   178 // ---------------------------------------------------------------------------
   178 // ---------------------------------------------------------------------------
   179 // RBlacklistClient::LoadBlacklistL()
   179 // RBlacklistClient::LoadBlacklistL()
   180 // ---------------------------------------------------------------------------
   180 // ---------------------------------------------------------------------------
   181 //
   181 //
   182 EXPORT_C void RBlacklistClient::LoadBlacklistL()
   182 EXPORT_C void RBlacklistClient::LoadBlacklistL()
   183     {
   183     {
   184     WRITELOG( "CBlacklistServer::LoadBlacklistL - begin" );
   184     WRITELOG( "RBlacklistClient::LoadBlacklistL - begin" );
   185 
   185 
   186     if ( !iSessionOk )
   186     if ( !iSessionOk )
   187         {
   187         {
   188         return;
   188         return;
   189         }
   189         }
   219 	
   219 	
   220 	TInt64 modified ( 0 );
   220 	TInt64 modified ( 0 );
   221 	TUint32 mediaId ( 0 );
   221 	TUint32 mediaId ( 0 );
   222     HBufC* uri = NULL;
   222     HBufC* uri = NULL;
   223     
   223     
   224     for( TInt i( 0 ); i < listCount; i++ )
   224     for( TInt i = listCount - 1; i >=0; i-- )
   225         {
   225         {
   226         // get modified and media id
   226         // get modified and media id
   227 	    buffer->ReceiveL( modified );
   227 	    buffer->ReceiveL( modified );
   228 	    buffer->ReceiveL( mediaId );
   228 	    buffer->ReceiveL( mediaId );
   229         
   229         
   236         }
   236         }
   237 	
   237 	
   238 	CleanupStack::PopAndDestroy( buffer );
   238 	CleanupStack::PopAndDestroy( buffer );
   239 	CleanupStack::PopAndDestroy( name );
   239 	CleanupStack::PopAndDestroy( name );
   240 
   240 
   241     WRITELOG( "CBlacklistServer::LoadBlacklistL - end" );
   241     WRITELOG( "RBlacklistClient::LoadBlacklistL - end" );
   242     }
   242     }
   243 
   243 
   244 // ---------------------------------------------------------------------------
   244 // ---------------------------------------------------------------------------
   245 // RBlacklistClient::AddToMemoryTableL()
   245 // RBlacklistClient::AddToMemoryTableL()
   246 // ---------------------------------------------------------------------------
   246 // ---------------------------------------------------------------------------
   247 //
   247 //
   248 void RBlacklistClient::AddToMemoryTableL( const TInt64& aModified,
   248 void RBlacklistClient::AddToMemoryTableL( const TInt64& aModified,
   249         const TDesC& aUri, const TUint32 aMediaId )
   249         const TDesC& aUri, const TUint32 aMediaId )
   250     {
   250     {
   251     WRITELOG( "CBlacklistServer::AddToMemoryTableL - begin" );
   251     WRITELOG( "RBlacklistClient::AddToMemoryTableL - begin" );
   252 
   252 
   253     CBlacklistItem* item = CBlacklistItem::NewL( aModified, aUri, aMediaId );
   253     CBlacklistItem* item = CBlacklistItem::NewL( aModified, aUri, aMediaId );
   254     
   254     
   255     const TInt err = iBlacklistMemoryTable.Append( item ); // ownership is transferred
   255     const TInt err = iBlacklistMemoryTable.Append( item ); // ownership is transferred
   256     if ( err != KErrNone )
   256     if ( err != KErrNone )
   257         {
   257         {
   258         delete item;
   258         delete item;
   259         }
   259         }
   260 
   260 
   261 
   261 
   262     WRITELOG( "CBlacklistServer::AddToMemoryTableL - end" );
   262     WRITELOG( "RBlacklistClient::AddToMemoryTableL - end" );
   263     }
   263     }
   264 
   264 
   265 // ---------------------------------------------------------------------------
   265 // ---------------------------------------------------------------------------
   266 // RBlacklistClient::RemoveFromMemoryTableL()
   266 // RBlacklistClient::RemoveFromMemoryTableL()
   267 // ---------------------------------------------------------------------------
   267 // ---------------------------------------------------------------------------
   268 //
   268 //
   269 void RBlacklistClient::RemoveFromMemoryTableL( const TDesC& aUri, const TUint32 aMediaId )
   269 void RBlacklistClient::RemoveFromMemoryTableL( const TDesC& aUri, const TUint32 aMediaId )
   270     {
   270     {
   271     WRITELOG( "CBlacklistServer::RemoveFromMemoryTableL - begin" );
   271     WRITELOG( "RBlacklistClient::RemoveFromMemoryTableL - begin" );
   272 
   272 
   273     const TInt index = GetListIndex( aUri, aMediaId );
   273     const TInt index = GetListIndex( aUri, aMediaId );
   274     if ( index >= 0 )
   274     if ( index >= 0 )
   275         {
   275         {
   276         CBlacklistItem* item = iBlacklistMemoryTable[index];
   276         CBlacklistItem* item = iBlacklistMemoryTable[index];
   277         delete item;
   277         delete item;
   278         iBlacklistMemoryTable.Remove( index );
   278         iBlacklistMemoryTable.Remove( index );
   279         }
   279         }
   280 
   280 
   281     WRITELOG( "CBlacklistServer::RemoveFromMemoryTableL - end" );
   281     WRITELOG( "RBlacklistClient::RemoveFromMemoryTableL - end" );
   282     }
   282     }
   283  
   283  
   284 
   284 
   285 // ---------------------------------------------------------------------------
   285 // ---------------------------------------------------------------------------
   286 // RBlacklistClient::IsBlacklistedL()
   286 // RBlacklistClient::IsBlacklistedL()
   287 // ---------------------------------------------------------------------------
   287 // ---------------------------------------------------------------------------
   288 //
   288 //
   289 EXPORT_C TBool RBlacklistClient::IsBlacklistedL( const TDesC& aUri, TUint32 aMediaId, TTime aLastModifiedTime )
   289 EXPORT_C TBool RBlacklistClient::IsBlacklistedL( const TDesC& aUri, TUint32 aMediaId, TTime aLastModifiedTime )
   290     {
   290     {
   291     WRITELOG( "CBlacklistServer::IsBlacklistedL - begin" );
   291     WRITELOG( "RBlacklistClient::IsBlacklistedL - begin" );
   292 
   292 
   293     const TInt index = GetListIndex( aUri, aMediaId );
   293     const TInt index = GetListIndex( aUri, aMediaId );
   294     if ( index >= 0 )
   294     if ( index >= 0 )
   295         {
   295         {
   296         TInt64 modified( 0 );
   296         TInt64 modified( 0 );
   298         
   298         
   299         if( modified > 0 )
   299         if( modified > 0 )
   300             {
   300             {
   301             if ( modified == aLastModifiedTime.Int64() )
   301             if ( modified == aLastModifiedTime.Int64() )
   302                 {
   302                 {
   303                 WRITELOG( "CBlacklistServer::IsBlacklistedL - file is blacklisted, modification time is different" );
   303                 WRITELOG( "RBlacklistClient::IsBlacklistedL - file is blacklisted, modification time is different" );
   304                 return ETrue;
   304                 return ETrue;
   305                 }
   305                 }
   306             else
   306             else
   307                 {
   307                 {
   308                 // file might be different, so remove from blacklist
   308                 // file might be different, so remove from blacklist
   313                 RemoveFromDBL( aUri, aMediaId );
   313                 RemoveFromDBL( aUri, aMediaId );
   314                 }
   314                 }
   315             }
   315             }
   316         else
   316         else
   317             {
   317             {
   318             WRITELOG( "CBlacklistServer::IsBlacklistedL - file is blacklisted, no modification time found" );
   318             WRITELOG( "RBlacklistClient::IsBlacklistedL - file is blacklisted, no modification time found" );
   319             return ETrue;
   319             return ETrue;
   320             }
   320             }
   321         
   321         
   322         }
   322         }
   323    
   323    
   324     WRITELOG( "CBlacklistServer::IsBlacklistedL - end" );
   324     WRITELOG( "RBlacklistClient::IsBlacklistedL - end" );
   325     return EFalse;
   325     return EFalse;
   326     }
   326     }
   327 
   327 
   328 // ---------------------------------------------------------------------------
   328 // ---------------------------------------------------------------------------
   329 // RBlacklistClient::GetListIndex()
   329 // RBlacklistClient::GetListIndex()
   330 // ---------------------------------------------------------------------------
   330 // ---------------------------------------------------------------------------
   331 //
   331 //
   332 TInt RBlacklistClient::GetListIndex( const TDesC& aUri, TUint32 aMediaId )
   332 TInt RBlacklistClient::GetListIndex( const TDesC& aUri, TUint32 aMediaId )
   333     {
   333     {
   334     WRITELOG( "CBlacklistServer::GetListIndex - begin" );
   334     WRITELOG( "RBlacklistClient::GetListIndex - begin" );
   335 
   335 
   336     for ( TInt i( 0 ); i < iBlacklistMemoryTable.Count(); ++i )
   336     for ( TInt i( 0 ); i < iBlacklistMemoryTable.Count(); ++i )
   337         {
   337         {
   338         if ( iBlacklistMemoryTable[i]->Compare( aUri, aMediaId ) )
   338         if ( iBlacklistMemoryTable[i]->Compare( aUri, aMediaId ) )
   339             {
   339             {
   340             return i;
   340             return i;
   341             }
   341             }
   342         }
   342         }
   343 
   343 
   344     WRITELOG( "CBlacklistServer::GetListIndex - end" );
   344     WRITELOG( "RBlacklistClient::GetListIndex - end" );
   345 
   345 
   346     return KErrNotFound;
   346     return KErrNotFound;
   347     }
   347     }
   348 
   348 
   349 
   349 
   351 // RBlacklistClient::AddL()
   351 // RBlacklistClient::AddL()
   352 // ---------------------------------------------------------------------------
   352 // ---------------------------------------------------------------------------
   353 //
   353 //
   354 EXPORT_C void RBlacklistClient::AddL( const TDesC& aUri, TUint32 aMediaId, TTime aLastModifiedTime ) const
   354 EXPORT_C void RBlacklistClient::AddL( const TDesC& aUri, TUint32 aMediaId, TTime aLastModifiedTime ) const
   355     {
   355     {
   356     WRITELOG( "CBlacklistServer::AddL - begin" );
   356     WRITELOG( "RBlacklistClient::AddL - begin" );
   357 
   357 
   358     TPckgC<TUint32> mediaIdPckg( aMediaId );
   358     TPckgC<TUint32> mediaIdPckg( aMediaId );
   359     TPckgC<TTime> lastModifiedTimePckg( aLastModifiedTime );
   359     TPckgC<TTime> lastModifiedTimePckg( aLastModifiedTime );
   360 
   360 
   361 	TIpcArgs ipcArgs;
   361 	TIpcArgs ipcArgs;
   364     ipcArgs.Set( 2, &lastModifiedTimePckg );
   364     ipcArgs.Set( 2, &lastModifiedTimePckg );
   365  
   365  
   366     const TInt err = SendReceive( EBlacklistAdd, ipcArgs );
   366     const TInt err = SendReceive( EBlacklistAdd, ipcArgs );
   367     User::LeaveIfError( err );
   367     User::LeaveIfError( err );
   368 
   368 
   369     WRITELOG( "CBlacklistServer::AddL - end" );
   369     WRITELOG( "RBlacklistClient::AddL - end" );
   370     }
   370     }
   371 
   371 
   372 
   372 
   373 // ---------------------------------------------------------------------------
   373 // ---------------------------------------------------------------------------
   374 // RBlacklistClient::RemoveL()
   374 // RBlacklistClient::RemoveL()
   375 // ---------------------------------------------------------------------------
   375 // ---------------------------------------------------------------------------
   376 //
   376 //
   377 EXPORT_C void RBlacklistClient::RemoveL( const TDesC& aUri, TUint32 aMediaId ) const
   377 EXPORT_C void RBlacklistClient::RemoveL( const TDesC& aUri, TUint32 aMediaId ) const
   378     {
   378     {
   379     WRITELOG( "CBlacklistServer::RemoveL - begin" );
   379     WRITELOG( "RBlacklistClient::RemoveL - begin" );
   380 
   380 
   381     TPckgBuf<TUint32> mediaIdPckg( aMediaId );
   381     TPckgBuf<TUint32> mediaIdPckg( aMediaId );
   382     
   382     
   383     TIpcArgs ipcArgs;
   383     TIpcArgs ipcArgs;
   384     ipcArgs.Set( 1, &aUri );
   384     ipcArgs.Set( 1, &aUri );
   385     ipcArgs.Set( 2, &mediaIdPckg );
   385     ipcArgs.Set( 2, &mediaIdPckg );
   386  
   386  
   387     const TInt err = SendReceive( EBlacklistRemove, ipcArgs );
   387     const TInt err = SendReceive( EBlacklistRemove, ipcArgs );
   388     User::LeaveIfError( err );
   388     User::LeaveIfError( err );
   389 
   389 
   390     WRITELOG( "CBlacklistServer::RemoveL - end" );
   390     WRITELOG( "RBlacklistClient::RemoveL - end" );
   391     }
   391     }
   392 
   392 
   393 // ---------------------------------------------------------------------------
   393 // ---------------------------------------------------------------------------
   394 // RBlacklistClient::CloseDBL()
   394 // RBlacklistClient::CloseDBL()
   395 // ---------------------------------------------------------------------------
   395 // ---------------------------------------------------------------------------
   396 //
   396 //
   397 EXPORT_C void RBlacklistClient::CloseDBL()
   397 EXPORT_C void RBlacklistClient::CloseDBL()
   398     {
   398     {
   399     WRITELOG( "CBlacklistServer::CloseDBL - begin" );
   399     WRITELOG( "RBlacklistClient::CloseDBL - begin" );
   400 
   400 
   401     if ( !iSessionOk )
   401     if ( !iSessionOk )
   402         {
   402         {
   403         User::Leave( KErrDisconnected );
   403         User::Leave( KErrDisconnected );
   404         }
   404         }
   405     else
   405     else
   406         {
   406         {
   407         Send( EBlacklistCloseDB );
   407         Send( EBlacklistCloseDB );
   408         }
   408         }
   409 
   409 
   410     WRITELOG( "CBlacklistServer::CloseDBL - end" );
   410     WRITELOG( "RBlacklistClient::CloseDBL - end" );
   411     }
   411     }
   412 
   412 
   413 
   413 
   414 // End of File
   414 // End of File