phonebookui/Phonebook2/ServerApplication/inc/CPbk2ContactFetchPhase.h
branchRCL_3
changeset 63 f4a778e096c2
child 64 c1e8ba0c2b16
child 85 38bb213f60ba
equal deleted inserted replaced
62:5b6f26637ad3 63:f4a778e096c2
       
     1 /*
       
     2 * Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Phonebook 2 server app contact fetch phase.
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #ifndef CPBK2CONTACTFETCHPHASE_H
       
    20 #define CPBK2CONTACTFETCHPHASE_H
       
    21 
       
    22 // INCLUDES
       
    23 #include <e32base.h>
       
    24 #include <CPbk2FetchDlg.h>
       
    25 #include <MPbk2FetchDlgObserver.h>
       
    26 #include <MVPbkSingleContactOperationObserver.h>
       
    27 #include <MPbk2ExitCallback.h>
       
    28 #include "MPbk2ServicePhase.h"
       
    29 
       
    30 // FORWARD DECLARATIONS
       
    31 class CVPbkContactLinkArray;
       
    32 class CPbk2FetchDlg;
       
    33 class MPbk2DialogEliminator;
       
    34 class MPbk2ServicePhaseObserver;
       
    35 class CVPbkFieldTypeSelector;
       
    36 class CVPbkContactStoreUriArray;
       
    37 class CVPbkFieldTypeSelector;
       
    38 class MVPbkContactViewBase;
       
    39 class CPbk2ServerAppStoreManager;
       
    40 class CPbk2StoreManager;
       
    41 
       
    42 // CLASS DECLARATION
       
    43 
       
    44 /**
       
    45  * Phonebook 2 server app contact fetch phase.
       
    46  * Responsible for fetching contacts.
       
    47  */
       
    48 class CPbk2ContactFetchPhase : public CBase,
       
    49                                public MPbk2ServicePhase,
       
    50                                private MPbk2FetchDlgObserver,
       
    51                                private MPbk2ExitCallback,
       
    52                                private MVPbkSingleContactOperationObserver
       
    53     {
       
    54     public: // Construction
       
    55 
       
    56         /**
       
    57          * Creates a new instance of this class.
       
    58          *
       
    59          * @param aObserver             Observer.
       
    60          * @param aStoreManager         Store manager.
       
    61          * @param aFetchParams          Fetch parameters.
       
    62          * @param aFetchOkToExit        Indicates whether it is ok
       
    63          *                              to exit fetch right away.
       
    64          * @param aFetchAcceptPolicy    Default fetch accept policy.
       
    65          * @param aViewFilter           Reference to field type selector.
       
    66          * @param aUsingDefaultConfig   ETrue if using device store URIs.
       
    67          * @param aStoreUris            Reference to store URIs.
       
    68          * @return  A new instance of this class.
       
    69          */
       
    70         static CPbk2ContactFetchPhase* NewL(
       
    71                 MPbk2ServicePhaseObserver& aObserver,
       
    72                 CPbk2ServerAppStoreManager& aStoreManager,
       
    73                 CPbk2FetchDlg::TParams aFetchParams,
       
    74                 TBool aFetchOkToExit,
       
    75                 MPbk2FetchDlgObserver::TPbk2FetchAcceptSelection aFetchAcceptPolicy,
       
    76                 CVPbkFieldTypeSelector* aViewFilter,
       
    77                 TBool aUsingDefaultConfig,
       
    78                 const CVPbkContactStoreUriArray* aStoreUris );
       
    79 
       
    80         /**
       
    81          * Destructor.
       
    82          */
       
    83         ~CPbk2ContactFetchPhase();
       
    84 
       
    85     public: // From MPbk2ServicePhase
       
    86         void LaunchServicePhaseL();
       
    87         void CancelServicePhase();
       
    88         void RequestCancelL(
       
    89                 TInt aExitCommandId );
       
    90         void AcceptDelayedL(
       
    91                 const TDesC8& aContactLinkBuffer );
       
    92         void DenyDelayedL(
       
    93                 const TDesC8& aContactLinkBuffer );
       
    94         MVPbkContactLinkArray* Results() const;
       
    95         TInt ExtraResultData() const;
       
    96         MVPbkStoreContact* TakeStoreContact();
       
    97         HBufC* FieldContent() const;
       
    98 
       
    99     private: // From MPbk2FetchDlgObserver
       
   100         TPbk2FetchAcceptSelection AcceptFetchSelectionL(
       
   101                 TInt aNumMarkedEntries,
       
   102                 MVPbkContactLink& aLastSelection );
       
   103         void FetchCompletedL(
       
   104                 MVPbkContactLinkArray* aMarkedEntries );
       
   105         void FetchCanceled();
       
   106         void FetchAborted();
       
   107         TBool FetchOkToExit();
       
   108 
       
   109     private: // From MPbk2ExitCallback
       
   110         TBool OkToExitL(
       
   111                 TInt aCommandId );
       
   112 
       
   113     private: // From MVPbkSingleContactOperationObserver
       
   114         void VPbkSingleContactOperationComplete(
       
   115                 MVPbkContactOperationBase& aOperation,
       
   116                 MVPbkStoreContact* aContact );
       
   117         void VPbkSingleContactOperationFailed(
       
   118                 MVPbkContactOperationBase& aOperation,
       
   119                 TInt aError );
       
   120 
       
   121     private: // Implementation
       
   122         CPbk2ContactFetchPhase(
       
   123                 MPbk2ServicePhaseObserver& aObserver,
       
   124                 CPbk2ServerAppStoreManager& aStoreManager,
       
   125                 CPbk2FetchDlg::TParams aFetchParams,
       
   126                 TBool aFetchOkToExit,
       
   127                 MPbk2FetchDlgObserver::TPbk2FetchAcceptSelection aFetchAcceptPolicy,
       
   128                 CVPbkFieldTypeSelector* aViewFilter,
       
   129                 TBool aUsingDefaultConfig,
       
   130                 const CVPbkContactStoreUriArray* aStoreUris );
       
   131         void HandleContactOperationCompleteL(
       
   132                 MVPbkStoreContact* aContact );
       
   133         void RetrieveContactL();
       
   134         void VerifyContactL(
       
   135                 MVPbkStoreContact* aContact );
       
   136 
       
   137     private: // Data
       
   138         /// Ref: Observer
       
   139         MPbk2ServicePhaseObserver& iObserver;
       
   140         /// Ref: Server app store manager
       
   141         CPbk2ServerAppStoreManager& iServerAppStoreManager;
       
   142         /// Own: Fetch results
       
   143         CVPbkContactLinkArray* iFetchResults;
       
   144         /// Ref: Fetch dialog
       
   145         CPbk2FetchDlg* iFetchDlg;
       
   146         /// Ref: For fetch dialog's exit handling
       
   147         MPbk2DialogEliminator* iFetchDialogEliminator;
       
   148         /// Own: Fetch parameters
       
   149         CPbk2FetchDlg::TParams iFetchParams;
       
   150         /// Own: Indicates whether it is ok to exit fetch right away
       
   151         TBool iFetchOkToExit;
       
   152         /// Own: Default fetch accept policy
       
   153         MPbk2FetchDlgObserver::TPbk2FetchAcceptSelection iFetchAcceptPolicy;
       
   154         /// Ref: View filter reference for fetch dialog builder
       
   155         CVPbkFieldTypeSelector* iViewFilter;
       
   156         /// Ref: Device config flag for reference for fetch dialog builder
       
   157         TBool iUsingDefaultConfig;
       
   158         /// Ref: Store uris reference for fetch dialog builder
       
   159         const CVPbkContactStoreUriArray* iStoreUris;
       
   160         /// Own: View for fetch names list
       
   161         MVPbkContactViewBase* iFetchNamesListView;
       
   162         /// Own: View for fetch groups list
       
   163         MVPbkContactViewBase* iFetchGroupsListView;
       
   164         /// Own: Contact links
       
   165         CVPbkContactLinkArray* iContactLinks;
       
   166         /// Own: Contact retrieve operation
       
   167         MVPbkContactOperationBase* iRetrieveOperation;
       
   168     };
       
   169 
       
   170 #endif // CPBK2CONTACTFETCHPHASE_H
       
   171 
       
   172 // End of File