smartinstaller/adm/inc/ADMXmlParser.h
branchADM
changeset 48 364021cecc90
equal deleted inserted replaced
47:3f419852be07 48:364021cecc90
       
     1 /*
       
     2 * Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description: 
       
    15 *     Declares the CXmlParser class for ADM application.
       
    16 *
       
    17 *
       
    18 */
       
    19 
       
    20 
       
    21 #ifndef __ADMXMLPARSER_H__
       
    22 #define __ADMXMLPARSER_H__
       
    23 
       
    24 #include <e32base.h>
       
    25 #include <f32file.h>
       
    26 
       
    27 // Mandatory depfile xml elements
       
    28 _LIT8(KFieldPackageUid, "PackageUid");
       
    29 _LIT8(KFieldDepVersion, "Version");
       
    30 
       
    31 // Optional depfile xml elements
       
    32 _LIT8(KFieldDependency, "Dependency");
       
    33 _LIT8(KFieldDepPackageUid, "Uid");
       
    34 _LIT8(KFieldDepPackageName, "Name");
       
    35 _LIT8(KFieldDepPackageVersion, "Version");
       
    36 _LIT8(KFieldDepVendor, "Vendor");
       
    37 _LIT8(KFieldDepUrl, "Url");
       
    38 _LIT8(KFieldVersionInformation,"Information");
       
    39 _LIT8(KFieldInstallPackageName,"InstallPackageName");
       
    40 
       
    41 // Mandatory changes xml elements
       
    42 _LIT8(KFieldDepFileName,"DependentFileName");
       
    43 _LIT8(KFieldDateOfSubmission,"DateOfSubmission");
       
    44 _LIT8(KFieldDateOfModification,"DateOfModification");
       
    45 _LIT8(KFieldDownloadSize,"DownloadSize");
       
    46 _LIT8(KFieldInstalledSize,"InstalledSize");
       
    47 _LIT8(KFieldDescription,"Description");
       
    48 
       
    49 _LIT8(KFieldSupportedDevice,"SupportedDevice");
       
    50 _LIT8(KFieldDeviceName,"Name");
       
    51 _LIT8(KFieldDeviceMachineId,"MachineId");
       
    52 _LIT8(KFieldDeviceVersion,"Version");
       
    53 
       
    54 _LIT8(KFieldDate,"Date");
       
    55 _LIT8(KFieldDay,"Day");
       
    56 _LIT8(KFieldMonth,"Month");
       
    57 _LIT8(KFieldYear,"Year");
       
    58 
       
    59 _LIT8(KFieldDrivePriority,"DrivePriority");
       
    60 _LIT8(KFieldMandatoryInstallDrive,"MandatoryInstallDrive");
       
    61 
       
    62 //<!ELEMENT Package ( Name, Uid, Version, Vendor, Dependencies?, DateOfSubmission, DateOfModification, SupportedDevices, Size, Url*, Description?)>
       
    63 
       
    64 // Forward Declaration
       
    65 class CPackageInfo;
       
    66 class CSenXmlReader;
       
    67 class CSenDomFragment;
       
    68 class CDepTree;
       
    69 class CSenElement;
       
    70 
       
    71 enum XmlParserError
       
    72 	{
       
    73 	EErrorXmlNotWelformed,
       
    74 	EMissingPackageUid,
       
    75 	EMissingPackageName,
       
    76 	EMissingPackageVersion,
       
    77 	EMissingVendorName,
       
    78 	EMissingPackageUrl,
       
    79 	EInvalidPackageUid,
       
    80 	EIncorrectPackageUid,
       
    81 	EMissingDepVersion,
       
    82 	EInvalidVersion,
       
    83 	EInvalidMachineID,
       
    84 	EMissingDepFileName,
       
    85 	EMissingSisFileName,
       
    86 	EMissingSubmissionDate,
       
    87 	EMissingModificationDate,
       
    88 	EMissingDownloadSize,
       
    89 	EMissingInstalledSize,
       
    90 	EMissingMachineID,
       
    91 	EUnsupportedDevice,
       
    92 	EInvalidDrivePriority,
       
    93 	};
       
    94 
       
    95 class CXmlParser: public CBase
       
    96 	{
       
    97 public:
       
    98 	static CXmlParser* NewL();
       
    99 	static CXmlParser* NewLC();
       
   100 	~CXmlParser();
       
   101 
       
   102 	CPackageInfo* GetDepContentsL(const TDesC& aDepFileName, CPackageInfo *packageInfo,CDepTree* mainTree);
       
   103 	void GetChangesInfoL(const TDesC& aChangesFileName, CPackageInfo *packageInfo,CDepTree* mainTree);
       
   104 
       
   105 private:
       
   106 	void ConstructL();
       
   107 	CXmlParser();
       
   108 	TInt StringToInt(const TDesC8& aString, TUint32& aInt);
       
   109 	void SetDependenciesL(CPackageInfo* aPackageInfo, CDepTree* mainTree);
       
   110 	void GetVersionInfoL(CPackageInfo *packageInfo,TUint32 machineId);
       
   111 	void  SetDate(const TDesC8& aDatePtr);
       
   112 	TBool checkMachineIdL(CSenElement *versionInfo,TUint32 machineId);
       
   113 	void InitL();
       
   114 
       
   115 private:
       
   116 	CSenXmlReader* iXmlReader;
       
   117 	CSenDomFragment* iDomFragment;
       
   118 	RFs iRfs;
       
   119 	};
       
   120 
       
   121 #endif __ADMXMLPARSER_H__