diff -r 51a74ef9ed63 -r ae94777fff8f Symbian3/SDK/Source/GUID-F14A2252-7D7B-5631-9796-3C9AC54014E7.dita --- a/Symbian3/SDK/Source/GUID-F14A2252-7D7B-5631-9796-3C9AC54014E7.dita Wed Mar 31 11:11:55 2010 +0100 +++ b/Symbian3/SDK/Source/GUID-F14A2252-7D7B-5631-9796-3C9AC54014E7.dita Fri Jun 11 12:39:03 2010 +0100 @@ -1,86 +1,86 @@ - - - - - -Repetitive -Search -

When a new search-sort asynchronous operation is successful, a unique ID -is returned to the client, which is referred as query ID. This query ID can -be used to repeat the same search-sort query.

-
Required background

To do a repetitive search operation, -that is searching messages using a query ID, you must first get the query -ID of that search operation.

-
Introduction

Every new search-sort asynchronous -query that is successful is assigned with a unique 32 bit integer value, which -is referred to as a query ID. This query ID is -used to initiate the same search-sort operation (initiate a repetitive query) -in future. The query ID can be retrieved using the CMsvSearchSortOperation::GetQueryIdL() function.

Marking

When the search-sort cache reaches its maximum size the message server -deletes the least recently used query to accommodate a new one. However, there -may be some queries and their results which the client wants to keep in the -cache, irrespective of how frequently they are being used.

Such queries -can be marked by the client to indicate to the Messaging server that the query -should not be disposed from the search-sort cache when the cache is full. -Marked queries are considered for deletion only if all of the remaining queries -are also marked.

To mark a query ID, use the TBool aMarkQuery parameter -in the CMsvSearchSortOperation::RequestL() function in -your client application.

IMPORT_C void RequestL (CMsvSearchSortQuery* aQuery, TBool aMarkQuery, TRequestStatus& aQueryStatus, TInt aIterator=0)

Unmarking

To unmark a query ID, use the CMsvSearchSortOperation::UnmarkQuery() -function in your client application.

IMPORT_C TInt UnmarkQuery (const TInt aQueryId ) - Repetitive search request process - -
-
Procedure
    -
  1. To get a query ID, complete -the steps from 1 to 10 in New -Search.

  2. -
  3. Get the query ID from -step 10 and start the search operation using the query ID as the search parameter.

  4. -
void CSearchsortExample::SeachSortRequestByQueryIdL() - { - //1. Create a session with message server - // NOTE: CMsvSession::OpenSyncL requires a &MMsvObserver parameter. This example assumes that - // CSearchSortExample implements MMsvObserver. - CMsvSession* session = CMsvSession::OpenSyncL(*this); - CleanupStack::PushL(session); - - //2. Create an instance of CMsvSearchSortOperation to perform a - //search-sort operation - CMSvSearchSortOperation* search = CMSvSearchSortOperation::NewL(*session); - CleanupStack::PushL(search); - - //3. Start the search operation using the query ID as the search parameter - TRequestStatus aStatus; - search->RequestL(iQueryId, aStatus); - - //4. Wait for the result - User::WaitForRequest(aStatus); - - //5. Create an array to hold Search-sort results - RArray<TMsvId> resultArray; - - //6. Retrieve the results of the search. The format for the results should be the same as - // what is configured in step 2. Else, will leave with the KErrMsvInvalidResultRequest - // error - TInt err = search->GetResultsL(resultArray); - if(ret == KErrNone) - { - TInt count = resultArray.Count(); - } - - //7. Store the query ID. This ID can be used in repetitive search queries. - iQueryId = search->GetQueryIdL(); - - CleanupStack::PopAndDestroy(2); //search, session - }
-Search-sort example

SearchSortExample: -Enhanced Search and Sort for Message Store

-
See also

For conceptual information on search-sort -APIs, see Search-Sort -Introduction.

+ + + + + +Repetitive +Search +

When a new search-sort asynchronous operation is successful, a unique ID +is returned to the client, which is referred as query ID. This query ID can +be used to repeat the same search-sort query.

+
Required background

To do a repetitive search operation, +that is searching messages using a query ID, you must first get the query +ID of that search operation.

+
Introduction

Every new search-sort asynchronous +query that is successful is assigned with a unique 32 bit integer value, which +is referred to as a query ID. This query ID is +used to initiate the same search-sort operation (initiate a repetitive query) +in future. The query ID can be retrieved using the CMsvSearchSortOperation::GetQueryIdL() function.

Marking

When the search-sort cache reaches its maximum size the message server +deletes the least recently used query to accommodate a new one. However, there +may be some queries and their results which the client wants to keep in the +cache, irrespective of how frequently they are being used.

Such queries +can be marked by the client to indicate to the Messaging server that the query +should not be disposed from the search-sort cache when the cache is full. +Marked queries are considered for deletion only if all of the remaining queries +are also marked.

To mark a query ID, use the TBool aMarkQuery parameter +in the CMsvSearchSortOperation::RequestL() function in +your client application.

IMPORT_C void RequestL (CMsvSearchSortQuery* aQuery, TBool aMarkQuery, TRequestStatus& aQueryStatus, TInt aIterator=0)

Unmarking

To unmark a query ID, use the CMsvSearchSortOperation::UnmarkQuery() +function in your client application.

IMPORT_C TInt UnmarkQuery (const TInt aQueryId ) + Repetitive search request process + +
+
Procedure
    +
  1. To get a query ID, complete +the steps from 1 to 10 in New +Search.

  2. +
  3. Get the query ID from +step 10 and start the search operation using the query ID as the search parameter.

  4. +
void CSearchsortExample::SeachSortRequestByQueryIdL() + { + //1. Create a session with message server + // NOTE: CMsvSession::OpenSyncL requires a &MMsvObserver parameter. This example assumes that + // CSearchSortExample implements MMsvObserver. + CMsvSession* session = CMsvSession::OpenSyncL(*this); + CleanupStack::PushL(session); + + //2. Create an instance of CMsvSearchSortOperation to perform a + //search-sort operation + CMSvSearchSortOperation* search = CMSvSearchSortOperation::NewL(*session); + CleanupStack::PushL(search); + + //3. Start the search operation using the query ID as the search parameter + TRequestStatus aStatus; + search->RequestL(iQueryId, aStatus); + + //4. Wait for the result + User::WaitForRequest(aStatus); + + //5. Create an array to hold Search-sort results + RArray<TMsvId> resultArray; + + //6. Retrieve the results of the search. The format for the results should be the same as + // what is configured in step 2. Else, will leave with the KErrMsvInvalidResultRequest + // error + TInt err = search->GetResultsL(resultArray); + if(ret == KErrNone) + { + TInt count = resultArray.Count(); + } + + //7. Store the query ID. This ID can be used in repetitive search queries. + iQueryId = search->GetQueryIdL(); + + CleanupStack::PopAndDestroy(2); //search, session + }
+Search-sort example

SearchSortExample: +Enhanced Search and Sort for Message Store

+
See also

For conceptual information on search-sort +APIs, see Search-Sort +Introduction.

\ No newline at end of file