phonebookengines/contactsmodel/cntsrv/inc/CCntPermanentData.h
changeset 0 e686773b3f54
child 24 0ba2181d7c28
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookengines/contactsmodel/cntsrv/inc/CCntPermanentData.h	Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,86 @@
+/**
+* Copyright (c) 2005-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:
+*
+*/
+
+
+
+/**
+ @file
+ @internalComponent
+ @released
+*/
+
+
+#ifndef CCNTPERMANENTDATA_H_
+#define CCNTPERMANENTDATA_H_
+
+#include <cntviewbase.h>
+
+
+class CCntDbManagerController;
+class CCntDbManager;
+class CContactDefaultViewDefinition;
+
+
+/**
+This class manages permanent data created during Server start-up.
+*/
+class CCntPermanentData : public CActive, public MContactViewObserver
+	{
+private:
+	enum TState
+		{
+		EStateInitial = 0,
+		EStateOpeningDb,
+		EStateOpeningView,
+		EStateFinished
+		};
+	
+public:
+	~CCntPermanentData();
+	
+	void RunL();
+	void DoCancel();
+	TInt RunError(TInt aError);
+	void CompleteSelf(TInt aReason);
+	
+	static CCntPermanentData* NewL(CCntDbManagerController& aController);
+	
+	void StartDataCreationL();
+	TBool IsOnlyClientOfDbManager(CCntDbManager* manager) const;
+	void ReleaseDbManagerL(CCntDbManager* manager);
+	
+	void HandleContactViewEvent(const CContactViewBase &aView, const TContactViewEvent &aEvent);
+
+private:
+	CCntPermanentData(CCntDbManagerController& aController);
+	void ConstructL();
+	void Close();
+	
+	TBool OpenNextViewL();
+	CContactViewBase* OpenViewFromDefinitionL(const CContactDefaultViewDefinition& aViewDef);
+	
+private:
+	TState iState;
+	CCntDbManagerController& iController;
+	CCntDbManager * iManager;
+	RPointerArray<CContactDefaultViewDefinition> iViewDefs;
+	RPointerArray<CContactViewBase> iViews; // This does not own the CContactViewBase, RPointerArray is
+	                                        // only used since RArray<CContactViewBase&> does not compile.
+	};
+
+
+#endif // CCNTPERMANENTDATA_H_