uigraphics/AknIcon/srvinc/AknIconSrvTlsData.h
changeset 0 05e9090e2422
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uigraphics/AknIcon/srvinc/AknIconSrvTlsData.h	Thu Dec 17 09:14:12 2009 +0200
@@ -0,0 +1,108 @@
+/*
+* Copyright (c) 2002 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 AKN_ICON_SRV_TLS_DATA_H
+#define AKN_ICON_SRV_TLS_DATA_H
+
+//  INCLUDES
+
+#include <e32std.h>
+#include <f32file.h>
+#include "AknIconSrvClient.h"
+#include "AknIconSrvDef.h"
+
+// FORWARD DECLARATIONS
+class CAknIconLoader;
+class CAknIconLocationInfo;
+class CAknIconFileNameCache;
+
+// CLASS DECLARATION
+
+/**
+* TLS data. It has a connected client to AknIconServer.
+*/
+NONSHARABLE_CLASS(CAknIconSrvTlsData) :
+    public CBase
+    {
+    public:  // Constructors and destructor
+
+        /**
+        * Creates TLS data and installs it in TLS.
+        */
+        static void CreateSingletonL();
+
+        ~CAknIconSrvTlsData();
+
+    public: // New functions
+
+        /**
+        * Initializes icon loader for the given file.
+        */
+        void InitIconLoaderL( const TDesC& aFileName, RFile* aFile );
+        
+        inline CAknIconLoader* IconLoader();
+
+        inline const TAknIconInitData& InitData() const;
+        
+        /**
+        * Connects the file server session if not already connected,
+        * and returns it. The file server session should always be
+        * accessed via this method, to ensure that it is connected.
+        */
+        RFs& FsSessionL();
+
+        TInt GetIconLocationInfo(
+            const TDesC& aFileName, TInt16& aBitmapId, TInt16& aMaskId );
+
+        void StoreIconLocationInfoL( CAknIconLocationInfo* aInfo );
+        
+        inline CAknIconFileNameCache& IconFileNameCache();
+
+    private:
+
+        CAknIconSrvTlsData();
+        void ConstructL();
+
+    public: // Data
+
+        RAknIconSrvClient iIconSession;
+        TAknIconInitData iInitData;
+
+        RArray<TUint> iPointers;
+
+        HBufC* iFileName;
+        CAknIconLoader* iLoader;
+
+        // Cached information of the icon locations (MIF/MBM) in the used icon files
+        RPointerArray<CAknIconLocationInfo> iIconLocations;
+                
+        // Cached information of icon file names
+        CAknIconFileNameCache* iFileNameCache;
+        
+    private: // Data
+
+        RFs iFsSession;
+    };
+    
+#include "AknIconSrvTlsData.inl"
+
+#endif      // AKN_ICON_SRV_TLS_DATA_H   
+            
+// End of File