--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uigraphics/AknIcon/srvinc/AknIconSrvSession.h Thu Dec 17 09:14:12 2009 +0200
@@ -0,0 +1,144 @@
+/*
+* 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_SESSION_H
+#define AKN_ICON_SRV_SESSION_H
+
+// INCLUDES
+
+#include <e32base.h>
+#include "AknIconPanic.h"
+#include "AknIconSrvDef.h"
+
+// FORWARD DECLARATIONS
+class CAknIconServer;
+class CAknIconSrvIconItem;
+
+// CLASS DECLARATION
+
+/**
+* This class represents a session in the server.
+* Functions are provided to respond appropriately to client messages.
+*/
+
+NONSHARABLE_CLASS(CAknIconSrvSession) : public CSession2
+ {
+ public: // Constructors and destructor
+
+ /**
+ * C++ default constructor.
+ */
+ CAknIconSrvSession();
+
+ /**
+ * Destructor.
+ */
+ virtual ~CAknIconSrvSession();
+
+ public: // New functions
+
+ public: // From CSharableSession
+
+ void ServiceL( const RMessage2& aMessage );
+
+ RFile& AdoptedFileHandle();
+
+ /**
+ * @fn SetClientPanicCode
+ * sets the panic code, which will be used in panicing the client
+ * @param aPanicCode This panic code to set
+ * @see TAknIconPanic
+ */
+ void SetClientPanicCode(TAknIconPanic aPanicCode);
+
+ private: // New Functions
+
+ /**
+ * Handles a client request; tests the opcode and gives
+ * service according to that.
+ *
+ * @param aMessage service request message from client
+ *
+ * Leaves if:
+ * - a service routine leaves
+ */
+ TInt DispatchMessageL( const RMessage2& aMessage );
+
+ /**
+ * Below are handlers for different services.
+ * They get the parameters from client message and
+ * call the desired service routine.
+ *
+ * They also do the necessary inter-thread data transfers.
+ *
+ * Leave if:
+ * - a service routine leaves
+ *
+ * Leaves are trapped by ServiceL() which returns the
+ * errorcode to the client.
+ */
+
+ /**
+ * Server down-cast.
+ */
+ inline CAknIconServer* Server();
+
+ /**
+ * Panics the client thread
+ * @param aPanic panic reason
+ */
+ void PanicClient( const RMessage2& aMessage, TAknIconPanic aPanic ) const;
+
+ void ModifyUserCount(
+ const CAknIconSrvIconItem* aItem,
+ TInt aCount );
+
+ void ModifyUserCount(
+ const CAknIconDataItem* aItem,
+ TInt aCount );
+
+ private: // Data
+
+ // Information of which icons this session is referring to.
+ // Needed for cleanup purposes in e.g. client thread panic case.
+ RArray<TAknIconSrvSessionIconItem> iIconItems;
+
+ // Information of which icon data this session has preserved.
+ // Needed for cleanup purposes in e.g. client thread panic case.
+ RArray<TAknIconSrvSessionPreservedItem> iPreservedItems;
+
+ // File handle adopted from the client side.
+ // It is adopted in the beginning of the service request
+ // and always closed after the service request.
+ RFile iAdoptedFile;
+
+ //! Code to use while panicking the client
+ TAknIconPanic iClientPanicCode;
+
+#ifdef _DEBUG
+ TInt iDbgHeapFailNextCount; // for heap testing
+#endif // _DEBUG
+ };
+
+ #include "AknIconSrvSession.inl"
+
+#endif // AKN_ICON_SRV_SESSION_H
+
+// End of File