blob: c1f15e698a828bbc8e30a311c0dadfea537ab11f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
/*
* Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
* Contact: http://www.qt-project.org/legal
* 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_
|