pimappservices/calendar/server/inc/agsstreamidset.h
changeset 0 f979ecb2b13e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pimappservices/calendar/server/inc/agsstreamidset.h	Tue Feb 02 10:12:19 2010 +0200
@@ -0,0 +1,102 @@
+// Copyright (c) 1997-2009 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 __AGSSTREAMIDSET_H__
+#define __AGSSTREAMIDSET_H__
+
+#include "agsver.h"
+#include <s32std.h>
+
+class CAgnCalendarConverter;
+
+//------------------------------ referenced classes --------------------------
+
+class CAgnStreamIdSet : public CBase
+/**
+@internalAll
+@released
+*/
+	{
+public:
+
+	static CAgnStreamIdSet* NewL();
+	virtual ~CAgnStreamIdSet();
+	void AddL(TStreamId aId);
+	void DeleteL(TStreamId aId);
+	inline TInt Count() const;
+	TStreamId CreateL(CStreamStore& aStore);
+	void LoadL(CStreamStore& aStore,TStreamId aStreamId);
+	void SaveL(CStreamStore& aStore) const;
+	void ResetIteratorToStart();
+	TBool Next();
+	TBool At(TStreamId& aItem) const;
+	TInt Find(TStreamId aItem,TInt& aPos) const;
+	void RollbackL();
+	void CommitL(CStreamStore& aStore);
+	void Reset();
+private:
+	enum { EGranularity = 16, ERollbackGranularity = 2 };
+	TStreamId					iStreamId;
+	CArrayFixFlat<TStreamId>*	iArray;
+	TInt						iPos;
+	CArrayFixFlat<TStreamId>*	iAddRollbackArray;
+	CArrayFixFlat<TStreamId>*	iDeleteRollbackArray;
+	};
+
+
+class CAgnModelStreamIdSet : public CBase
+/**
+@internalAll
+@released
+*/
+	{
+public:
+	friend class CAgnCalendarConverter; // to allow stream IDs to be loaded from file converter
+	
+	static CAgnModelStreamIdSet* NewL();
+	virtual ~CAgnModelStreamIdSet();										
+	inline const CAgnStreamIdSet& EntryStreamIdSet() const;
+	inline CAgnStreamIdSet& EntryStreamIdSet();
+	inline const TStreamId& EntrySetStreamId() const;
+	inline const TStreamId& NextLocalUidValueStreamId() const;
+	inline const TStreamId& EntryManagerStreamId() const;
+	inline const TStreamId& FileInformationStreamId() const;
+	inline TAgnVersion Version() const;
+	void SaveL(CStreamStore& aStore,TStreamId aStreamId) const;
+	TStreamId CreateL(CStreamStore& aStore,const TAgnVersion& aVersion);
+	void LoadL(CStreamStore& aStore,TStreamId aStreamId);
+	void LoadL(CStreamStore& aStore,TStreamId aStreamId, CAgnCalendarConverter& aCalendarConverter);
+	void InternalizeL(RReadStream& aStream);
+	void ExternalizeL(RWriteStream& aStream) const;
+	void RollbackL();
+	void CommitL(CStreamStore& aStore);
+	void Reset();
+	void ChangeFileVersionL(CStreamStore& aStore,TStreamId aStreamId, TAgnVersion& aNewVersion);
+	
+protected:
+	void ConstructL();
+	
+private:
+	CAgnStreamIdSet*	iEntryStreamIdSet;	
+	TAgnVersion			iVersion;				
+	TStreamId			iEntrySetStreamId;	
+	TStreamId			iNextLocalUidValueStreamId; 
+	TStreamId			iEntryManagerStreamId;
+	TStreamId			iFileInformationStreamId;
+	};
+
+#include "agsstreamidset.inl"
+
+#endif