mmappcomponents/harvester/filehandler/src/mpxharvesterdb.cpp
changeset 27 cbb1bfb7ebfb
parent 25 d881023c13eb
child 40 4a1905d205a2
equal deleted inserted replaced
25:d881023c13eb 27:cbb1bfb7ebfb
    77 // Open a database
    77 // Open a database
    78 // ---------------------------------------------------------------------------
    78 // ---------------------------------------------------------------------------
    79 //
    79 //
    80 TInt CMPXHarvesterDB::OpenL()
    80 TInt CMPXHarvesterDB::OpenL()
    81     {
    81     {
    82     MPX_FUNC("CMPXHarvesterDB::OpenL");
    82     MPX_DEBUG1("-->CMPXHarvesterDB::OpenL");
    83 
    83 
    84     // There is no need to re-open if it was already open
    84     // There is no need to re-open if it was already open
    85     if( iDBOpen )
    85     if( iDBOpen )
    86         {
    86         {
       
    87         MPX_DEBUG1("<--CMPXHarvesterDB::OpenL rtn=0 (already open)");
    87         return KErrNone;
    88         return KErrNone;
    88         }
    89         }
    89 
    90 
    90     TInt rtn( KErrNone );
    91     TInt rtn( KErrNone );
    91     TFileName fileName = GenerateDbName();
    92     TFileName fileName = GenerateDbName();
   129     TUint uniqueId(0);
   130     TUint uniqueId(0);
   130     TRAPD( idErr, uniqueId = UniqueIdL() );
   131     TRAPD( idErr, uniqueId = UniqueIdL() );
   131     if( idErr != KErrNone )
   132     if( idErr != KErrNone )
   132         {
   133         {
   133         // Delete the database because this is not readable
   134         // Delete the database because this is not readable
       
   135         MPX_DEBUG2("CMPXHarvesterDB::OpenL -- Deleting unreadable DB %i", idErr);
   134         Close();
   136         Close();
   135         User::LeaveIfError(DeleteDatabase());
   137         User::LeaveIfError(DeleteDatabase());
   136         rtn = KErrCorrupt;
   138         rtn = KErrCorrupt;
   137         }
   139         }
   138     else if( volId != uniqueId )
   140     else if( volId != uniqueId )
   142         MPX_DEBUG1("CMPXHarvesterDB::OpenL unmatched unique ID");
   144         MPX_DEBUG1("CMPXHarvesterDB::OpenL unmatched unique ID");
   143         Close();
   145         Close();
   144         User::LeaveIfError(DeleteDatabase());
   146         User::LeaveIfError(DeleteDatabase());
   145         rtn = OpenL();
   147         rtn = OpenL();
   146         }
   148         }
   147 
   149     
       
   150     MPX_DEBUG2("<--CMPXHarvesterDB::OpenL rtn=%d", rtn);
   148     return rtn;
   151     return rtn;
   149     }
   152     }
   150 
   153 
   151 // ---------------------------------------------------------------------------
   154 // ---------------------------------------------------------------------------
   152 // Close a database
   155 // Close a database
   292         // Unable to open db, so try to re-create
   295         // Unable to open db, so try to re-create
   293         //
   296         //
   294         TRAPD(err, iDatabase->OpenL( iStore, iStore->Root() ) );
   297         TRAPD(err, iDatabase->OpenL( iStore, iStore->Root() ) );
   295         if( err != KErrNone )
   298         if( err != KErrNone )
   296             {
   299             {
       
   300             MPX_DEBUG2("CMPXHarvesterDB::OpenDBL RDbStoreDatabase::OpenL error %d", err);
   297             delete iDatabase;
   301             delete iDatabase;
   298             iDatabase = NULL;
   302             iDatabase = NULL;
   299             CreateDBL();
   303             CreateDBL();
   300             rtn = KErrCorrupt;
   304             rtn = KErrCorrupt;
   301             }
   305             }