applicationmanagement/server/inc/AMDownloadStore.h
author hgs
Fri, 06 Aug 2010 18:56:37 +0530
changeset 52 6e38e48ee756
parent 47 d316aecb87fd
permissions -rw-r--r--
201031
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
47
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     1
/*
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     2
 * Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies). 
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     3
 * All rights reserved.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     8
 *
d316aecb87fd 201025_02
hgs
parents:
diff changeset
     9
 * Initial Contributors:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    11
 *
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    12
 * Contributors:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    13
 *
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    14
 * Description: Implementation of applicationmanagement components
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    15
 *
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    16
 */
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    17
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    18
#ifndef __CAMDOWNLOADSTORE_H__
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    19
#define __CAMDOWNLOADSTORE_H__
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    20
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    21
#include <e32base.h>
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    22
#include <qobject.h>
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    23
#include "AMDeploymentComponent.h"
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    24
#include "appmgmtdownloadmgr.h"
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    25
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    26
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    27
namespace NApplicationManagement
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    28
    {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    29
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    30
    
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    31
    // FORWARD DECLARATIONS
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    32
    class CDeploymentComponent;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    33
    class CAMDwnldQTWrap;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    34
    
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    35
    
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    36
    class MDownloadMngrObserver
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    37
          {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    38
    public:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    39
          virtual void ComponentDownloadComplete(
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    40
                  class CDeploymentComponent *aComponent, TInt iapid,
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    41
                  HBufC8* aServerId) = 0;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    42
          virtual TBool HasUidL(const TUid &aUid,
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    43
                  CDeploymentComponent *& aCompo,
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    44
                  CDeploymentComponent *aIgnored) = 0;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    45
          };
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    46
    
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    47
    
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    48
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    49
    class CAMDownloadStore : public CActive
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    50
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    51
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    52
    private:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    53
        /**
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    54
         * C++ default constructor.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    55
         */
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    56
        CAMDownloadStore(MDownloadMngrObserver& aObserver);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    57
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    58
        /**
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    59
         * By default Symbian 2nd phase constructor is private.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    60
         */
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    61
        void ConstructL();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    62
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    63
    public:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    64
        // Constructors and destructor
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    65
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    66
        /**
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    67
         * Two-phased constructor.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    68
         */
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    69
        static CAMDownloadStore* NewL(MDownloadMngrObserver& aObserver);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    70
        /**
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    71
         * Destructor.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    72
         */
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    73
        virtual ~CAMDownloadStore();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    74
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    75
    public:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    76
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    77
        void AddDownloadL(CDeploymentComponent *aComponent);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    78
        
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    79
        void RunL();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    80
        
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    81
        void DoCancel();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    82
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    83
        void StartDownload();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    84
        
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    85
        TInt DownloadCount();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    86
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    87
        RPointerArray<CAMDwnldQTWrap> iDwnldStore;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    88
        MDownloadMngrObserver& iObserver;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    89
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    90
        };
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    91
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    92
    class CAMDwnldQTWrap : public CBase, public MDownloadCallback, public MDownloadMgrQTCallback
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    93
        {
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    94
    private:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    95
        /**
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    96
         * C++ default constructor.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    97
         */
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    98
        CAMDwnldQTWrap(MDownloadMngrObserver& aObserver, CDeploymentComponent *aComponent);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
    99
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   100
        /**
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   101
         * By default Symbian 2nd phase constructor is private.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   102
         */
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   103
        void ConstructL();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   104
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   105
    public:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   106
        // Constructors and destructor
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   107
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   108
        /**
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   109
         * Two-phased constructor.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   110
         */
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   111
        static CAMDwnldQTWrap* NewL(MDownloadMngrObserver& aObserver, CDeploymentComponent *aComponent);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   112
        /**
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   113
         * Destructor.
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   114
         */
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   115
        virtual ~CAMDwnldQTWrap();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   116
        
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   117
    public:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   118
        void StartDownload(CDeploymentComponent *aComponent, TRequestStatus& aStatus);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   119
        
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   120
        TInt getPendingDownloads();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   121
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   122
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   123
    public:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   124
        void DownloadCompleteL(CDeploymentComponent *aComponent);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   125
	  void DownloadCompleted();
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   126
	  void DownloadFailed(TInt aDownloaderr);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   127
	  void SetStatus(TInt aStatus);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   128
        
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   129
        
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   130
    public:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   131
        void DownloadComplete(class CDeploymentComponent *aComponent,
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   132
                TInt aStatus);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   133
        TBool UidExistsL(const TUid &aUid, CDeploymentComponent *& aCompo,
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   134
                CDeploymentComponent *aIgnored);
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   135
        
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   136
    public:
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   137
        appmgmtdownloadmgr* appdwnld;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   138
        MDownloadMngrObserver& iObserver;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   139
        CDeploymentComponent *iComponent;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   140
        HBufC8* serverid;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   141
	  TInt iap;
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   142
        };
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   143
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   144
    }
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   145
d316aecb87fd 201025_02
hgs
parents:
diff changeset
   146
#endif