syncmlfw/common/syncagent/inc/NSmlResponseController.h
changeset 0 b497e44ab2fc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/syncmlfw/common/syncagent/inc/NSmlResponseController.h	Thu Dec 17 09:07:52 2009 +0200
@@ -0,0 +1,115 @@
+/*
+* 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:  Status response buffering
+*
+*/
+
+
+#ifndef __NSMLRESPONSECONTROLLER_H
+#define __NSMLRESPONSECONTROLLER_H
+
+
+// INCLUDES
+#include <e32base.h>
+
+// FORWARD DECLARATIONS
+class CNSmlFutureReservation;
+
+// CLASS DECLARATION
+class CNSmlResponseController : public CBase 
+	{
+	public:  // enumerations
+		enum TResponseDetail 
+		{
+		EResponseNoDetail,
+		EResponseInitAlert
+		};
+
+	public: // constructors and desctructor
+	static CNSmlResponseController* NewL(); 
+	static CNSmlResponseController* NewLC();
+	~CNSmlResponseController();    //from CBase
+
+	public: //new functions
+ 
+	TInt CreateNewResponseItemL();
+	void RemoveResponseItem( TInt aMsgID, TInt aCmdID ); 
+	void SetMsgID( TInt aEntryID, TInt aMsgID );
+	void SetCmdL( TInt aEntryID, const TDesC8& aCmd );
+	void SetCmdID( TInt aEntryID, TInt aCmdID );
+	IMPORT_C void SetLUIDL( TInt aEntryID, const TDesC8& aLUID );
+	IMPORT_C void SetAppIndex( TInt aEntryID, TInt aAppIndex );
+	void SetChalTypeL( TInt aEntryID, const TDesC8& aType );
+	void SetChalFormatL( TInt aEntryID, const TDesC8& aFormat );
+	void SetChalNextNonceL( TInt aEntryID, const TDesC8& aNextNonce );
+	IMPORT_C void SetResponseDetail( TInt aEntryID, TResponseDetail aResponseDetail );
+	IMPORT_C void SetMoreData( TInt aEntryID );
+	void RemoveAllReceivedOnes();  
+	IMPORT_C void ResetL();
+	TBool MatchStatusElement( const TDesC8& aMsgID, const TDesC8& aCmdID, TInt aStatusCode, TInt& aEntryID );
+
+	void Begin();
+	TBool NextResponseInfo( TInt& aEntryID );
+	TBool ItemResponseInfo( const TDesC8& aLUID, TInt& aEntryID ) const;
+
+	IMPORT_C TDesC8& Cmd( TInt aEntryID ) const;
+	IMPORT_C TPtrC8 LUID( TInt aEntryID ) const;
+	IMPORT_C TInt AppIndex( TInt aEntryID ) const;
+	IMPORT_C TInt StatusCode( TInt aEntryID ) const;
+	TBool StatusReceived( TInt aEntryID ) const;
+	IMPORT_C TPtrC8 ChalType( TInt aEntryID ) const;
+	TPtrC8 ChalFormat( TInt aEntryID ) const;
+	TPtrC8 ChalNextNonce( TInt aEntryID ) const;
+	IMPORT_C TResponseDetail ResponseDetail( TInt aEntryID ) const;
+	TBool BusyStatus( TInt aMsgID ) const;
+	IMPORT_C TBool MoreData( TInt aEntryID ) const;
+	IMPORT_C TInt EntryID( TInt aCmdID, TInt aMsgID) const;
+
+	private:
+	void ConstructL();
+	CNSmlResponseController();
+	CNSmlResponseController( const CNSmlResponseController& aOther );
+	CNSmlResponseController& operator=( const CNSmlResponseController& aOther );
+	void CreateResponseChalL( TInt aIndex );
+	void FreeResources( TInt aI );
+		
+	private: //Data
+	//
+	struct TChal
+		{
+		HBufC8* chalType;
+		HBufC8* chalFormat;
+		HBufC8* chalNextNonce;
+		};
+	
+	struct TResponseData
+		{
+		TInt responseMsgID;
+		HBufC8* responseCmd;
+		TInt responseCmdID;
+		HBufC8* responseLUID; 
+		TInt responseAppIndex;
+		TInt responseStatusCode;
+		TBool responseStatusReceived;
+		TChal* responseChal;
+		TResponseDetail responseDetail;
+		TBool responseMoreData;
+		};
+	CArrayFixFlat<TResponseData>* iResponse;
+	TInt iEntryID;
+	// Reserved to maintain binary compability
+	CNSmlFutureReservation* iReserved;
+	};
+
+#endif // __NSMLRESPONSECONTROLLER_H