contentstorage/casrv/causifscanner/inc/causifscanner.h
author hgs
Mon, 20 Sep 2010 10:22:22 +0300
changeset 119 50e220be30d1
parent 102 8b8b34fa9751
permissions -rw-r--r--
201037
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
85
7feec50967db 201003_02
hgs
parents:
diff changeset
     1
/*
7feec50967db 201003_02
hgs
parents:
diff changeset
     2
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
7feec50967db 201003_02
hgs
parents:
diff changeset
     3
 * All rights reserved.
7feec50967db 201003_02
hgs
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
7feec50967db 201003_02
hgs
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
7feec50967db 201003_02
hgs
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
7feec50967db 201003_02
hgs
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
7feec50967db 201003_02
hgs
parents:
diff changeset
     8
 *
7feec50967db 201003_02
hgs
parents:
diff changeset
     9
 * Initial Contributors:
7feec50967db 201003_02
hgs
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
7feec50967db 201003_02
hgs
parents:
diff changeset
    11
 *
7feec50967db 201003_02
hgs
parents:
diff changeset
    12
 * Contributors:
7feec50967db 201003_02
hgs
parents:
diff changeset
    13
 *
7feec50967db 201003_02
hgs
parents:
diff changeset
    14
 * Description: causifscanner.h
7feec50967db 201003_02
hgs
parents:
diff changeset
    15
 *
7feec50967db 201003_02
hgs
parents:
diff changeset
    16
 */
7feec50967db 201003_02
hgs
parents:
diff changeset
    17
7feec50967db 201003_02
hgs
parents:
diff changeset
    18
#ifndef CAUSIFSCANNER_H
7feec50967db 201003_02
hgs
parents:
diff changeset
    19
#define CAUSIFSCANNER_H
7feec50967db 201003_02
hgs
parents:
diff changeset
    20
7feec50967db 201003_02
hgs
parents:
diff changeset
    21
#include <e32base.h>
7feec50967db 201003_02
hgs
parents:
diff changeset
    22
#include <usif/sif/sifcommon.h>
7feec50967db 201003_02
hgs
parents:
diff changeset
    23
#include <usif/scr/scr.h>
7feec50967db 201003_02
hgs
parents:
diff changeset
    24
7feec50967db 201003_02
hgs
parents:
diff changeset
    25
#include "casrvplugin.h"
92
hgs
parents: 85
diff changeset
    26
#include "cainstallnotifier.h"
hgs
parents: 85
diff changeset
    27
#include "cammcwatcher.h"
85
7feec50967db 201003_02
hgs
parents:
diff changeset
    28
7feec50967db 201003_02
hgs
parents:
diff changeset
    29
class CCaStorageProxy;
7feec50967db 201003_02
hgs
parents:
diff changeset
    30
class CCaInnerEntry;
94
hgs
parents: 92
diff changeset
    31
class CCaMmcWatcher;
hgs
parents: 92
diff changeset
    32
class TPluginParams;
hgs
parents: 92
diff changeset
    33
hgs
parents: 92
diff changeset
    34
namespace Usif
hgs
parents: 92
diff changeset
    35
    {
hgs
parents: 92
diff changeset
    36
    class CComponentEntry;
hgs
parents: 92
diff changeset
    37
    }
85
7feec50967db 201003_02
hgs
parents:
diff changeset
    38
7feec50967db 201003_02
hgs
parents:
diff changeset
    39
using namespace Usif;
7feec50967db 201003_02
hgs
parents:
diff changeset
    40
7feec50967db 201003_02
hgs
parents:
diff changeset
    41
/*
7feec50967db 201003_02
hgs
parents:
diff changeset
    42
 An implementation of the CCaSrvPlugin interface for the Reference Installer.
7feec50967db 201003_02
hgs
parents:
diff changeset
    43
92
hgs
parents: 85
diff changeset
    44
 The CaSrvManager loads and uses this plug-in when the MIME type of a package
hgs
parents: 85
diff changeset
    45
 is 'binary/sif-refpkg'.
85
7feec50967db 201003_02
hgs
parents:
diff changeset
    46
 */
92
hgs
parents: 85
diff changeset
    47
NONSHARABLE_CLASS(CCaUsifScanner): public CCaSrvPlugin,
hgs
parents: 85
diff changeset
    48
        public MCaInstallListener, public MMmcWatcherCallback
