java_plat/java_superd_parser_api/inc/javasuperdparser.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 07 Jan 2010 16:18:57 +0200
changeset 0 3fd91c96c86c
permissions -rw-r--r--
Revision: v2.1.7 Kit: 201001
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
* All rights reserved.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
*
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
* Initial Contributors:
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
*
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
* Contributors:
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
*
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
* Description:  CJavaSuperDParser definition.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
*
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
*/
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
#ifndef C_JAVASUPERDPARSER_H
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
#define C_JAVASUPERDPARSER_H
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
#include <e32base.h>
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
#include <f32file.h>
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
#include <s32strm.h>
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
#include <e32std.h>
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
class CZipFile;
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
class CZipFileMember;
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    30
namespace Java
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
{
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
/**
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
 * CJavaSuperDParser includes methods for parsing SuperD packages.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
 *
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
 * This class includes methods for creating a superdistributable JAR
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    37
 * package and also methods for parsing a superdistributable JAR
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    38
 * package when installing it.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    39
 *
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    40
 * A superdistributable JAR package is in uncompressed ZIP format
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
 * containing:
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    42
 *     -# a manifest file (META-INF/MANIFEST.MF),
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
 *     -# a JAD file and
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    44
 *     -# either a plaintext JAR file or a JAR file in DCF.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
 *
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
 * The manifest file must have the following attributes:
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
 *     -# Distribution-Package: &lt;SuperD version number&gt;
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
 *     -# Distribution-Descriptor-Filename: &lt;JAD file name&gt;
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
 *     -# Distribution-Content-Filename: &lt;JAR file name&gt;
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    50
 *
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    51
 * To create a superdistributable jar package use the static method
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    52
 * CreateSuperDPackageL:
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    53
 * @code
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    54
 * using namespace Java;
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    55
 * CJavaSuperDParser::CreateSuperDPackageL( RFs& aFileSession,
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    56
 *                                          const TDesC& aDestinationFileName,
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    57
 *                                          const TDesC& aJadFileName,
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    58
 *                                          const TDesC& aJarFileName );
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    59
 * @endcode
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    60
 *
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    61
 * To parse a superdistributable jar package:
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    62
 * @code
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    63
 * using namespace Java;
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    64
 * CJavaSuperDParser* parser( NULL );
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    65
 * TRAPD( err, parser = CJavaSuperDParser::NewL( aFileSession,
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    66
 *                                               KSuperDFile,
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    67
 *                                               KDestinationDir ) );
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    68
 * if ( !err )
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    69
 *     {
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    70
 *     // Now you know that KSuperDFile is a superdistributable package.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    71
 *     // JAD and JAR file have been written in KDestinationDir.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    72
 *     }
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    73
 * delete parser;
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    74
 * @endcode
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    75
 *
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    76
 * CJavaSuperDParser was renamed from CJcfSuperDParser.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    77
 *
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    78
 * @lib   javadrmutils.lib
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    79
 * @since S60 v3.2
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    80
 */
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    81
NONSHARABLE_CLASS(CJavaSuperDParser) : public CBase
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    82
{
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    83
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    84
public:
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    85
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    86
    /**
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    87
     * First phase constructor. Creates a CJavaSuperDParser object, parses
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    88
     * the SuperD package and extracts its contents to the specified
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    89
     * folder.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    90
     *
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    91
     * @since S60 v3.2
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    92
     * @param aFileSession File session handle to be used by this object
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    93
     * @param aJarFileName Filename of the file containing SuperD
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    94
     * package
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    95
     * @param aDestinationFolder Folder where descriptor and content
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    96
     * files will be saved
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    97
     * @return The newly created CJavaSuperDParser object handle
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    98
     * @leave KErrCorrupt If supplied file is not a SuperD package
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    99
     */
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   100
    IMPORT_C static CJavaSuperDParser* NewL(RFs& aFileSession,
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   101
    const TDesC& aJarFileName,
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   102
    const TDesC& aDestinationFolder);
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   103
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   104
    /**
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   105
     * First phase constructor. Creates a CJavaSuperDParser object, parses
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   106
     * the SuperD package and extracts its contents to the specified
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   107
     * folder.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   108
     *
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   109
     * @since S60 v3.2
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   110
     * @param aFileSession File session handle to be used by this object
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   111
     * @param aJarFileHandle File handle of the file containing SuperD
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   112
     * package
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   113
     * @param aDestinationFolder Folder where descriptor and content
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   114
     * files will be saved
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   115
     * @return The newly created CJavaSuperDParser object handle
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   116
     * @leave KErrCorrupt If supplied file is not a SuperD package
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   117
     */
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   118
    IMPORT_C static CJavaSuperDParser* NewL(RFs& aFileSession,
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   119
                                            RFile& aJarFileHandle,
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   120
                                            const TDesC& aDestinationFolder);
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   121
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   122
    /**
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   123
     * Destructor. Frees allocated resources.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   124
     *
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   125
     * @since S60 v3.2
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   126
     */
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   127
    virtual ~CJavaSuperDParser();
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   128
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   129
    /**
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   130
     * Creates a superdistribution package from the given JAD and JAR file.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   131
     *
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   132
     * @since S60 v3.2
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   133
     * @param aFileSession File session handle to be used by this object
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   134
     * @param aDestinationFileName Filename of the destination SuperD
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   135
     * package.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   136
     * @param aDescriptorFileName JAD file name
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   137
     * @param aContentFileName JAR file name
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   138
     */
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   139
    IMPORT_C static void CreateSuperDPackageL(RFs& aFileSession,
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   140
            const TDesC& aDestinationFileName,
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   141
            const TDesC& aDescriptorFileName,
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   142
            const TDesC& aContentFileName);
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   143
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   144
    /**
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   145
     * Returns the name of the JAD file in the SuperD package parsed by
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   146
     * this object.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   147
     *
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   148
     * @since S60 v3.2
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   149
     * @return Descriptor file name
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   150
     */
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   151
    IMPORT_C TFileName DescriptorFileName() const;
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   152
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   153
    /**
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   154
     * Returns the name of the JAR file in the SuperD package parsed by
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   155
     * this object.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   156
     *
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   157
     * @since S60 v3.2
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   158
     * @return Content file name
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   159
     */
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   160
    IMPORT_C TFileName ContentFileName() const;
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   161
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   162
private:
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   163
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   164
    /**
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   165
     * Private C++ constructor.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   166
     *
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   167
     * @since S60 v3.2
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   168
     * @param aFileSession File session handle to be used by this object
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   169
     */
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   170
    CJavaSuperDParser(RFs& aFileSession);
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   171
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   172
    /**
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   173
     * Second phase Symbian constructor. Extracts the contents of the
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   174
     * SuperD package into the destination folder.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   175
     *
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   176
     * @since S60 v3.2
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   177
     * @param aJarFileName File name of SuperD package in the files system
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   178
     * @param aDestinationFolder Files from the package will be extracted
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   179
     * here.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   180
     * @leave KErrCorrupt If supplied file is not a SuperD package
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   181
     */
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   182
    void ConstructL(const TDesC& aJarFileName,
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   183
                    const TDesC& aDestinationFolder);
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   184
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   185
    /**
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   186
     * Second phase Symbian constructor. Checks and extracts the contents
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   187
     * of the SuperD package into the destination folder with
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   188
     * ParseZipFileL.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   189
     *
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   190
     * @since S60 v3.2
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   191
     * @param aJarFileHandle File handle to the SuperD package
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   192
     * @param aDestinationFolder Files from the package will be extracted
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   193
     * here.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   194
     * @leave KErrCorrupt If supplied file is not a SuperD package
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   195
     */
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   196
    void ConstructL(RFile& aJarFileHandle,
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   197
                    const TDesC& aDestinationFolder);
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   198
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   199
    /**
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   200
     * Calculates the CRC of a given file according to zip specification.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   201
     *
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   202
     * @since S60 v3.2
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   203
     * @param aFile File to calculate the CRC for
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   204
     * @return CRC value
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   205
     */
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   206
    static TUint32 CalculateCRC(RFile& aFile);
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   207
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   208
    /**
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   209
     * Creates and writes the MANIFEST.MF file for the SuperD package.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   210
     * The manifest file contains the following three lines:
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   211
     *     -# Distribution-Package: &lt;SuperD version number&gt;
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   212
     *     -# Distribution-Descriptor-Filename: &lt;JAD file name&gt;
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   213
     *     -# Distribution-Content-Filename: &lt;JAR file name&gt;
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   214
     *
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   215
     * This function creates a META-INF/MANIFEST.MF (in the META-INF
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   216
     * directory inside the SuperD JAR file with the structure above,
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   217
     * and writes it to a RWriteStream with WriteEntryAndUpdateIndexL.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   218
     *
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   219
     * @since S60 v3.2
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   220
     * @param aFileSession File session handle to be used by this object
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   221
     * @param aStream File write stream where the manifest file will be
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   222
     * written
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   223
     * @param aCurrentOffset Offset where to start to write in the write
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   224
     * stream
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   225
     * @param aZipIndex The zip file index
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   226
     * @param aRelativeJadFileName Name of the JAD file with relative path
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   227
     * @param aRelativeJarFileName Name of the JAR file with relative path
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   228
     */
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   229
    static void CreateAndWriteManifestL(RFs& aFileSession,
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   230
                                        RWriteStream& aStream,
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   231
                                        TInt& aCurrentOffset,
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   232
                                        HBufC8*& aZipIndex,
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   233
                                        const TDesC8& aRelativeJadFileName,
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   234
                                        const TDesC8& aRelativeJarFileName);
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   235
    /**
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   236
     * Writes an entry (file or directory) to the zip file stream and
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   237
     * updates the zip file index.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   238
     *
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   239
     * @since S60 v3.2
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   240
     * @param aFileSession File session handle to be used by this object
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   241
     * @param aStream ZIP file write stream where the entry will be written
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   242
     * @param aCurrentOffset Offset where to start to write
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   243
     * @param aZipIndex The zip file index
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   244
     * @param aRelativeFileName Relative name of the entry inside the ZIP
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   245
     * file
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   246
     * @param aFileName Name of the file in the file system which will be
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   247
     * written in the ZIP file. Use NULL to create a directory.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   248
     */
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   249
    static void WriteEntryAndUpdateIndexL(RFs& aFileSession,
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   250
                                          RWriteStream& aStream,
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   251
                                          TInt& aCurrentOffset,
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   252
                                          HBufC8*& aZipIndex,
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   253
                                          const TDesC8& aRelativeFileName,
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   254
                                          const TDesC* aFileName);
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   255
    /**
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   256
     * Writes the ZIP index entry to the ZIP output stream. The ZIP index
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   257
     * should be the last entry in the ZIP file.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   258
     *
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   259
     * @since S60 v3.2
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   260
     * @param aStream ZIP file write stream where the entry will be written
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   261
     * @param aCurrentOffset Offset where to start to write
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   262
     * @param aZipIndex The zip file index which will be written in the stream
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   263
     */
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   264
    static void WriteIndexL(RWriteStream& aStream,
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   265
                            TInt aCurrentOffset,
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   266
                            const HBufC8* aZipIndex);
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   267
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   268
    /**
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   269
     * Checks and parses the contents of the SuperD package.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   270
     *
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   271
     * @since S60 v3.2
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   272
     * @param aDestinationFolder Files from the package will be extracted
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   273
     * here.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   274
     */
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   275
    void ParseZipFileL(const TDesC& aDestinationFolder);
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   276
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   277
    /**
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   278
     * Checks from the manifest file that this is a SuperD package.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   279
     * Extracts the JAD and JAR file name from the manifest file in the
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   280
     * SuperD package and checks wether the package version is compatible
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   281
     * with the parser.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   282
     *
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   283
     * @since S60 v3.2
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   284
     * @param aManifest The manifest file entry in the ZIP file.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   285
     */
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   286
    void ParseManifestL(CZipFileMember* aManifest);
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   287
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   288
    /**
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   289
     * Extracts the JAD and the JAR file from the SuperD package to the
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   290
     * destination folder.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   291
     *
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   292
     * @since S60 v3.2
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   293
     * @param aDestinationFolder Destination folder name.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   294
     */
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   295
    void WriteFileL(const TDesC& aDestinationFolder);
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   296
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   297
private: // data
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   298
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   299
    /**
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   300
     * File session handle to be used by this object.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   301
     * Not own.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   302
     */
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   303
    RFs& iFileSession;
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   304
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   305
    /**
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   306
     * Zip file object.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   307
     * Own.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   308
     */
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   309
    CZipFile*       iZipFile;
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   310
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   311
    /**
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   312
     * JAD file entry in the SuperD package.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   313
     * Own.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   314
     */
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   315
    CZipFileMember* iJadMember;
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   316
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   317
    /**
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   318
     * JAR file entry in the SuperD package.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   319
     * Own.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   320
     */
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   321
    CZipFileMember* iJarMember;
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   322
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   323
    /**
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   324
     * Shows wether there is a valid manifest file in the package.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   325
     */
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   326
    TBool           iManifestFound;
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   327
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   328
    /**
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   329
     * Name of the JAD file in the SuperD package.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   330
     */
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   331
    TFileName       iDescriptorFileName;
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   332
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   333
    /**
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   334
     * Name of the JAR file in the SuperD package.
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   335
     */
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   336
    TFileName       iContentFileName;
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   337
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   338
};
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   339
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   340
}
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   341
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   342
#endif // C_JAVASUPERDPARSER_H
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   343
3fd91c96c86c Revision: v2.1.7
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   344
// End of File