searcher/searchclient/src/ccpixsearcher.cpp
changeset 10 afe194b6b1cd
parent 1 6f2c1c46032b
child 14 8bd192d47aaa
--- a/searcher/searchclient/src/ccpixsearcher.cpp	Wed Jun 23 19:26:19 2010 +0300
+++ b/searcher/searchclient/src/ccpixsearcher.cpp	Tue Jul 06 15:30:04 2010 +0300
@@ -157,6 +157,26 @@
 	iSubSession.SetAnalyzer( aAnalyzer, iStatus );
 	SetActive(); 
 	}
+	
+	EXPORT_C void CCPixSearcher::SetQueryParserL( TQueryParser aQueryParser ) 
+	{
+	if ( !iIsDatabaseOpen ) 	User::Leave(KErrNotReady);
+	if ( IsActive() ) 			User::Leave(KErrInUse);
+	
+	iSubSession.SetQueryParserL( aQueryParser ); 
+	}
+
+EXPORT_C void CCPixSearcher::SetQueryParserL( MCPixSetQueryParserRequestObserver& aObserver, TQueryParser aQueryParser ) 
+	{
+	if ( !iIsDatabaseOpen ) 	User::Leave(KErrNotReady);
+	if ( IsActive() ) 			User::Leave(KErrInUse);
+	
+	iObserver.iSetQueryParser = &aObserver;
+	iState = EStateSetQueryParser; 
+	iSubSession.SetQueryParser( aQueryParser, iStatus );
+	SetActive(); 
+	}
+
 
 // CCPixSearcher::FormQueryString()
 // Suport method for SearchL-methods
@@ -288,6 +308,12 @@
 			}
 			break;
 
+		case EStateSetQueryParser:
+			if ( observer.iSetQueryParser ) {
+				observer.iSetQueryParser->HandleSetQueryParserResultL( iStatus.Int() );
+			}
+			break;
+
 		case EStateSearch:
 			delete iQueryString; iQueryString = NULL; // cleanup