00001 // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). 00002 // All rights reserved. 00003 // This component and the accompanying materials are made available 00004 // under the terms of "Eclipse Public License v1.0" 00005 // which accompanies this distribution, and is available 00006 // at the URL "http://www.eclipse.org/legal/epl-v10.html". 00007 // 00008 // Initial Contributors: 00009 // Nokia Corporation - initial contribution. 00010 // 00011 // Contributors: 00012 // 00013 // Description: 00014 // Contains the definition of the CDatabase class. 00015 // 00016 #ifndef CDATABASE_H_ 00017 #define CDATABASE_H_ 00018 00019 #include <e32cons.h> 00020 #include <e32base.h> //Used for CBase. 00021 #include <d32dbms.h> //Used for RDbDatabase class. 00022 #include <s32file.h> //Used for CFileStore class. 00023 00028 class CDatabase : public CBase 00029 { 00030 public: 00031 static CDatabase* NewL(); 00032 virtual ~CDatabase(); 00033 00034 //Method to create a database. 00035 void CreateDatabaseL(); 00036 //Method to read the database. 00037 void ReadfromDatabaseL(); 00038 //Method to write into the database. 00039 void WritetoDatabaseL(); 00040 00041 //The callback function for ReaderThread associated with the CPeriodic object. 00042 static TInt PeriodicReadL(TAny* aPtr); 00043 //The periodic function to read the database. 00044 void PeriodicReadFuncL(); 00045 00046 //The callback function for WriterThread associated with the CPeriodic object. 00047 static TInt PeriodicWriteL(TAny* aPtr); 00048 //The periodic function to write into the database. 00049 void PeriodicWriteFuncL(); 00050 00051 protected: 00052 void ConstructL(); 00053 00054 private: 00055 RFs iFsSession; //file session object. 00056 RDbStoreDatabase iDatabase; //database object. 00057 TFileName iDbname; 00058 00059 //CPeriodic object to periodically read/write to the DB. 00060 CPeriodic* iPeriodic; 00061 00062 CConsoleBase* iConsole; 00063 00064 #ifdef USE_SEMAPHORE 00065 //Semaphore which schedules order of execution. 00066 RSemaphore iSemWrite; 00067 #endif 00068 }; 00069 00070 #endif /*CDATABASE_H_*/