/** 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: * A part of WV engine group feature interface. * Handles asyncronous requests. **/#ifndef CImpsGroupCommand_H#define CImpsGroupCommand_H// INCLUDES#include <e32base.h>#include "impsconst.h"#include "impsservercommon.h"#include "impsdataaccessorapi.h"#include "impsclientsrv.h"// FORWARD DECLARATIONSclass RImpsGroupClient2;class CImpsFields;class CImpsKey;class CImpsDataAccessor;// CLASS DECLARATION class CImpsGroupCommand2 :public CActive { public: // Constructors and destructor /** * Two-phased constructor. * @param aClient a client session */ static CImpsGroupCommand2* NewL( RImpsGroupClient2& aClient ); /** * Destructor. */ virtual ~CImpsGroupCommand2(); public: // New functions /** * Start the execution. * @param aOpId operation-id * @param aType message type */ void StartRunL( TInt aOpId, TImpsServRequest aType = EImpsServGroup); /** * Reset all the member */ void ResetMembers( ); /** * Initialize the command with type and array size and the array address * @param aElementArray Key array releated to the command * @param aArraySize size of the array */ void InitialiseL( const TImpsContent* aElementArray, const TUint aArraySize ); /** * Insert string element to the command * @param aElementValue Value is inserted to the dataaccesor * @param aElementName name of the key */ void InsertElementL( const TDesC& aElementValue, const TImpsContent aElementName ); /** * Insert boolean element to the command * @param aBool Boolean Value is inserted to the dataaccesor * @param aElementName name of the key */ void InsertElementL( TBool aBool, const TImpsContent aElementName ); /** * Insert boolean element to the command * @param aInt Integer Value is inserted to the dataaccesor * @param aElementName name of the key */ void InsertElementIntL( TInt aInt, const TImpsContent aElementName ); /** * Insert string element to the command * @param aElementValue Value is inserted to the dataaccesor * @param aElementName name of the key * @param aIndex index of the key */ void InsertElementL( const TDesC& aElementValue, const TImpsContent aElementName, TInt aIndex ); /** * Insert empty element to the command * @param aElementName name of the key */ void InsertEmptyL( const TImpsContent aElementName ); /** * Add key to command * @param aKey to be inserted */ inline void AddKeyL( TUint aKey ); /** * Pop Key from command */ inline void PopKeyL( ); /** * Set message type to the command * @param aMsgType Messagetype of the command */ inline void SetMessageType( TImpsMessageType aMsgType ); /** * Pack the command */ void PackMessageL( ); /** * Send the packed data to the server * @param messagetype * @param operatioid */ void PackAndSendL( TImpsMessageType aMsgType, TInt aOpId ); private: /** * C++ default constructor. * @param aPriority Pririty of the command * @param aClient a client session */ /** */ CImpsGroupCommand2( TInt aPriority, RImpsGroupClient2& aClient ); // from CActive void RunL(); void DoCancel(); // By default, prohibit copy constructor CImpsGroupCommand2( const CImpsGroupCommand2& ); // Prohibit assigment operator CImpsGroupCommand2& operator= ( const CImpsGroupCommand2& ); private: // Data RImpsGroupClient2& iClient; TInt iOpId; TImpsServRequest iType; TImpsMessageType iMessageType; HBufC8* iMessage; CImpsFields* iImpsFields; CImpsDataAccessor* iAccessor; MImpsKey* iKey; TPtrC8 iMessagePtr; };#include "ImpsGroupCommand.inl"#endif // CImpsGroupCommand_H// End of File