gssettingsuis/Gs/GSFramework/inc/GSPluginWrapper.h
branchRCL_3
changeset 24 8ee96d21d9bf
parent 23 8bda91a87a00
child 25 7e0eff37aedb
--- a/gssettingsuis/Gs/GSFramework/inc/GSPluginWrapper.h	Thu Aug 19 10:12:30 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-/*
-* Copyright (c) 2002-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: 
-*
-*/
-
-
-#ifndef GSPLUGINWRAPPER_H
-#define GSPLUGINWRAPPER_H
-
-// System includes
-#include <e32base.h>
-
-// Classes referenced
-class CGSBaseDocument;
-
-
-/**
- *  Utility class for separating ECOM plugin destruction from view-framework
- *  view cleanup.
- *
- *  Owned by CGSBaseDocument which has the longest lifetime during GS
- *  application run. This will ensure that ECOM resources are not deleted
- *  before view cleanup.
- *
- *  Problem/rationale:
- *  Before the functionality provided by this class, GS would occasionally
- *  crash in exit. This was caused by the dual nature of CGSPluginInterface
- *  class: It is both ECOM-plugin having individual dll and view-framework
- *  dependant CAknView owned by CCoeAppUi. When exiting GS, it was possible
- *  that a  plugin still had local views (CAknViews) which were owned
- *  by view-framework.
- *
- *  When the view framework destroys the registered views, it would cause
- *  the ECOM plugin dll to be unloaded. Should this happen before all the views
- *  owned and implemented by the plugin have been destroyed, an access
- *  violation would occur because the code needed to call the view's destructor
- *  was no longer loaded into memory within the GS process.
- *
- *  Solution:
- *  Purpose of CGSPluginWrapper is to move ECOM-related memory cleanup outside
- *  the scope of CGSPluginInterface destructor. This way view-framework can
- *  call destructor in an arbitrary order on all it's owned views even though
- *  plugins which had local views were already deleted.
- *
- */
-NONSHARABLE_CLASS( CGSPluginWrapper ) : public CBase
-    {
-    public:
-        CGSPluginWrapper( CGSBaseDocument& aDocument );
-        IMPORT_C ~CGSPluginWrapper();
-
-    public:
-        IMPORT_C void SetDetails( TUid aDestructorIdKey );
-        inline CGSBaseDocument& Document() { return iDocument; }
-
-    private:
-        TUid iDestructorIdKey;
-        CGSBaseDocument& iDocument;
-    };
-
-
-
-
-#endif // GSPLUGINWRAPPER_H
-// End of File