--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/locationtriggering/ltstrategyengine/inc/lbtcelliddatabase.h Tue Feb 02 01:06:48 2010 +0200
@@ -0,0 +1,136 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: This header file describes the class that handles cell id to
+* co-ordinate mapping database
+*
+*/
+
+#ifndef LBTCELLIDDATABASE_H_
+#define LBTCELLIDDATABASE_H_
+
+#include <e32base.h>
+#include <lbsposition.h>
+/**
+ * This class provides the inteface to access Cell ID Database
+ *
+ * @since S60 v5.1
+ */
+class CLbtCellIdDatabase : public CBase
+ {
+ /**
+ * Data to store cell information
+ */
+ struct TCellIdCoordinateData
+ {
+ TInt32 iCountryCode;
+ TInt32 iNetworkID;
+ TInt32 iLac;
+ TInt32 iCellId;
+ TLocality iLocality;
+ };
+
+public: // Constructor and destructor
+ /**
+ * Constructs a new instance of CLbtCellIdDatabase.
+ *
+ * @return The new instance of CLbtCellIdDatabase.
+ * @leave System wide error code if the object creation fails.
+ */
+ static CLbtCellIdDatabase* NewL( );
+
+ /**
+ * Destructor.
+ */
+ ~CLbtCellIdDatabase();
+
+public: // Methods to for functionality
+ /**
+ * Inserts a recods which maps a perticular CGI information
+ * to co-ordinates
+ *
+ * @param[in] aCountryCode the country code of the cell
+ * @param[in] aNetworkID the network identifier
+ * @param[in] aLac the location area code
+ * @param[in] aCellId the cell identifier
+ * @param[in] aLocality the co-ordinate information which is
+ * encompassed in the cell id. As of now only the latitude
+ * longitude and horizontal accuracy values are stored from
+ * specified aCoordinate
+ *
+ * @Leave Any one of the symbian error codes. Specifically
+ * - KErrNone of the information is commited into the database
+ * - KErrNoMemory if the system does not container enough memory to
+ * process the request
+ */
+ void InsertCidLocation( TInt32 aCountryCode,
+ TInt32 aNetworkID,
+ TInt32 aLac,
+ TInt32 aCellId,
+ TLocality aLocality );
+
+ /**
+ * For a specified CGI information, retreives the location information.
+ * In the current implementation the retreived location information only
+ * contains the latitude, logitude and horizontal accuracy information
+ *
+ * @param[in] aCountryCode the country code of the cell
+ * @param[in] aNetworkID the network identifier
+ * @param[in] aLac the location area code
+ * @param[in] aCellId the cell identifier
+ * @param[out] aLocality the co-ordinate information which is
+ * encompassed in the cell id. As of now only the latitude
+ * longitude and horizontal accuracy values are stored in
+ * aLocality
+ *
+ * @return Any one of the symbian error codes. Specifically
+ * - KErrNotSupported if this method is invoked before invoking
+ * method CacheDataForNetwork()
+ * - KErrNone of the information is commited into the database
+ * - KErrNotFound if no location information is found for the database
+ * - KErrNoMemory if the system does not container enough memory to
+ * process the request
+ *
+ */
+ TInt GetLocationForCid( TInt32 aCountryCode,
+ TInt32 aNetworkID,
+ TInt32 aLac,
+ TInt32 aCellId,
+ TLocality& aLocality );
+
+private:
+ /**
+ * C++ default constructor
+ */
+ CLbtCellIdDatabase();
+
+ /**
+ * Symbian second phase contructor
+ */
+ void ConstructL();
+
+ /**
+ * Method to check if an entry is already present in the database
+ */
+ TBool IsDuplicateEntry( TInt32 aCountryCode,
+ TInt32 aNetworkID,
+ TInt32 aLac,
+ TInt32 aCellId,
+ TLocality aLocality );
+
+private://data
+ // Write request array
+ RArray<TCellIdCoordinateData> iCellIdDbArray;
+ };
+
+#endif /*LBTCELLIDDATABASE_H_*/