IMPSengine/client/inc/impsfundcommand.h
changeset 0 094583676ce7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/IMPSengine/client/inc/impsfundcommand.h	Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,189 @@
+/*
+* Copyright (c) 2002-2005 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: 
+* commander for imps data accessor. AO.      
+*
+*/
+
+
+#ifndef CImpsFundCommand_H
+#define CImpsFundCommand_H
+
+//  INCLUDES
+#include "impsdataaccessorapi.h"
+#include "impsclientsrv.h"
+
+// FORWARD DECLARATIONS
+class CImpsKey;
+class CImpsDataAccessor;
+
+
+    class CImpsFundCommand2 : public CActive
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        * @param aClient a client session
+        */
+        static CImpsFundCommand2* NewL( RImpsFundClient2& aClient );
+        
+        /**
+        * Destructor.
+        */
+        virtual ~CImpsFundCommand2();
+
+    public: // New functions
+        
+        /** 
+        * Start the execution. 
+        * @param aType Type of the request
+        */
+        void StartRunL();
+        
+        /*
+        * Reset all member variables that the object owns
+        */
+        void ResetMembers();
+  
+        /** 
+        * Initialise a request
+        * @param aUserIDs User IDs to be inserted
+        */
+        void InitialiseL( const TImpsContent* aElementArray,
+                          const TUint aArraySize );
+        
+        /** 
+        * Set the user IDs of the request
+        * @param aUserIDs User IDs to be inserted
+        */
+        void SetUserIDsL( const MDesCArray* aUserIDs );
+        
+        /** 
+        * Construct a search pair list 
+        * @param aSearchPairs
+        */
+        void MakeSearchPairListL( const CSearchPairs& aSearchPairs );
+        
+        /** 
+        * Set the screen names of the request
+        * @param aScreenNames Screen names
+        * @param aGroupNames GroupIDs
+        */
+        void SetScreenNamesL( const MDesCArray* aScreenNames,
+                              const MDesCArray* aGroupNames );
+        
+        /** 
+        * Insert a descriptor element to the request
+        * @param aElementValue Value of the element
+        * @param aElementName Name of the element
+        * @param aIndex Index of the element
+        */
+        void InsertDescriptorElementL( const TDesC& aElementValue,
+                                       const TImpsContent aElementName,
+                                       const TInt aIndex );
+
+        /** 
+        * Insert an integer element to the request
+        * @param aElementValue Value of the element
+        * @param aElementName Name of the element
+        * @param aIndex Index of the element
+        */
+        void InsertIntegerElementL( const TInt aElementValue,
+                                    const TImpsContent aElementName,
+                                    const TInt aIndex );
+
+        /*
+        * Insert an empty element to the request
+        * @param aElementName Name of the element
+        * @param aIndex Index of the element
+        */
+        void InsertEmptyElementL( const TImpsContent aElementName,
+                                  const TInt aIndex );
+        
+        /** 
+        * Insert a boolean element to the request
+        * @param aElementValue Value of the element
+        * @param aElementName Name of the element
+        * @param aIndex Index of the element
+        */
+        void InsertBooleanElementL( const TBool aElementValue, 
+                                    const TImpsContent aElementName,
+                                    const TInt aIndex );
+        
+        /** 
+        * Pack the data for sending to the server thread 
+        * @param aMessageType Type of the request
+        * @param aOpId OpId of the request
+        */
+        void PackAndSendL( const TImpsMessageType aMessageType,
+                           const TInt aOpId );
+
+        /** 
+        * Pop one element from the data accessor key
+        * @param aCount How many to Pop();
+        */
+        inline void PopElementL( const TInt aCount = 0 );
+
+    private:
+
+        /**
+        * C++ default constructor is private
+        */
+        CImpsFundCommand2( TInt aPriority, RImpsFundClient2& aClient );
+
+        /**
+        * From CActive
+        */
+        void RunL();
+        
+        /**
+        * From CActive
+        */
+        void DoCancel();
+
+        /**
+        * By default Symbian OS constructor is private.
+        */
+        void ConstructL();
+        
+        /*
+        * Map requests from TImpsMessageType to TImpsServRequest
+        * @param aMessageType TImpsMessageType
+        * @return TImpsServRequest Type of the message
+        */
+        TImpsServRequest ServerRequestTypeL( 
+                                        const TImpsMessageType aMessageType );
+
+        // By default, prohibit copy constructor
+        CImpsFundCommand2( const CImpsFundCommand2& );
+        // Prohibit assigment operator
+        CImpsFundCommand2& operator= ( const CImpsFundCommand2& );
+
+    private:    // Data
+        HBufC8*                         iMessage;
+        CImpsKey*                       iKey;
+        CImpsFields*                    iImpsFields;
+        CImpsDataAccessor*              iDataAccessor;
+        RImpsFundClient2&                iClient;
+        TUint                           iArraySize;
+        TInt                            iOpId;
+        TInt                            iState;
+        TPtrC8                          iMessagePtr;
+    };
+#include "ImpsFundCommand.inl"
+
+#endif  
+            
+// End of File