--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/inc/swidaemonplugin.h Thu Dec 17 08:51:10 2009 +0200
@@ -0,0 +1,110 @@
+/*
+* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:
+*
+*/
+
+
+
+
+/**
+ @file
+ @publishedPartner
+ @released
+*/
+
+#ifndef SWI_DAEMON_PLUGIN_H
+#define SWI_DAEMON_PLUGIN_H
+#include <ecom/ecom.h>
+
+class CSwiDaemonPlugin : public CBase
+ {
+public:
+ static CSwiDaemonPlugin *NewL();
+
+ /**
+ * Media has been inserted with one, or more, valid (ie. correct
+ * header), uninstalled, stub-SIS files on it. This will be
+ * followed by one or more calls to RequestInstall for each SIS
+ * file on this media.
+ *
+ * @param aDrive Drive being processed
+ */
+ virtual void MediaProcessingStart( TInt aDrive ) = 0;
+
+ /**
+ * @param aFile - RFile handle, valid until this function returns.
+ *
+ * The FS associated with the RHandle is marked for sharing (so
+ * the RHandle can be passed to a server using
+ * RFile::TransferToServer).
+ *
+ * Note that immediately after this call, the RFile handle will be
+ * closed. This means that the plugin must either duplicate it, or
+ * synchronously send it to a server which adopts it before this
+ * function returns.
+ */
+ virtual void RequestInstall( RFile& aFile ) = 0;
+
+ /**
+ * Normally a sequence of RequestInstall calls for each SIS file
+ * on a media will be followed by a call to this function.
+ *
+ * Alternatively MediaRemoved might be called to abort the sequence.
+ */
+ virtual void MediaProcessingComplete() = 0;
+
+
+ /**
+ * Media has been removed from drive.
+ *
+ * @param aDrive Drive number
+ *
+ * If the media in the drive specified by the last call to
+ * MediaProcessingStart is removed, then this function will be
+ * called, regardless of whether or not MediaProcessingComplete
+ * has been called.
+ *
+ * This function may also be called when media is removed from any
+ * drive.
+ */
+ virtual void MediaRemoved( TInt aDrive ) = 0;
+
+ virtual ~CSwiDaemonPlugin();
+
+private:
+ TUid iDtor_ID_Key;
+ };
+
+_LIT8(KX,"X");
+inline CSwiDaemonPlugin *CSwiDaemonPlugin::NewL()
+ {
+ const TUid KSwiDriveWatcherPlugin = { 0x10274D07 };
+ TEComResolverParams resolverParams;
+ resolverParams.SetDataType(KX());
+ TAny *ptr = REComSession::CreateImplementationL(KSwiDriveWatcherPlugin,
+ _FOFF(CSwiDaemonPlugin, iDtor_ID_Key),
+ resolverParams,
+ KRomOnlyResolverUid);
+ return (CSwiDaemonPlugin *)ptr;
+ }
+
+
+inline CSwiDaemonPlugin::~CSwiDaemonPlugin()
+ {
+ REComSession::DestroyedImplementation(iDtor_ID_Key);
+ }
+
+
+#endif // SWI_DRIVEWATCHER_PLUGIN_H