javamanager/javabackup/midp2backup_usif/src.s60/javastoragebackuputil.h
author hgs
Tue, 06 Jul 2010 20:36:19 +0300
changeset 49 35baca0e7a2e
permissions -rw-r--r--
v2.2.3_1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
49
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
     1
/*
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
     2
* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
     3
* All rights reserved.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
     8
*
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
     9
* Initial Contributors:
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    11
*
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    12
* Contributors:
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    13
*
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    14
* Description:  Header file for CStorageBackupUtil class
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    15
*
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    16
*/
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    17
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    18
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    19
#ifndef JAVASTORAGEBACKUPUTIL_H
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    20
#define JAVASTORAGEBACKUPUTIL_H
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    21
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    22
#include <string>
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    23
#include <vector>
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    24
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    25
#include <e32base.h>
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    26
#include <wchar.h>
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    27
#include <s32strm.h>
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    28
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    29
#include "javastorageentry.h"
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    30
#include "javastorage.h"
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    31
#include "javastoragenames.h"
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    32
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    33
#define NUMBER_OF_TABLES 11
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    34
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    35
class RDesWriteStream;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    36
class RDesReadStream;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    37
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    38
namespace java
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    39
{
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    40
namespace backup
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    41
{
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    42
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    43
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    44
/**
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    45
--------------------------------------------------------------------------------
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    46
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    47
*  CStorageBackupUtil class is handling backup and restore of Java Storage data
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    48
*  This class is instantiated when a BUR operation is starting.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    49
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    50
Example Data that could be present in JavaStorage which is backed up and restored by this class.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    51
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    52
Application Package Data
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    53
ID        | PACKAGE_NAME | VENDOR | VERSION | ROOT_PATH                              | MEDIA_ID | INITIAL_SIZE | JAD_PATH                                              | JAR_PATH                                              | JAD_URL                          | JAR_URL                           | ACCESS_POINT | CONTENT_INFO | CONTENT_ID
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    54
788463512 | HelloWorld?  | Nokia  | 1.1     | \C\Private\102033E6\MIDlets\[101e59d8] | 123456   | 200          | \C\Private\102033E6\MIDlets\[101e59d8]\HelloWorld.jad | \C\Private\102033E6\MIDlets\[101e59d8]\HelloWorld.jar | http://getjar.com/MyGreatApp.jad | http://getjar.com/MyGreatApp2.jar | IAP:2        | 0            | 78d78sd89f789
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    55
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    56
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    57
Application Data
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    58
ID        | PACKAGE_ID | NAME       | MAIN_CLASS | AUTORUN
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    59
788463616 | 788463512  | HelloWorld | HelloWorld | 0
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    60
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    61
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    62
Application Package Attributes Data
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    63
ID        | NAME            | VALUE      | TRUSTED
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    64
788463512 | MIDlet-Name     | HelloWorld | 00
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    65
788463512 | MIDlet-Version  | 1.0        | 10
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    66
788463512 | MIDlet-Vendor   | Nokia      | 10
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    67
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    68
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    69
MIDP Application Package Data
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    70
ID        | TYPE         | SECURITY_DOMAIN | HASH      | CERT_HASH | RMS                                                | VALID_CERTS | ON_SCREEN_KEYPAD
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    71
788463512 | MIDletSuite? | Trusted         | 123456789 | 123456789 | \C\Private\102033E6\MIDlets\[101e59d8]\RMSdata.bin | 1,3,5       | 0
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    72
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    73
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    74
MIDP Permissions Data
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    75
ID        | CLASS                                        | NAME                     | ACTION | FUNCTION_GROUP
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    76
788463616 | javax.microedition.io.HttpProtocolPermission | http://server/index.html | read   | HTTP
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    77
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    78
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    79
MIDP Function Group Settings Data
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    80
ID        | FUNCTION_GROUP | ALLOWED_SETTINGS                     | CURRENT_SETTING | BLANKET_PROMPT
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    81
788463616 | HTTP           | 111 (e.g. BLANKET, SESSION, ONESHOT) | 001 (ONESHOT)   | 0
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    82
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    83
The allowed settings could be a an encoded integer based on the binary representation of 3 bits (e.g. 100 if only BLANKET is allowed, 011 if SESSION and ONESHOT are allowed).
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    84
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    85
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    86
MIDP Push Registrations Data
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    87
ID        | URL                                                                                       | NAME             | FILTER | REGISTRATION_TYPE
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    88
788463616 | sip:*;type=""application/test"", SIPPushReceiver?                                         | SIPPushReceiver? | *      | 1
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    89
788463616 | btspp://localhost:99999999999999999999999999999999;*;authenticated;blacklist=00E001234567 | BTPushReceiver?  | *      | 0
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    90
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    91
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    92
MIDP Alarm Push Registrations Data
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    93
ID        | ALARM_TIME
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    94
788463616 | 2008-09-13;15:20:30
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    95
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    96
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    97
MIDP Runtime Settings Data
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    98
EXTENSIONS
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    99
\C\Private\102033E6\Extenstions\12345678\Location.jar
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   100
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   101
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   102
Preinstall Data
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   103
NAME            | VENDOR     | VERSION | INSTALL_STATE
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   104
TestMIDletSuite | TestVendor | 1.2.3   | 2
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   105
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   106
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   107
MIDP OTA Status Data table
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   108
ID        | CREATION_TIME       | TYPE | OTA_CODE | URL                           | LATEST_RETRY_TIME   | RETRY_COUNT
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   109
788463616 | 2008-09-13;12:20:30 | 1    | 900      | http://www.moo.com/MIDLETS.js | 2008-09-13;15:20:30 | 2
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   110
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   111
-----------------------------------------------------------------------------------------------------------------------------
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   112
*/
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   113
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   114
class CStorageBackupUtil : public CBase
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   115
{
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   116
public:
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   117
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   118
    /**
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   119
     * Instantiates an object of this type
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   120
     */
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   121
    static CStorageBackupUtil* NewL();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   122
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   123
    ~CStorageBackupUtil();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   124
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   125
    /**
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   126
     * This method requests a section of Java Storage data.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   127
     * Called by the function GetBackupDataSectionL from midp2backupplugin
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   128
     * The data is filled into the stream till it is full.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   129
     * The data returned may be base or incremental depending
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   130
     * on the type of backup and the capability of the data owner.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   131
     *
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   132
     * @param aBuffer a pointer to the base of the location where data
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   133
     *        can be copied.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   134
     * @param aBackupNotFinished on return EFalse if all data has
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   135
     *        been returned for this drive, else ETrue.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   136
     */
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   137
    void BackupStorageDataL(RDesWriteStream& aStream, TBool& aBackupNotFinished, TInt& aBufferSpaceLeft);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   138
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   139
    /**
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   140
     * This method receives a section of base restore data.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   141
     * Stores the restore data in the vector so that it can be
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   142
     * written to Java Storage when all data have come.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   143
     *
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   144
     * @param stream holds the restore data
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   145
     * @param aRestoreState EFirstBuffer if all data has been returned
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   146
     *        for this drive, else remains at EStorage.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   147
     * @param aBufferSpaceLeft the space left in the buffer
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   148
     */
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   149
    void RestoreStorageDataL(RDesReadStream& aStream, TInt& aRestoreState, TInt& aBufferSpaceLeft);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   150
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   151
private:
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   152
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   153
    // Default constructor for the class
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   154
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   155
    CStorageBackupUtil();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   156
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   157
    // Second phase constructor function
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   158
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   159
    void ConstructL();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   160
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   161
    /**
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   162
     * This method fills the vector with Java Storage data.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   163
     * Data is read from JavaStorage tables and put inside the vector
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   164
     * which will later be put into the buffer stream.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   165
     * The reason for having vector to store the data is that connection to
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   166
     * Java Storage cannot be open for a long period of time
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   167
     * ie writing into buffer stream's time
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   168
     *
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   169
     * @return returns an integer value telling whether the operation
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   170
     *         was completed successfully or not.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   171
     */
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   172
    int FillVectorWithStorageData();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   173
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   174
    /**
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   175
     * A utility function which converts a wstring into a TDesC
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   176
     * and writes it into the stream.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   177
     *
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   178
     * @param stream an RDesWriteStream into which the converted
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   179
     *        string is written
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   180
     * @param tempString the wstring which is to be converted.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   181
     */
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   182
    void WriteStringtoStreamL(RDesWriteStream& aStream, std::wstring aTempString);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   183
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   184
    /**
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   185
     * A utility function which reads a TDesC from the stream, converts it
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   186
     * to a wstring and writes it into the vector.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   187
     *
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   188
     * @param stream an RDesReadStream from which the TDesC data is read
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   189
     */
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   190
    void ReadStringfromStreamL(RDesReadStream& aStream);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   191
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   192
    /**
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   193
     * This method writes the data to storage.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   194
     * Gets called after FillVectorsWithStreamDataL() function is called.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   195
     * This function opens a transaction to Storage and writes
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   196
     * the vector's data into storage row-by-row, and then commits
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   197
     * the transaction.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   198
     *
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   199
     * @return returns an integer specifying whether the operation
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   200
     *         has completed successfully or not.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   201
     */
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   202
    int WriteDataToStorage();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   203
public:
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   204
    /**
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   205
     * Utility function which fills the vector with data got from storage.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   206
     * Handles data of only APPLICATION_PACKAGE_TABLE.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   207
     *
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   208
     * @param afoundEntries the application entries which match
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   209
     *        the SQL query.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   210
     * @return an integer representing the number of rows written
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   211
     *         into the vector.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   212
     */
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   213
    int FillVectorwithAppPackageTableData(java::storage::JavaStorageApplicationList_t& afoundEntries);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   214
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   215
    /**
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   216
     * Utility function which fills the vector with data got from storage.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   217
     * Handles data of only APPLICATION_TABLE.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   218
     *
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   219
     * @param afoundEntries the application entries which match
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   220
     *        the SQL query.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   221
     * @return an integer representing the number of rows written
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   222
     *         into the vector.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   223
     */
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   224
    int FillVectorwithAppTableData(java::storage::JavaStorageApplicationList_t& afoundEntries);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   225
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   226
    /**
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   227
     * Utility function which fills the vector with data got from storage.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   228
     * Handles data of only APPLICATION_PACKAGE_ATTRIBUTES_TABLE.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   229
     *
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   230
     * @param afoundEntries the application entries which match
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   231
     *        the SQL query.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   232
     * @return an integer representing the number of rows written
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   233
     *         into the vector.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   234
     */
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   235
    int FillVectorwithAppPackageAttTableData(java::storage::JavaStorageApplicationList_t& afoundEntries);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   236
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   237
    /**
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   238
     * Utility function which fills the vector with data got from storage.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   239
     * Handles data of only MIDP_PACKAGE_TABLE.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   240
     *
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   241
     * @param afoundEntries the application entries which match
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   242
     *        the SQL query.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   243
     * @return an integer representing the number of rows written
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   244
     *         into the vector.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   245
     */
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   246
    int FillVectorwithMidpPackageTableData(java::storage::JavaStorageApplicationList_t& afoundEntries);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   247
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   248
    /**
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   249
     * Utility function which fills the vector with data got from storage.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   250
     * Handles data of only MIDP_PERMISSIONS_TABLE.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   251
     *
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   252
     * @param afoundEntries the application entries which match
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   253
     *        the SQL query.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   254
     * @return an integer representing the number of rows written
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   255
     *         into the vector.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   256
     */
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   257
    int FillVectorwithMidpPermTableData(java::storage::JavaStorageApplicationList_t& afoundEntries);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   258
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   259
    /**
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   260
     * Utility function which fills the vector with data got from storage.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   261
     * Handles data of only MIDP_FUNCTION_GROUP_SETTINGS_TABLE.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   262
     *
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   263
     * @param afoundEntries the application entries which match
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   264
     *        the SQL query.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   265
     * @return an integer representing the number of rows written
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   266
     *         into the vector.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   267
     */
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   268
    int FillVectorwithMidpFuncGrpSetTableData(java::storage::JavaStorageApplicationList_t& afoundEntries);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   269
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   270
    /**
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   271
     * Utility function which fills the vector with data got from storage.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   272
     * Handles data of only PUSH_REGISTRATION_TABLE.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   273
     *
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   274
     * @param afoundEntries the application entries which match
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   275
     *        the SQL query.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   276
     * @return an integer representing the number of rows written
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   277
     *         into the vector.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   278
     */
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   279
    int FillVectorwithPushRegTableData(java::storage::JavaStorageApplicationList_t& afoundEntries);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   280
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   281
    /**
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   282
     * Utility function which fills the vector with data got from storage.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   283
     * Handles data of only ALARM_REGISTRATION_TABLE.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   284
     *
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   285
     * @param afoundEntries the application entries which match
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   286
     *        the SQL query.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   287
     * @return an integer representing the number of rows written
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   288
     *         into the vector.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   289
     */
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   290
    int FillVectorwithAlarmRegTableData(java::storage::JavaStorageApplicationList_t& afoundEntries);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   291
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   292
    /**
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   293
     * Utility function which fills the vector with data got from storage.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   294
     * Handles data of only RUNTIME_SETTINGS_TABLE.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   295
     *
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   296
     * @param afoundEntries the application entries which match
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   297
     *        the SQL query.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   298
     * @return an integer representing the number of rows written
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   299
     *         into the vector.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   300
     */
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   301
    int FillVectorwithRuntimeSetTableData(java::storage::JavaStorageApplicationList_t& afoundEntries);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   302
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   303
    /**
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   304
     * Utility function which fills the vector with data got from storage.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   305
     * Handles data of only PREINSTALL_TABLE.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   306
     *
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   307
     * @param afoundEntries the application entries which match
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   308
     *        the SQL query.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   309
     * @return an integer representing the number of rows written
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   310
     *         into the vector.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   311
     */
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   312
    int FillVectorwithPreinstallTableData(java::storage::JavaStorageApplicationList_t& afoundEntries);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   313
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   314
    /**
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   315
     * Utility function which fills the vector with data got from storage.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   316
     * Handles data of only OTA_STATUS_TABLE.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   317
     *
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   318
     * @param afoundEntries the application entries which match
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   319
     *        the SQL query.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   320
     * @return an integer representing the number of rows written
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   321
     *         into the vector.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   322
     */
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   323
    int FillVectorwithOtaStatusTableData(java::storage::JavaStorageApplicationList_t& afoundEntries);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   324
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   325
    /**
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   326
     * Prints the vectors
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   327
     */
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   328
    void printVector();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   329
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   330
private:
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   331
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   332
    /**
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   333
     * The actual wstring vector which holds the data during a B&R operation.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   334
     * During a backup, this vector is filled with storage data and then
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   335
     * written to the stream.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   336
     * During a restore, this vector is filled with data from the stream
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   337
     * before it is written to storage.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   338
     * Own
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   339
     */
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   340
    std::vector< std::wstring > iStringVector;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   341
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   342
    /**
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   343
     * An integer which holds the length of the string.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   344
     * When only half the data is read from the stream, this holds the
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   345
     * length of the remaining data which is to be read.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   346
     * Own
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   347
     */
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   348
    int iLenOfString;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   349
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   350
    /**
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   351
     * An integer which holds the count of the number of strings
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   352
     * in the vector. Used during a B&R operation.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   353
     * Own
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   354
     */
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   355
    int iStrCount;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   356
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   357
    /**
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   358
     * An integer array which holds the number of rows of each table
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   359
     * present in storage.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   360
     * This information is written to stream and is used when the
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   361
     * restored data is written back to storage.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   362
     * Own
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   363
     */
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   364
    int iTableSize[NUMBER_OF_TABLES];
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   365
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   366
    /**
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   367
     * A Boolean value which says if a string was only
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   368
     * half read during a previous iteration.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   369
     * Own
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   370
     */
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   371
    TBool iRemainingString;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   372
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   373
    /**
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   374
     * A wstring which holds the half read string so that the
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   375
     * completed string can be appended to it during the next iteration
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   376
     * before it is put into the vector.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   377
     * Own
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   378
     */
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   379
    std::wstring iHalfReadString;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   380
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   381
    /**
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   382
     * Shows if it's the fill call to backup storage data.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   383
     * Vectors filled only at the first call.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   384
     * Own
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   385
     */
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   386
    TBool iFirstCalltoBackupStorageData;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   387
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   388
    /**
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   389
     * Shows if it's the fill call to restore storage data.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   390
     * Own
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   391
     */
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   392
    TBool iFirstCalltoRestoreStorageData;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   393
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   394
    /**
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   395
     * Shows the remaining number of bytes available in the stream.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   396
     * Own
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   397
     */
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   398
    int iBufferSpaceLeft;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   399
};
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   400
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   401
} // namespace backup
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   402
} // namespace java
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   403
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   404
#endif // JAVASTORAGEBACKUPUTIL_H