qtcontactsmobility/plugins/contacts/symbian/src/filtering/cntsymbiansrvconnection.cpp
--- a/qtcontactsmobility/plugins/contacts/symbian/src/filtering/cntsymbiansrvconnection.cpp Fri Jun 11 13:29:23 2010 +0300
+++ b/qtcontactsmobility/plugins/contacts/symbian/src/filtering/cntsymbiansrvconnection.cpp Wed Jun 23 18:02:44 2010 +0300
@@ -51,7 +51,7 @@
// Constants
// To be removed. Should be defined in a header file
-#define KCntSearchResultList 99
+
#define KCntOpenDataBase 100 // = KCapabilityReadUserData
_LIT(KCntServerExe,"CNTSRV.EXE"); // Name of the exe for the Contacts server.
@@ -101,12 +101,30 @@
{
QList<QContactLocalId> list;
TPtrC queryPtr(reinterpret_cast<const TUint16*>(sqlQuery.utf16()));
- TRAPD(err, list = searchContactIdsL(queryPtr));
+ TRAPD(err, list = searchContactIdsL(queryPtr, CntSymbianSrvConnection::CntSearchResultList));
CntSymbianTransformError::transformError(err, error);
return list;
}
/*!
+ * Query the SQL database
+ *
+ * \a sqlQuery An SQL query
+ * a QueryType query type
+ * \a error On return, contains the possible error.
+ * \return the list of matched contact ids
+ */
+QList<QContactLocalId> CntSymbianSrvConnection::searchOnServer(const QString& sqlQuery,
+ QueryType aQueryType,
+ QContactManager::Error* error)
+{
+ QList<QContactLocalId> list;
+ TPtrC queryPtr(reinterpret_cast<const TUint16*>(sqlQuery.utf16()));
+ TRAPD(err, list = searchContactIdsL(queryPtr, aQueryType));
+ CntSymbianTransformError::transformError(err, error);
+ return list;
+}
+/*!
* Fetches all contact names from the database. If there are more than 3000 contacts,
* only the first (by id) 3000 contacts will be fetched due to RAM restrictions.
*
@@ -153,9 +171,9 @@
* \a aSqlQuery An SQL query
* \return the list of matched contact ids
*/
-QList<QContactLocalId> CntSymbianSrvConnection::searchContactIdsL(const TDesC& aSqlQuery)
+QList<QContactLocalId> CntSymbianSrvConnection::searchContactIdsL(const TDesC& aSqlQuery, QueryType aQueryType)
{
- readContactsToBufferL(aSqlQuery);
+ readContactsToBufferL(aSqlQuery, aQueryType);
RBufReadStream readStream;
QList<QContactLocalId> list;
@@ -177,7 +195,7 @@
*/
QList<QContact> CntSymbianSrvConnection::searchContactNamesL(const TDesC& aSqlQuery)
{
- readContactsToBufferL(aSqlQuery);
+ readContactsToBufferL(aSqlQuery, CntSymbianSrvConnection::CntSearchResultList);
RBufReadStream readStream;
QList<QContact> contacts;
@@ -230,7 +248,7 @@
* \a id database id of the contact
* \return the list of matched contact names
*/
-void CntSymbianSrvConnection::readContactsToBufferL(const TDesC& sqlQuery)
+void CntSymbianSrvConnection::readContactsToBufferL(const TDesC& sqlQuery, QueryType aQueryType)
{
// Initialize connection if it is not initialized yet.
if (!m_isInitialized) {
@@ -242,12 +260,12 @@
TIpcArgs args;
args.Set(0, &GetReceivingBufferL());
args.Set(1, &sqlQuery);
- TInt newBuffSize = SendReceive(KCntSearchResultList, args);
+ TInt newBuffSize = SendReceive(aQueryType, args);
User::LeaveIfError(newBuffSize);
if (newBuffSize > 0) {
args.Set(0, &GetReceivingBufferL(newBuffSize));
args.Set(1, &sqlQuery);
- User::LeaveIfError(SendReceive(KCntSearchResultList, args));
+ User::LeaveIfError(SendReceive(aQueryType, args));
}
}