--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imageeditor/ImageEditorManager/inc/PluginLoader.h Fri Jan 29 13:53:17 2010 +0200
@@ -0,0 +1,155 @@
+/*
+* Copyright (c) 2010 Ixonos Plc.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "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:
+* Ixonos Plc
+*
+* Description:
+*
+*/
+
+
+
+#ifndef PLUGINLOADER_HPP
+#define PLUGINLOADER_HPP
+
+// INCLUDES
+#include <e32base.h>
+
+#include "imageeditordebugutils.h"
+
+// PLUGIN TYPE DEFINITIONS
+#include "plugintypedef.h"
+
+
+/* CLASS: CPluginLoader
+*
+* CPluginLoader is a class loading a polymorphic DLL plug-in.
+*/
+class CPluginLoader : public CBase
+{
+
+public:
+
+/** @name Methods:*/
+//@{
+
+ /** NewL factory method, pops cleanupstack
+ *
+ * @param aFileName - plug-in name
+ * @param aUID2 - pointer to UID2, if NULL not checked
+ * @param aUID3 - pointer to UID3, if NULL not checked
+ * @return pointer to created object
+ */
+ static CPluginLoader * NewL (
+ const TDesC & aFileName,
+ const TUid * aUID2,
+ const TUid * aUID3
+ );
+
+ /** NewL factory method, does not pop cleanupstack
+ *
+ * @param aFileName - plug-in name
+ * @param aUID2 - pointer to UID2, if NULL not checked
+ * @param aUID3 - pointer to UID3, if NULL not checked
+ * @return pointer to created object
+ */
+ static CPluginLoader * NewLC (
+ const TDesC & aFileName,
+ const TUid * aUID2,
+ const TUid * aUID3
+ );
+
+ /** Destructor
+ * @param -
+ * @return -
+ */
+ virtual ~CPluginLoader ();
+
+ /** GetPlugin
+ *
+ * Returns plug-in.
+ *
+ * @param -
+ * @return - the loaded and created plug-in
+ */
+ CPluginType * GetPlugin () const;
+
+ /** GetPluginDll
+ *
+ * Returns reference to the RLibrary object that has loaded the plug-in.
+ *
+ * @param -
+ * @return - RLibrary
+ */
+ const RLibrary & GetPluginDll () const;
+
+
+//@}
+
+protected:
+
+/** @name Methods:*/
+//@{
+
+//@}
+
+/** @name Members:*/
+//@{
+
+//@}
+
+private:
+
+/** @name Methods:*/
+//@{
+
+ /** Default constructor, cannot leave.
+ *
+ * @param -
+ * @return -
+ */
+ CPluginLoader ();
+
+ /** Second phase constructor, may leave
+ *
+ * @param aFileName - plug-in name
+ * @param aUID2 - pointer to UID2, if NULL not checked
+ * @param aUID3 - pointer to UID3, if NULL not checked
+ */
+ void ConstructL (
+ const TDesC & aFileName,
+ const TUid * aUID2,
+ const TUid * aUID3
+ );
+
+ /** Copy constructor, disabled
+ */
+ CPluginLoader (const CPluginLoader & rhs);
+
+ /** Assignment operator, disabled
+ */
+ CPluginLoader & operator= (const CPluginLoader & rhs);
+
+//@}
+
+/** @name Members:*/
+//@{
+ /// DLL loader
+ RLibrary iLibrary;
+ /// Plugin
+ CPluginType * iPlugin;
+//@}
+
+};
+
+
+#endif