contentstorage/casrv/cawidgetscanner/inc/cawidgetstoragehandler.h
author hgs
Fri, 28 May 2010 16:17:03 +0300
changeset 96 5d243a69bdda
parent 94 dbb8300717f7
child 98 d2f833ab7940
permissions -rw-r--r--
201021
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) 2008 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
*
93
hgs
parents: 87
diff changeset
    14
* Description:
85
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
7feec50967db 201003_02
hgs
parents:
diff changeset
    19
#ifndef C_WIDGETSTORAGEHANDLER_H
7feec50967db 201003_02
hgs
parents:
diff changeset
    20
#define C_WIDGETSTORAGEHANDLER_H
7feec50967db 201003_02
hgs
parents:
diff changeset
    21
7feec50967db 201003_02
hgs
parents:
diff changeset
    22
class CCaStorageProxy;
7feec50967db 201003_02
hgs
parents:
diff changeset
    23
class CCaWidgetDescription;
7feec50967db 201003_02
hgs
parents:
diff changeset
    24
7feec50967db 201003_02
hgs
parents:
diff changeset
    25
//  INCLUDES
7feec50967db 201003_02
hgs
parents:
diff changeset
    26
#include <e32base.h>
94
hgs
parents: 93
diff changeset
    27
#include <usif/scr/scr.h>
85
7feec50967db 201003_02
hgs
parents:
diff changeset
    28
#include "cawidgetdescription.h"
7feec50967db 201003_02
hgs
parents:
diff changeset
    29
#include "castorage_global.h"
94
hgs
parents: 93
diff changeset
    30
85
7feec50967db 201003_02
hgs
parents:
diff changeset
    31
// CONSTANTS
7feec50967db 201003_02
hgs
parents:
diff changeset
    32
7feec50967db 201003_02
hgs
parents:
diff changeset
    33
// FORWARD DECLARATIONS
7feec50967db 201003_02
hgs
parents:
diff changeset
    34
7feec50967db 201003_02
hgs
parents:
diff changeset
    35
/**
7feec50967db 201003_02
hgs
parents:
diff changeset
    36
 *  Widget Parser
7feec50967db 201003_02
hgs
parents:
diff changeset
    37
 *
7feec50967db 201003_02
hgs
parents:
diff changeset
    38
 *  @since Series Series60 5.x
7feec50967db 201003_02
hgs
parents:
diff changeset
    39
 */
7feec50967db 201003_02
hgs
parents:
diff changeset
    40
