--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wvuing/IMPSServiceSettingsUI/Src/CWVSettingsUITlsHolder.h Wed Sep 01 12:31:13 2010 +0100
@@ -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 <E32Base.h>
+
+
+// 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