imsrv_plat/ximp_search_protocol_plugin_host_api/inc/protocolsearchdatahost.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 08:54:49 +0200
changeset 0 e6b17d312c8b
permissions -rw-r--r--
Revision: 200949 Kit: 200951

/*
* 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:  Interface for Search Feature Plugin  host
 *
*/

#ifndef MPROTOCOLSEARCHDATAHOST_H
#define MPROTOCOLSEARCHDATAHOST_H

#include <ximpbase.h>
#include <searchprotocolpluginhostifids.hrh>
#include <e32std.h>

class MXIMPStatus;
class MSearchObjectFactory;
class MXIMPProtocolConnectionHostObserver;
class MProtocolImConversationDataHost;
class MProtocolImGroupDataHost;
class MProtocolImInvitationDataHost;
class MProtocolImSearchDataHost;
class MXIMPHost;

class MProtocolSearchFeatureDataHost;
/**
 * search connection host. 
 * Main interface class for protocol plugin.
 * protocol plugin can get sub interfaces to features from this.
 * 
 * @ingroup ProtocolSearchpluginhostapi
 */
 
 
class MProtocolSearchDataHost

    {
public:

    
    /** Interface ID for the MProtocolSearchDataHost. */
    enum { KInterfaceId = XIMP_ECOM_IF_UID_SEARCH_PROCESSOR_INTERFACE };

    
protected:

    /**
     * Protected destructor. MProtocolSearchDataHost instancies
     * can't be destroyed via this interface.
     */
    virtual inline ~MProtocolSearchDataHost() {};


    

public: // Access to sub-interfaces


    /**
     * Gets reference to object factory interface.
     *
     * search protocol connection implementation
     * uses factory interface to instantiate Im
     * objects.
     *
     * @return Object factory interface.
     *         No ownership is returned caller.
     */
   
	virtual MSearchObjectFactory& SearchObjectFactory() = 0;
	
	
	/**
     * Gets reference to
     * MProtocolSearchFeatureDataHost interface.
     *
     * Search protocol connection implementation uses returned
     * data host interface to manage the 
     * search data.
     *
     * @return MProtocolSearchFeatureDataHost interface.
     *         Interface ownership is not returned caller.
     *         Returned interface is guaranteed to remain valid (usable)
     *         as long as this source interface.
     */

    
    virtual MProtocolSearchFeatureDataHost& SearchFeatureDataAccess() =0;
    
    
    };


#endif // MPROTOCOLIMDATAHOST_H