class CCaWidgetStorageHandler : public CBase
7feec50967db 201003_02
hgs
parents:
diff changeset
    41
    {
7feec50967db 201003_02
hgs
parents:
diff changeset
    42
public:
87
hgs
parents: 86
diff changeset
    43
    CA_STORAGE_TEST_FRIEND_CLASS    (T_CaWidgetScanner)
85
7feec50967db 201003_02
hgs
parents:
diff changeset
    44
7feec50967db 201003_02
hgs
parents:
diff changeset
    45
public:
7feec50967db 201003_02
hgs
parents:
diff changeset
    46
    // Constructors and destructor
7feec50967db 201003_02
hgs
parents:
diff changeset
    47
7feec50967db 201003_02
hgs
parents:
diff changeset
    48
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
    49
     * Two-phased constructor.
7feec50967db 201003_02
hgs
parents:
diff changeset
    50
     */
93
hgs
parents: 87
diff changeset
    51
    static CCaWidgetStorageHandler* NewL( CCaStorageProxy* aStorage,
85
7feec50967db 201003_02
hgs
parents:
diff changeset
    52
            RFs& aFs );
93
hgs
parents: 87
diff changeset
    53
    static CCaWidgetStorageHandler* NewLC( CCaStorageProxy* aStorage,
85
7feec50967db 201003_02
hgs
parents:
diff changeset
    54
            RFs& aFs );
7feec50967db 201003_02
hgs
parents:
diff changeset
    55
7feec50967db 201003_02
hgs
parents:
diff changeset
    56
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
    57
     * Destructor.
7feec50967db 201003_02
hgs
parents:
diff changeset
    58
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
    59
    virtual ~CCaWidgetStorageHandler();
93
hgs
parents: 87
diff changeset
    60
85
7feec50967db 201003_02
hgs
parents:
diff changeset
    61
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
    62
     * Synchronizes widgets
7feec50967db 201003_02
hgs
parents:
diff changeset
    63
     * @param aWidgets widgets to synchronize
7feec50967db 201003_02
hgs
parents:
diff changeset
    64
     */
93
hgs
parents: 87
diff changeset
    65
    void SynchronizeL( const RWidgetArray& aWidgets );
85
7feec50967db 201003_02
hgs
parents:
diff changeset
    66
93
hgs
parents: 87
diff changeset
    67
85
7feec50967db 201003_02
hgs
parents:
diff changeset
    68
private:
7feec50967db 201003_02
hgs
parents:
diff changeset
    69
7feec50967db 201003_02
hgs
parents:
diff changeset
    70
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
    71
     * Adds widget to storage.
93
hgs
parents: 87
diff changeset
    72
     * @param aWidget widget to be added
85
7feec50967db 201003_02
hgs
parents:
diff changeset
    73
     */
93
hgs
parents: 87
diff changeset
    74
    void AddL( const CCaWidgetDescription* aWidget );
85
7feec50967db 201003_02
hgs
parents:
diff changeset
    75
7feec50967db 201003_02
hgs
parents:
diff changeset
    76
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
    77
     * Updates widget in storage.
93
hgs
parents: 87
diff changeset
    78
     * @param aWidget widget to be updated
85
7feec50967db 201003_02
hgs
parents:
diff changeset
    79
     */
93
hgs
parents: 87
diff changeset
    80
    void UpdateL( const CCaWidgetDescription* aWidget, TUint aEntryId );
hgs
parents: 87
diff changeset
    81
85
7feec50967db 201003_02
hgs
parents:
diff changeset
    82
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
    83
     * Add/Updates widgets in DB
7feec50967db 201003_02
hgs
parents:
diff changeset
    84
     * @param aWidgets widgets to add
7feec50967db 201003_02
hgs
parents:
diff changeset
    85
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
    86
    void AddWidgetsL( const RWidgetArray& aWidgets );
93
hgs
parents: 87
diff changeset
    87
85
7feec50967db 201003_02
hgs
parents:
diff changeset
    88
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
    89
     * Removes widgets from DB
7feec50967db 201003_02
hgs
parents:
diff changeset
    90
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
    91
    void RemoveWidgetsL( ) ;
93
hgs
parents: 87
diff changeset
    92
85
7feec50967db 201003_02
hgs
parents:
diff changeset
    93
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
    94
     * Fetch widgets from content storage
7feec50967db 201003_02
hgs
parents:
diff changeset
    95
     */
93
hgs
parents: 87
diff changeset
    96
    void FetchWidgetsL( );
85
7feec50967db 201003_02
hgs
parents:
diff changeset
    97
7feec50967db 201003_02
hgs
parents:
diff changeset
    98
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
    99
     * Add widget to download collection
7feec50967db 201003_02
hgs
parents:
diff changeset
   100
     * @param aEntry entry containing widget information
7feec50967db 201003_02
hgs
parents:
diff changeset
   101
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
   102
    void AddWidgetToDownloadCollectionL( const CCaInnerEntry* aEntry );
93
hgs
parents: 87
diff changeset
   103
85
7feec50967db 201003_02
hgs
parents:
diff changeset
   104
    /**
93
hgs
parents: 87
diff changeset
   105
     * Set missing flag for an entry.
hgs
parents: 87
diff changeset
   106
     * @param aWidget widget.
85
7feec50967db 201003_02
hgs
parents:
diff changeset
   107
     */
93
hgs
parents: 87
diff changeset
   108
    void SetMissingFlagL( const CCaWidgetDescription * aWidget );
hgs
parents: 87
diff changeset
   109
hgs
parents: 87
diff changeset
   110
    /**
hgs
parents: 87
diff changeset
   111
     * Clear missing flag for an entry.
hgs
parents: 87
diff changeset
   112
     * @param aWidget widget.
hgs
parents: 87
diff changeset
   113
     */
hgs
parents: 87
diff changeset
   114
    void ClearVisibleFlagL( const CCaWidgetDescription* aWidget );
96
hgs
parents: 94
diff changeset
   115
    
hgs
parents: 94
diff changeset
   116
    /**
hgs
parents: 94
diff changeset
   117
    * Set localizations for widget in db
hgs
parents: 94
diff changeset
   118
    * @param aWidget widget.
hgs
parents: 94
diff changeset
   119
    * @param aEntryId of widget.
hgs
parents: 94
diff changeset
   120
    */    
hgs
parents: 94
diff changeset
   121
    void SetLocalizationsL( const CCaWidgetDescription* aWidget,
hgs
parents: 94
diff changeset
   122
            TInt aEntryId );
85
7feec50967db 201003_02
hgs
parents:
diff changeset
   123
7feec50967db 201003_02
hgs
parents:
diff changeset
   124
private:
7feec50967db 201003_02
hgs
parents:
diff changeset
   125
7feec50967db 201003_02
hgs
parents:
diff changeset
   126
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
   127
     * C++ default constructor.
7feec50967db 201003_02
hgs
parents:
diff changeset
   128
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
   129
    CCaWidgetStorageHandler( CCaStorageProxy* aStorage, RFs& aFs );
7feec50967db 201003_02
hgs
parents:
diff changeset
   130
7feec50967db 201003_02
hgs
parents:
diff changeset
   131
    /**
7feec50967db 201003_02
hgs
parents:
diff changeset
   132
     * By default Symbian 2nd phase constructor is private.
7feec50967db 201003_02
hgs
parents:
diff changeset
   133
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
   134
    void ConstructL( );
7feec50967db 201003_02
hgs
parents:
diff changeset
   135
93
hgs
parents: 87
diff changeset
   136
    /**
hgs
parents: 87
diff changeset
   137
     * Check if mass storage is not in use.
hgs
parents: 87
diff changeset
   138
     * @return true if mass storage is not in use.
hgs
parents: 87
diff changeset
   139
     */
hgs
parents: 87
diff changeset
   140
    TBool MassStorageNotInUse();
hgs
parents: 87
diff changeset
   141
94
hgs
parents: 93
diff changeset
   142
    /**
hgs
parents: 93
diff changeset
   143
     * Adds or updates component id attribute in entry based on SCR provided data
hgs
parents: 93
diff changeset
   144
     * @param aPackageUid uid of the package which the widget represented by aEntry
hgs
parents: 93
diff changeset
   145
     * is delivered with
hgs
parents: 93
diff changeset
   146
     * @param aEntry widget entry being updated with component id attribute.
hgs
parents: 93
diff changeset
   147
     */
hgs
parents: 93
diff changeset
   148
    void UpdateComponentIdL( const TDesC& aManifestFilePathName, 
hgs
parents: 93
diff changeset
   149
        CCaInnerEntry& aEntry ) const;
hgs
parents: 93
diff changeset
   150
hgs
parents: 93
diff changeset
   151
85
7feec50967db 201003_02
hgs
parents:
diff changeset
   152
private:
93
hgs
parents: 87
diff changeset
   153
    // Data
85
7feec50967db 201003_02
hgs
parents:
diff changeset
   154
7feec50967db 201003_02
hgs
parents:
diff changeset
   155
    /*
7feec50967db 201003_02
hgs
parents:
diff changeset
   156
     * Content Storage. Not Own
7feec50967db 201003_02
hgs
parents:
diff changeset
   157
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
   158
    CCaStorageProxy* iStorage;
93
hgs
parents: 87
diff changeset
   159
85
7feec50967db 201003_02
hgs
parents:
diff changeset
   160
    /*
7feec50967db 201003_02
hgs
parents:
diff changeset
   161
     * File server. Not own
7feec50967db 201003_02
hgs
parents:
diff changeset
   162
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
   163
    RFs iFs;
93
hgs
parents: 87
diff changeset
   164
85
7feec50967db 201003_02
hgs
parents:
diff changeset
   165
    /*
7feec50967db 201003_02
hgs
parents:
diff changeset
   166
     * Widgets. Own.
7feec50967db 201003_02
hgs
parents:
diff changeset
   167
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
   168
    RWidgetArray iWidgets;
93
hgs
parents: 87
diff changeset
   169
85
7feec50967db 201003_02
hgs
parents:
diff changeset
   170
    /*
7feec50967db 201003_02
hgs
parents:
diff changeset
   171
     * Indexes updated during last add operation. Own.
7feec50967db 201003_02
hgs
parents:
diff changeset
   172
     */
7feec50967db 201003_02
hgs
parents:
diff changeset
   173
    RArray<TInt> iUpdatedIndexes;
94
hgs
parents: 93
diff changeset
   174
    
93
hgs
parents: 87
diff changeset
   175
94
hgs
parents: 93
diff changeset
   176
    Usif::RSoftwareComponentRegistry iSoftwareRegistry;
85
7feec50967db 201003_02
hgs
parents:
diff changeset
   177
    };
7feec50967db 201003_02
hgs
parents:
diff changeset
   178
7feec50967db 201003_02
hgs
parents:
diff changeset
   179
#endif      // C_WIDGETSTORAGEHANDLER_H
7feec50967db 201003_02
hgs
parents:
diff changeset
   180
// End of File