85
7feec50967db 201003_02
hgs
parents:
diff changeset
    49
    {
7feec50967db 201003_02
hgs
parents:
diff changeset
    50
public:
92
hgs
parents: 85
diff changeset
    51
hgs
parents: 85
diff changeset
    52
    /**
hgs
parents: 85
diff changeset
    53
     * Two-phased constructor.
102
hgs
parents: 94
diff changeset
    54
     * @param aPLuginParam plugin param consist of storage, storage utils and scr.
92
hgs
parents: 85
diff changeset
    55
     * @retval New object.
hgs
parents: 85
diff changeset
    56
     */
85
7feec50967db 201003_02
hgs
parents:
diff changeset
    57
    static CCaUsifScanner* NewL( TPluginParams* aPluginParams );
92
hgs
parents: 85
diff changeset
    58
hgs
parents: 85
diff changeset
    59
    /**
hgs
parents: 85
diff changeset
    60
     * Destructor.
hgs
parents: 85
diff changeset
    61
     */
85
7feec50967db 201003_02
hgs
parents:
diff changeset
    62
    ~CCaUsifScanner();
7feec50967db 201003_02
hgs
parents:
diff changeset
    63
92
hgs
parents: 85
diff changeset
    64
public:
94
hgs
parents: 92
diff changeset
    65
    // From MCaInstallListener.
92
hgs
parents: 85
diff changeset
    66
hgs
parents: 85
diff changeset
    67
    /**
hgs
parents: 85
diff changeset
    68
     * Handle Install/Uninstall Event.
hgs
parents: 85
diff changeset
    69
     * @since S60 v5.0
hgs
parents: 85
diff changeset
    70
     * @param aUid installed uid.
hgs
parents: 85
diff changeset
    71
     */
119
hgs
parents: 102
diff changeset
    72
    void HandleInstallNotifyL();
92
hgs
parents: 85
diff changeset
    73
94
hgs
parents: 92
diff changeset
    74
public:
hgs
parents: 92
diff changeset
    75
    // From MMmcWatcherCallback.
hgs
parents: 92
diff changeset
    76
92
hgs
parents: 85
diff changeset
    77
    /**
hgs
parents: 85
diff changeset
    78
     * MmcChangeL is called when the MMC is removed or inserted.
hgs
parents: 85
diff changeset
    79
     */
hgs
parents: 85
diff changeset
    80
    void MmcChangeL();
85
7feec50967db 201003_02
hgs
parents:
diff changeset
    81
7feec50967db 201003_02
hgs
parents:
diff changeset
    82
private:
92
hgs
parents: 85
diff changeset
    83
hgs
parents: 85
diff changeset
    84
    /**
hgs
parents: 85
diff changeset
    85
     * Constructor
hgs
parents: 85
diff changeset
    86
     * @param aStorageProxy Storage handler.
102
hgs
parents: 94
diff changeset
    87
     * @param aSoftwareRegistry software component registry.
92
hgs
parents: 85
diff changeset
    88
     */
102
hgs
parents: 94
diff changeset
    89
    CCaUsifScanner( CCaStorageProxy& aStorageProxy,
hgs
parents: 94
diff changeset
    90
	        RSoftwareComponentRegistry& aSoftwareRegistry );
92
hgs
parents: 85
diff changeset
    91
hgs
parents: 85
diff changeset
    92
    /**
hgs
parents: 85
diff changeset
    93
     * Second phased constructor.
hgs
parents: 85
diff changeset
    94
     */
85
7feec50967db 201003_02
hgs
parents:
diff changeset
    95
    void ConstructL();
92
hgs
parents: 85
diff changeset
    96
hgs
parents: 85
diff changeset
    97
    /**
hgs
parents: 85
diff changeset
    98
     * Creates AppLib's entry from Usif's entry
hgs
parents: 85
diff changeset
    99
     * @param aEntry Usif entry obtained from Sif database.
hgs
parents: 85
diff changeset
   100
     * @param aCaEntry AppLib entry to be filled from Usif entry.
hgs
parents: 85
diff changeset
   101
     */
85
7feec50967db 201003_02
hgs
parents:
diff changeset
   102
    void CreateCaEntryFromEntryL( const CComponentEntry* aEntry,
7feec50967db 201003_02
hgs
parents:
diff changeset
   103
            CCaInnerEntry* aCaEntry );
7feec50967db 201003_02
hgs
parents:
diff changeset
   104
92
hgs
parents: 85
diff changeset
   105
    /**
hgs
parents: 85
diff changeset
   106
     * Adds package to database. Scans Sif db and adds entries to AppLib db.
hgs
parents: 85
diff changeset
   107
     */
hgs
parents: 85
diff changeset
   108
    void AddPackageL();
hgs
parents: 85
diff changeset
   109
hgs
parents: 85
diff changeset
   110
    /**
hgs
parents: 85
diff changeset
   111
     * Updates package in the database.
hgs
parents: 85
diff changeset
   112
     */
hgs
parents: 85
diff changeset
   113
    void UpdatePackagesL();
hgs
parents: 85
diff changeset
   114
hgs
parents: 85
diff changeset
   115
    /**
hgs
parents: 85
diff changeset
   116
     * Gets entries from AppLib story.
hgs
parents: 85
diff changeset
   117
     * @param aArray Array of entries to be obtained from db.
hgs
parents: 85
diff changeset
   118
     */
hgs
parents: 85
diff changeset
   119
    void GetCaPackageEntriesL( RPointerArray<CCaInnerEntry>& aArray );
hgs
parents: 85
diff changeset
   120
hgs
parents: 85
diff changeset
   121
    /**
hgs
parents: 85
diff changeset
   122
     * Gets entries from Usif story.
hgs
parents: 85
diff changeset
   123
     * @param aArray Array of entries to be obtained from db.
hgs
parents: 85
diff changeset
   124
     */
hgs
parents: 85
diff changeset
   125
    void GetUsifPackageEntriesL( RPointerArray<CComponentEntry>& aArray );
85
7feec50967db 201003_02
hgs
parents:
diff changeset
   126
92
hgs
parents: 85
diff changeset
   127
    /**
hgs
parents: 85
diff changeset
   128
     *  Checks if entry exists in AppLib db.
hgs
parents: 85
diff changeset
   129
     *  @param aArray Array of entries from AppLib db.
hgs
parents: 85
diff changeset
   130
     *  @param aEntry Entry data to be checked if exists.
hgs
parents: 85
diff changeset
   131
     *  @retval Returns array index if exists, otherwise KErrNotFound.
hgs
parents: 85
diff changeset
   132
     */
94
hgs
parents: 92
diff changeset
   133
    TInt PackageExists( RPointerArray<CCaInnerEntry>& aArray,
92
hgs
parents: 85
diff changeset
   134
            const CComponentEntry* aEntry );
85
7feec50967db 201003_02
hgs
parents:
diff changeset
   135
92
hgs
parents: 85
diff changeset
   136
    /**
hgs
parents: 85
diff changeset
   137
     *  Finds deleted entries from Usif. Updates aCaArray.
hgs
parents: 85
diff changeset
   138
     *  @param aCaArray Entries from AppLib db.
hgs
parents: 85
diff changeset
   139
     *  @param aUsifArray Entries from Usif db.
hgs
parents: 85
diff changeset
   140
     */
hgs
parents: 85
diff changeset
   141
    void FindDeletedEntriesL( RPointerArray<CCaInnerEntry>& aCaArray,
hgs
parents: 85
diff changeset
   142
            const RPointerArray<CComponentEntry>& aUsifArray );
hgs
parents: 85
diff changeset
   143
hgs
parents: 85
diff changeset
   144
    /**
hgs
parents: 85
diff changeset
   145
     * Removes entries from db.
hgs
parents: 85
diff changeset
   146
     * @param aCaArray Entries to be removed.
hgs
parents: 85
diff changeset
   147
     */
hgs
parents: 85
diff changeset
   148
    void RemoveEntriesFromDbL( RPointerArray<CCaInnerEntry>& aCaArray );
hgs
parents: 85
diff changeset
   149
hgs
parents: 85
diff changeset
   150
    /**
hgs
parents: 85
diff changeset
   151
     * Update usif list.
hgs
parents: 85
diff changeset
   152
     */
hgs
parents: 85
diff changeset
   153
    void UpdateUsifListL();
85
7feec50967db 201003_02
hgs
parents:
diff changeset
   154
7feec50967db 201003_02
hgs
parents:
diff changeset
   155
private:
92
hgs
parents: 85
diff changeset
   156
    /**
85
7feec50967db 201003_02
hgs
parents:
diff changeset
   157
     * not own
92
hgs
parents: 85
diff changeset
   158
     * Storage proxy.
85
7feec50967db 201003_02
hgs
parents:
diff changeset
   159
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
   160
    CCaStorageProxy& iStorageProxy;
7feec50967db 201003_02
hgs
parents:
diff changeset
   161
92
hgs
parents: 85
diff changeset
   162
    /**
hgs
parents: 85
diff changeset
   163
     * Install notifier. Own.
hgs
parents: 85
diff changeset
   164
     */
119
hgs
parents: 102
diff changeset
   165
    CCaInstallNotifier *iInstallNotifier;
92
hgs
parents: 85
diff changeset
   166
hgs
parents: 85
diff changeset
   167
    /**
hgs
parents: 85
diff changeset
   168
     * File session. Own
hgs
parents: 85
diff changeset
   169
     */
hgs
parents: 85
diff changeset
   170
    RFs iFs;
hgs
parents: 85
diff changeset
   171
hgs
parents: 85
diff changeset
   172
    /**
hgs
parents: 85
diff changeset
   173
     * Mmc watcher. Own.
hgs
parents: 85
diff changeset
   174
     */
hgs
parents: 85
diff changeset
   175
    CCaMmcWatcher* iMmcWatcher;
hgs
parents: 85
diff changeset
   176
hgs
parents: 85
diff changeset
   177
    /**
102
hgs
parents: 94
diff changeset
   178
     * Software component registry. Not own.
92
hgs
parents: 85
diff changeset
   179
     */
102
hgs
parents: 94
diff changeset
   180
    RSoftwareComponentRegistry& iSoftwareRegistry;
92
hgs
parents: 85
diff changeset
   181
85
7feec50967db 201003_02
hgs
parents:
diff changeset
   182
    };
7feec50967db 201003_02
hgs
parents:
diff changeset
   183
7feec50967db 201003_02
hgs
parents:
diff changeset
   184
#endif // CAUSIFSCANNER_H