imsrv_plat/ximp_search_protocol_plugin_host_api/inc/protocolsearchpluginhost.h
changeset 0 e6b17d312c8b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imsrv_plat/ximp_search_protocol_plugin_host_api/inc/protocolsearchpluginhost.h	Thu Dec 17 08:54:49 2009 +0200
@@ -0,0 +1,150 @@
+/*
+* Copyright (c) 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:  Protocol Search Feature Plugin host interface.
+*
+*/
+
+#ifndef MPROTOCOLSEARCHPLUGINHOST_H
+#define MPROTOCOLSEARCHPLUGINHOST_H
+
+#include <ximpbase.h>
+#include <protocolimpluginhostifids.hrh>
+#include <e32std.h>
+
+
+// CLASS DECLARATION
+
+/**
+ * Interface for Search Protocol Plugin host.
+ * This interface is implemented by search
+ *
+ * @ingroup Protocolserachpluginhostapi
+ * 
+ */
+class MProtocolSearchPluginHost : public MXIMPBase
+    {
+public:
+
+    /** Interface ID for the MProtocolImPluginHost. */
+    enum { KInterfaceId = SEARCH_IF_ID_PROTOCOL_PLUGIN_HOST };
+
+
+protected:
+
+    /**
+     * Protected destructor. IM Protocol Plugin host
+     * instancies can't be destroyed via this interface.
+     */
+    virtual inline ~MProtocolSearchPluginHost() {};
+
+
+public:
+
+
+    /**
+     * Gets reference to object factory interface.
+     *
+     * Returned object factory interface is used
+     * to instantiate IM data objects.
+     *
+     * @return Object factory interface.
+     *         No ownership is returned caller.
+     */
+    virtual MSearchObjectFactory& ObjectFactory() = 0;
+
+
+
+    /**
+     * Notifies IM that IM protocol
+     * plug-in has completed (successfully or otherwise)
+     * the request handling.
+     *
+     * /b NOTE: This method isn't yet supported by IM,
+     *       since all MProtocolImPlugin methods are currently
+     *       synchronous.
+     *
+     * @param [in] aReqId
+     *        Request ID identifying the request which handling
+     *        is completed. This must equal to value given in
+     *        the processing initiation. If no pending IM
+     *        protocol plug-in request is found with this id,
+     *        plug-in is paniced.
+     *
+     * @param [in] aResultCode
+     *        Result code from request handling.
+     */
+    virtual void HandleRequestCompleted( TXIMPRequestId aReqId,
+                                         TInt aResultCode ) = 0;
+
+
+    /**
+     * Notifies IM that IM protocol
+     * plug-in has completed (successfully or otherwise)
+     * the request handling.
+     *
+     * /b NOTE: This method isn't yet supported by IM,
+     *       since all MProtocolImPlugin methods are currently
+     *       synchronous.
+     *
+     * @param [in] aReqId
+     *        Request ID identifying the request which handling
+     *        is completed. This must equal to value given in
+     *        the processing initiation. If no pending IM
+     *        protocol plug-in request is found with this id,
+     *        plug-in is paniced.
+     * @param [in] aResult
+     *        Status object describing result from request handling.
+     *        Object ownership is transfered always to IM.
+     *        NULL value not allowed.
+     */
+    virtual void HandleRequestCompleted( TXIMPRequestId aReqId,
+                                         MImStatus* aResult ) = 0;
+
+
+    /**
+     * Notifies IM that IM protocol
+     * plug-in has completed (successfully or otherwise)
+     * the request handling.
+     *
+     * /b NOTE: This method isn't yet supported by IM,
+     *       since all MProtocolImPlugin methods are currently
+     *       synchronous.
+     *
+	 * @param [in] aReqId
+     *        Request ID identifying the request which handling
+     *        is completed. This must equal to value given in
+     *        the processing initiation. If no pending IM
+     *        protocol plug-in request is found with this id,
+     *        plug-in is paniced.
+     * @param [in] aResult
+     *        Status object describing result from request handling.
+     *        Object ownership is transfered always to Im.
+     *        NULL value not allowed.
+     * @param [in] aParameter
+     *        Additional request complete parameters.
+     *        NULL if no additional parameters to transfer Im.
+     *        Parameter may be single MXIMPBase derived
+     *        object or MImRestrictedObjectCollection object
+     *        containing multiple objects. Ownership of given
+     *        parameter (also the container and contained objects)
+     *        is transfered always to Im.
+     */
+    virtual void HandleRequestCompleted( TXIMPRequestId aReqId,
+                                         MImStatus* aResult,
+                                         MXIMPBase* aParameter ) = 0;
+
+    };
+
+
+#endif // MPROTOCOLSEARCHPLUGINHOST_H