--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/satengine/SatServer/Engine/inc/CSatSIconSubSession.h Tue Feb 02 01:11:09 2010 +0200
@@ -0,0 +1,187 @@
+/*
+* Copyright (c) 2002-2007 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: Handles the icon sub-session IPC.
+*
+*/
+
+
+#ifndef CSATSICONSUBSESSION_H
+#define CSATSICONSUBSESSION_H
+
+#include <etelsat.h>
+
+#include "CSatSSubSession.h"
+#include "MSatIconObserver.h"
+
+class MSatSIconAPI;
+class CSatSSession;
+class CFbsBitmap;
+class TSatEventMediator;
+
+/**
+* Handles the icon commands.
+*
+* @lib SatEngine.lib
+* @since 3.0
+*/
+class CSatSIconSubSession : public MSatIconObserver,
+ public CSatSSubSession
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ * @param aSession Parent session.
+ * @param aEventMediator Passes SetUpIdleMode response event.
+ */
+ static CSatSIconSubSession* NewL(
+ CSatSSession& aSession,
+ TSatEventMediator& aEventMediator );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CSatSIconSubSession();
+
+ private: // New functions
+
+ /**
+ * Gets the icon info from SIM.
+ */
+ void GetIconInfo();
+
+ /**
+ * Gets the icon from SIM.
+ */
+ void GetIconInstanceL();
+
+ /**
+ * Writes to client address space. Panics the client
+ * if writing fails.
+ * @param aMessage Message, which to write.
+ * @param aParam Parameter number
+ * @param aDes Descriptor to be written.
+ */
+ void Write(
+ const RMessage2& aMessage,
+ TInt aParam,
+ const TDesC8& aDes ) const;
+
+ public: // Functions from base classes
+
+ /**
+ * From CSatSSubSession
+ * @param aFunction Function.
+ * @param aMessage IPC message.
+ */
+ void HandleCommandL( const RMessage2& aMessage );
+
+ /**
+ * From MSatIconObserver.
+ * Notification of getting icon info from SIM.
+ */
+ void NotifyGetIconInfo();
+
+ /**
+ * From MSatIconObserver.
+ * Notification of getting icon image.
+ */
+ void NotifyGetIconInstanceL();
+
+ /**
+ * From MSatIconObserver.
+ * Notification of getting icon color lookup table.
+ */
+ void NotifyGetClutL();
+
+ /**
+ * From MSatIconObserver.
+ * Notification of operation failure
+ * @param aErrorCode Reason of failure.
+ */
+ void NotifyFailure( TInt aErrorCode );
+
+ /**
+ * From MSatIconObserver.
+ * Error completion for handler
+ * @param aError Received error code
+ * @return Result of completion
+ */
+ TInt CompleteError( TInt aError ) const;
+
+ /**
+ * Get icon fetching mode which is in synchronous or asynchronous mode.
+ * @return Icon fetching mode.
+ */
+ TBool IconFetchingMode();
+
+ /**
+ * Notify CSatIconHandler to fetch icons from NAA synchronously or
+ * asynchrounously.
+ * @param aMode Icon fetching is in synchronously or asynchronously
+ * @return None
+ */
+ void NotifyIconFetchingMode( TBool aMode );
+
+ private:
+
+ /**
+ * ConstrucL
+ */
+ void ConstructL();
+
+ /**
+ * C++ default constructor.
+ * @param aSession Parent session.
+ * @param aEventMediator Passes SetUpIdleMode response event.
+ */
+ CSatSIconSubSession(
+ CSatSSession& aSession,
+ TSatEventMediator& aEventMediator );
+
+ /**
+ * Delivers SetUpIdleModeText response to corresponding command handler.
+ * @param aResponse Idle mode response.
+ */
+ void SendSetUpIdleModeResponse( TInt aResponse ) const;
+
+ private: // Data
+
+ // Interface for accessing icons in SIM.
+ MSatSIconAPI* iIconAPI;
+
+ // Bitmap instance.
+ CFbsBitmap* iBitmap;
+
+ // Message just being executed.
+ RMessage2 iMessage;
+
+ // Icon info got from SIM.
+ RSat::TIcon iIconEf;
+
+ // Icon info from client.
+ RSat::TInstanceInfoV3 iInfo;
+
+ // Icon data.
+ HBufC8* iIconData;
+
+ // Icon color lookup table.
+ HBufC8* iClut;
+
+ // Event mediator to send SetUpIdleMode response
+ TSatEventMediator& iEventMediator;
+
+ };
+
+#endif // CSATSICONSUBSESSION_H