diff -r 000000000000 -r ba25891c3a9e ncdengine/inc/ncdpurchasedetails.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ncdengine/inc/ncdpurchasedetails.h Thu Dec 17 08:51:10 2009 +0200 @@ -0,0 +1,389 @@ +/* +* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Definition of MNcdPurchaseDetails +* +*/ + + +#ifndef M_NCD_PURCHASE_DETAILS_H +#define M_NCD_PURCHASE_DETAILS_H + +#include +#include +#include "ncditempurpose.h" + +class MNcdPurchaseDownloadInfo; +class MNcdPurchaseInstallInfo; + +/** + * Purchase details. + * + * + */ +class MNcdPurchaseDetails + { + +public: + + virtual ~MNcdPurchaseDetails() + { + } + + /** + * State of the purchase. + * + * + */ + enum TState + { + + /** Payment made, but not downloaded nor installed. */ + EStatePurchased, + + /** Payment made and content downloaded, but not installed. */ + EStateDownloaded, + + /** Payment made, content downloaded and installed. */ + EStateInstalled + + }; + + /** + * Type of the purchased item. + */ + enum TItemType + { + + /** Item has unknown type. */ + EUnknown = 0, + + /** This is item. */ + EItem = 1, + + /** This is folder. */ + EFolder = 2 + + }; + + + /** + * Additional attributes + * + * These are retrieved with AttributeString and AttributeInt32 + * + * Adding new attributes does not cause a binary break but removing + * does + * + */ + enum TPurchaseAttribute + { + /** + * Content UID received in a protocol response + * + * Type: Int32 + */ + EPurchaseAttributeContentUid = 0, + + /** + * Content MIME type received in a protocol response + * + * Type: String + */ + EPurchaseAttributeContentMimeType, + + /** + * Internal attribute value, DO NOT USE + * + * @note Add new attributes before this + */ + EPurchaseAttributeInternal + }; + + /** + * Get purchase state. + * + * @note When an item has been installed, its state will remain + * as EStateInstalled in the purhcase detail even if the content + * was uninstalled. + * + * + * @return Current state of the purchase. + */ + virtual TState State() const = 0; + + /** + * Get client UID. + * + * + * @return Client UID. + */ + virtual TUid ClientUid() const = 0; + + /** + * Get namespace. + * + * + * @return Namespace. + */ + virtual const TDesC& Namespace() const = 0; + + /** + * Get entity ID. + * + * + * @return Entity ID. + */ + virtual const TDesC& EntityId() const = 0; + + /** + * Get item name. + * + * + * @return Item name. + */ + virtual const TDesC& ItemName() const = 0; + + /** + * Get item purpose. + * + * + * @return Item purpose. Bit field of TNcdItemPurpose flags. + * @see TNcdItemPurpose + */ + virtual TUint ItemPurpose() const = 0; + + /** + * Get catalog source name. + * + * + * @return Catalog source name. + */ + virtual const TDesC& CatalogSourceName() const = 0; + + /** + * Get download infos. + * + * @note Only valid for purchases in EStatePurchased state. + * + * + * @return Download infos. + */ + virtual TArray< MNcdPurchaseDownloadInfo* > DownloadInfoL() const = 0; + + /** + * Get purchase option ID. + * + * + * @return Purchase option ID. + */ + virtual const TDesC& PurchaseOptionId() const = 0; + + /** + * Get purchase option name. + * + * + * @return Purchase option name. + */ + virtual const TDesC& PurchaseOptionName() const = 0; + + /** + * Get purchase option price. + * + * + * @return Purchase option price. + */ + virtual const TDesC& PurchaseOptionPrice() const = 0; + + /** + * Get final price. + * + * + * @return Final price. + */ + virtual const TDesC& FinalPrice() const = 0; + + /** + * Get payment method name. + * + * + * @return Payment method name. + */ + virtual const TDesC& PaymentMethodName() const = 0; + + /** + * Get time of purchase. + * The time is universal time, not local time. + * + * @return Purchase time. + */ + virtual TTime PurchaseTime() const = 0; + + /** + * Get file name(s) of the downloaded file(s). + * + * @note Only valid for purchases in EStateDownloaded state. + * + * + * @return Array of file names. + */ + virtual const MDesCArray& DownloadedFiles() const = 0; + + /** + * Get file installation infos. + * + * @note Only valid for purchases in EStateInstalled state. + * + * + * @return File installation info array. + */ + virtual TArray< MNcdPurchaseInstallInfo* > InstallInfoL() const = 0; + + /** + * Get icon. + * + * + * @return Icon data. + */ + virtual const TDesC8& Icon() const = 0; + + /** + * Checks whether this purchase detail has an icon. + * + * @note This flag's intention is to indicate whether this purchase detail has + * an icon saved in the purhcase history. This does not indicate whether the + * actual icon data has been loaded or not. + * + * @return ETrue if icon is available, EFalse if not. + */ + virtual TBool HasIcon() const = 0; + + /** + * Get access point used in download process. + * + * + * @return Access point. + */ + virtual const TDesC& DownloadAccessPoint() const = 0; + + /** + * Get description. + * + * + * @return Description. + */ + virtual const TDesC& Description() const = 0; + + /** + * Get version. + * + * + * @return Version. + */ + virtual const TDesC& Version() const = 0; + + /** + * Get server URI. + * + * + * @return Server URI. + */ + virtual const TDesC& ServerUri() const = 0; + + /** + * Get item type. + * + * + * @return Item type. + */ + virtual TItemType ItemType() const = 0; + + /** + * Get the total size of the content of the item. + * + * + * @return The size, or 0 if not defined. + */ + virtual TInt TotalContentSize() const = 0; + + /** + * Getter for origin node id. + * + * + * @return The id. + */ + virtual const TDesC& OriginNodeId() const = 0; + + /** + * Getter for the time of last operation that has been directed + * to the purchase item. The time is an universal time. + * + * + * @return TTime Universal time of the last operation. + */ + virtual TTime LastOperationTime() const = 0; + + /** + * Getter for the last operation error code that has been set + * by the NCD Engine during operations or by the user of the API. + * + * @note The state gives the current state of the purchase details. + * If the error code is KErrNone, then the state of the purchase detail + * describes the state after a successfull operation. + * If the error code differs from KErrNone, then an error has occurred + * during an operation. The error code and the state can be used together + * to conclude what kind of operation failed. + * If the state is EStatePurchased after an error occurred, + * then there are two possibilities: + * either a purchase operation has failed or a download operation has failed. + * If the state is EStateDownloaded after an error occurred, then install operation + * has failed. + * If the state is EStateInstalled, then installing has succesfully completed + * and the error code should be KErrNone. If EStateInstalled is given with some + * other error code, this means that the installation was success + * but some repository information could not be set correctly. + * + * + * @return TInt Error code of the last operation. + */ + virtual TInt LastOperationErrorCode() const = 0; + + + /** + * String attribute getter + * + * @param aAttribute Attribute + * @return Parameter string or KNullDesC if not set + * + * @panic ENcdPanicIndexOutOfRange if aAttribute is invalid + * @panic ENcdPanicInvalidArgument if the attribute type is not string + */ + virtual const TDesC& AttributeString( + TPurchaseAttribute aAttribute ) const = 0; + + + /** + * Integer attribute getter + * + * @param aAttribute Attribute + * @return Parameter integer or 0 if not set + * + * @panic ENcdPanicIndexOutOfRange if aAttribute is invalid + * @panic ENcdPanicInvalidArgument if the attribute type is not TInt32 + */ + virtual TInt32 AttributeInt32( + TPurchaseAttribute aAttribute ) const = 0; + + }; + +#endif // M_NCD_PURCHASE_DETAILS_H