diff -r 6aeb7a756187 -r 3c88a81ff781 utilities/downloadmanager/inc/omaddparser.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/utilities/downloadmanager/inc/omaddparser.h Fri Oct 15 17:30:59 2010 -0400 @@ -0,0 +1,142 @@ +/** + This file is part of CWRT package ** + + Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU (Lesser) General Public License as + published by the Free Software Foundation, version 2.1 of the License. + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + (Lesser) General Public License for more details. You should have + received a copy of the GNU (Lesser) General Public License along + with this program. If not, see . +*/ + +#ifndef OMADDPARSER_H_ +#define OMADDPARSER_H_ + +#include "dmcommon.h" +#include "dmcommoninternal.h" +#include "dmpimpl.h" +#include +#include +#include + +// forward declarations +class QString; +class OMADownloadDescriptor; +class OMADownloadDescParserPrivate; +class OMADownloadDescriptorPrivate; +class OMA2DownloadProduct; +class OMA2DownloadProductPrivate; +class OMA2DownloadMediaObj; +class OMA2DownloadMediaObjPrivate; + +typedef QList ProductList; +typedef QList MediaObjectList; + +enum OMADownloadAttribute +{ + /* OMA Download Attributes */ + OMADownloadDescName = 0, // "name" in OMA dd + OMADownloadDescVersion, // "version" in OMA dd + OMADownloadDescObjectURI, // "objectURI" in OMA dd + OMADownloadDescType, // "type" in OMA dd + OMADownloadDescSize, // "size" in OMA dd + OMADownloadDescVendor, // "vendor" in OMA dd + OMADownloadDescDescription, // "description" in OMA dd + OMADownloadDescInstallNotifyURI, // "installNotifyURI" in OMA dd + OMADownloadDescNextURL, // "nextURL" in OMA dd + OMADownloadDescInfoURL, // "infoURL" in OMA dd + OMADownloadDescIconURL, // "iconURL" in OMA dd + OMADownloadDescInstallParam, // "instalParam" in OMA dd + + /* OMA2 Download Attributes */ + OMA2DownloadDescUpdatedDDURI, // "updatedDDURI" in OMA dd2 + OMA2DownloadDescProductName, // "product" in OMA dd2 + OMA2DownloadDescProductInstallNotifyURI, // "installNotifyURI" of product in OMA dd2 + OMA2DownloadDescProductSuppressConfirmation, // "suppressuserconfirmation" of product in OMA dd2 + OMA2DownloadDescMediaObjName, // "mediaObject" in OMA dd2 + OMA2DownloadDescMediaObjType, // "type" in OMA dd2 + OMA2DownloadDescMediaObjSize, // "size" in OMA dd2 + OMA2DownloadDescMediaObjProgressiveDl, // "progressivedl" in OMA dd2 + OMA2DownloadDescMediaObjServer, // "server" in OMA dd2 + OMA2DownloadDescMediaObjInstallNotifyURI, // "installNotifyURI" of mediaObj in OMA dd2 + OMA2DownloadDescMediaObjSuppressConfirmation, // "suppressuserconfirmation" of mediaobj in OMA dd2 + OMA2DownloadDescLicense, // "license" in OMA dd2 + OMA2DownloadDescOrder, // "order" in OMA dd2 + OMA2DownloadDescText // "text" in OMA dd2 +}; +// class declaration + +// for parsing the OMA download descriptor +class OMADownloadDescParser : public QXmlDefaultHandler +{ + DM_DECLARE_PRIVATE(OMADownloadDescParser); + +public: + OMADownloadDescParser(); + ~OMADownloadDescParser(); + bool startDocument(); + bool startElement(const QString&, const QString&, const QString& , + const QXmlAttributes&); + bool endElement(const QString&, const QString&, const QString&); + bool characters(const QString& ch); + QString errorString(); + bool fatalError(const QXmlParseException &exception); + OMADownloadDescriptor* downloadDescriptor(); +}; + +// represents OMA download descriptor +class OMADownloadDescriptor +{ + DM_DECLARE_PRIVATE(OMADownloadDescriptor); +public: + OMADownloadDescriptor(); + ~OMADownloadDescriptor(); + // fetches the OMA DD related attributes + QVariant getAttribute(OMADownloadAttribute attr); + // sets the attributes if any + void setAttribute(const QString&, const QVariant&); + // fetches the product List + QList productList(); + // fetches the product count in a dd + int productCount(); + // adding product to the list + void addProduct(OMA2DownloadProduct*); +}; + +class OMA2DownloadProduct +{ + DM_DECLARE_PRIVATE(OMA2DownloadProduct); +public: + OMA2DownloadProduct(); + ~OMA2DownloadProduct(); + // fetches Product related attributes + QVariant getAttribute(OMADownloadAttribute attr); + // sets the Product attributes if any + void setAttribute(const QString&, const QVariant&); + // fetches the Media Object list + QList mediaObjList(); + // fetches the number of media downloads in a product + int mediaCount(); + // fetches the size of all the media objects present in dd + qint64 albumSize(); + // adding media object to the media object list. + void addMediaObject(OMA2DownloadMediaObj*); +}; + +class OMA2DownloadMediaObj +{ + DM_DECLARE_PRIVATE(OMA2DownloadMediaObj); +public: + OMA2DownloadMediaObj(); + ~OMA2DownloadMediaObj(); + // fetches the Media Object attributes + QVariant getAttribute(OMADownloadAttribute attr); + // sets the Media Object attributes if any + void setAttribute(const QString&, const QVariant&); +}; +#endif