diff -r 000000000000 -r 094583676ce7 wvuing/IMPSServiceSettingsUI/Src/CWVSettingsUITlsHolder.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wvuing/IMPSServiceSettingsUI/Src/CWVSettingsUITlsHolder.h Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,139 @@ +/* +* Copyright (c) 2003 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: Tls holder used to check if resource file is loaded or not +* +*/ + +#ifndef CWVSETTINGSUITLSHOLDER_H +#define CWVSETTINGSUITLSHOLDER_H + +// INCLUDES +#include + + +// FORWARD DECLARATIONS + + +// CLASS DECLARATION + +/** +* TLS holder used to check if resource file is loaded or not +* and if it can be unloaded or not. +* +* @lib WVServiceSettingsUi.dll +* @since 2.1 +*/ +NONSHARABLE_CLASS( CWVSettingsUITlsHolder ) : public CBase + { +public: // Constructors and destructor + + /** + * Singleton pointer retrieve method. + */ + static CWVSettingsUITlsHolder* InstanceL(); + + + /** + * Trys to delete all owned singletons and + * also this holder object. + * If NULLing the TLS pointer, pointing to this + * holder object fails, doesn't delete holder, only + * owned singletons. After that this TLS holder can + * be still reused, by issuing again first InstanceL() + * and to the retrived pointer one of existing sinleton + * retrieve requests, + * + * NOTE!! After calling DestroySingletonsAndHolder() + * all singleton object pointers must be retrived + * again before using them!! + * + * @since 2.1 + * @return If fully succesfull KErrNone. Else one of + * system wide errorcodes. + */ + static TInt DestroySingletonsAndHolder(); + + +public: // New functions + + /** + * Tells if the resource is loaded + * @since 2.1 + */ + TBool ResourceIsLoaded() const; + + /** + * Adds one to the reference count of the resource file + * @since 2.1 + */ + void ResourceLoaded(); + + /** + * Removes one to the reference count of the resource file + * @since 2.1 + */ + void ResourceUnLoaded(); + + TBool OkToUnloadResource() const; + +private: //new functions + + + /** + * Deletes owned singleton objects. + * + * @since 2.1 + */ + void DoReleaseSingletons(); + +private: + + /** + * Two-phased constructor. + * Leaves created object on the cleanupstack. + * @since 2.1 + */ + static CWVSettingsUITlsHolder* NewLC(); + + + /** + * C++ default constructor. + */ + CWVSettingsUITlsHolder(); + + + /** + * Protected destructor. + * + * Singleton holder can be only destroyed trough + * DestroySingletonsAndHolder() method. + */ + virtual ~CWVSettingsUITlsHolder(); + + +private: // Data + + ///Publish level manager singleton, owned + TBool iResourceLoaded; + + ///Spare member for future extensions + TAny* iReserved; + + TInt iResourceReferenceCount; + + }; + +#endif // CWVSETTINGSUITLSHOLDER_H + +// End of File