syncmlfw/common/syncagent/inc/NSmlResultsContainer.h
changeset 0 b497e44ab2fc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/syncmlfw/common/syncagent/inc/NSmlResultsContainer.h	Thu Dec 17 09:07:52 2009 +0200
@@ -0,0 +1,90 @@
+/*
+* Copyright (c) 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:  Client's Results command buffering
+*
+*/
+
+
+
+#ifndef __NSMLRESULTSCONTAINER_H
+#define __NSMLRESULTSCONTAINER_H
+
+// INCLUDES
+#include <e32base.h>
+#include "smldtd.h"
+
+
+// FORWARD DECLARATIONS
+class CNSmlCmdsBase;
+class CNSmlFutureReservation;
+
+// CLASS DECLARATION
+class CNSmlResultsContainer : public CBase 
+	{
+	//  
+	public:  // constructor and destructor
+	static CNSmlResultsContainer* NewL( CNSmlCmdsBase* aSyncMLCmds = NULL ); 
+	~CNSmlResultsContainer();    //from CBase
+	public: // new functions
+	// Creates new Results element  
+	IMPORT_C TInt CreateNewResultsL( const TDesC8& aMsgRef, const TDesC8& aCmdRef, const SmlTarget_t* aTargetRef, const SmlSource_t* aSourceRef );
+	// Set CmdID to Results element
+	IMPORT_C void SetCmdIDL( TInt aEntryID, const SmlPcdata_t* aCmdID );
+	// Add Item element
+	IMPORT_C void AddItemL( TInt aEntryID, const CBufBase& aObject, const TDesC8& aType, const TDesC8& aFormat ); 
+	// Set Id of Status ( in CNSmlStatusContainer instance )
+	IMPORT_C void SetStatusID( TInt aEntryID, TInt aStatusEntryID );
+	//
+	IMPORT_C void RemoveWritten (TInt aEntryID );
+		
+	IMPORT_C void Begin();
+	IMPORT_C TBool NextResultsElement( SmlResults_t*& aResults );
+	// Get ID of the current element
+	IMPORT_C TInt CurrentEntryID() const;	
+	// Any results in container
+	IMPORT_C TBool AnyResults() const;	
+	// Get Id of Status ( in CNSmlStatusContainer instance )
+	IMPORT_C TInt StatusID( TInt aEntryID ) const;
+	//  
+	// 
+		
+	private:
+	void ConstructL( CNSmlCmdsBase* aSyncMLCmds );
+	CNSmlResultsContainer();
+	CNSmlResultsContainer( const CNSmlResultsContainer& aOther );
+	CNSmlResultsContainer& operator=( const CNSmlResultsContainer& aOther );
+
+	void CopyPcdataL( const SmlPcdata_t* aFromPcdata, SmlPcdata_t*& aToPcdata ) const;
+	void RemoveAllWrittenOnes();
+	void FreeResources( TInt aI );
+	//  Private variables
+	
+	private: //Data
+	struct TResultsData
+		{
+		HBufC8* iMsgRef;
+		HBufC8* iCmdRef;
+		SmlResults_t* iResults;
+		TBool iWasWritten;
+		TInt iStatusRef;
+		};
+	TInt iArrayInd;
+	CArrayFixFlat<TResultsData>* iResultsArray;
+	//used classes
+	CNSmlCmdsBase* iSyncMLCmds;
+	// Reserved to maintain binary compability
+	CNSmlFutureReservation* iReserved;
+	};
+
+#endif // __NSMLRESULTSCONTAINER_H