organizer_plat/searchfw_launcher_api/inc/searchclientsession.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 02 Feb 2010 10:12:19 +0200
changeset 0 f979ecb2b13e
permissions -rw-r--r--
Revision: 201003 Kit: 201005

/*
* Copyright (c) 2006-2007 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:  Client side session 
*
*/


#ifndef C_SEARCHCLIENTSESSION_H
#define C_SEARCHCLIENTSESSION_H

// INCLUDE FILES
#include <e32base.h>
#include <e32std.h>
#include <searchsessionobservers.h>
#include <searchcommon.h>
#include <searchresult.h>
#include <searchcontent.h>
#include <searchdocumentid.h>
#include <searchquery.h>
#include <searchcscommon.h>

// FORWARD DECLARATIONS
class CSearchClientSessionImp;


// CLASS DECLARATION
/**
  * This class represents a client side session to search framework.
  * This class is used by the Search UI.
  *
  * @lib    searchclient.lib
  */

NONSHARABLE_CLASS( CSearchClientSession ) :public CBase
    {
public:
    /**
     * Symbian OS 2 phased constructor.
     * @return - A pointer to the created instance of CSearchClientSession
     */
    IMPORT_C static CSearchClientSession* NewL();

    /**
     * Destructor
     */
    virtual ~CSearchClientSession();

    /**
     * Starts the search process. This call is asynchronous and progress is notified
     * through the observer.
     *
     *
     * @param aQuery - The search query.
     * @param aObserver - The search observer.
     * @param aThreshold - The threshold of the search (Example: maxResults, maxSearchInterval etc).
     */
    IMPORT_C void SearchL( const CSearchQuery& aQuery,
                           MSearchQueryObserver& aObserver,
                           const TSearchThreshold& aThreshold );

    IMPORT_C void CancelSearch( ) ;

    /**
     * Function returning a list of support content types that can be searched by the engine.
     *
     * @Param : aContent - On return, contains the array of supported content types. 
     * @param : aServiceId - The Type of service (Example:InDeviceSearch, ProximitySearch etc). 
     */
    IMPORT_C void GetSupportedContentL( RPointerArray<CSearchContent>& aContent,
                                        TUid aServiceId );

    /**
     * Gets supported service ids by the search framework.
     *
     * @param aContent - On return, contains the list of supported service ids.
     * 
     */
    IMPORT_C void GetSupportedServicesL( RArray<TUid>& aServiceIdArray );

    /**
     * Gets the search heavy results. 
     *
     * @param aResultIDArray - The array of document ids.
     * @param aObserver - Pointer to the observer through which the results are returned.
     * @return Request id -  This id is used to cancel the request.
     */    
    IMPORT_C void GetResultsL( const RPointerArray<CSearchDocumentId>& aResultIDArray,
                                     MSearchResultRetrieveObserver& aObserver );
    IMPORT_C void CancelGetResults( ) ;
    /**
     * Launches a viewer/editor application for the given document id.
     *
     * @param aResultId - The id of the given document to be launched.
     */    
    IMPORT_C  void LaunchApplicationL( const CSearchDocumentId& aResultId );

    /**
     * Get launch infor of a file to be opened.
     *
     */   
    IMPORT_C  HBufC8* GetLaunchInfoL( const CSearchDocumentId& aDocumentID );
private:

    /**
     * Constructor.
     */
    CSearchClientSession();

    /**
     * 2nd phase constructor.
     */
    void ConstructL();

    // Data 
    /**
     * Pointer to the session imp
     * Own
     */
    CSearchClientSessionImp* iSessionImp;
    };


#endif		// SEARCHCLIENTSESSION_H

// End of File