--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ncdengine/provider/protocol/inc/ncd_pp_purchase.h Thu Dec 17 08:51:10 2009 +0200
@@ -0,0 +1,328 @@
+/*
+* 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:
+*
+*/
+
+#ifndef NCD_PP_PURCHASE_H
+#define NCD_PP_PURCHASE_H
+
+#include "ncdprotocoltypes.h"
+#include "ncdpaymentmethod.h"
+
+class MNcdPreminetProtocolDownload;
+class MNcdConfigurationProtocolQuery;
+class CNcdString;
+
+class MNcdPreminetProtocolSmsDetails
+ {
+public:
+
+ /**
+ * Destructor
+ */
+ virtual ~MNcdPreminetProtocolSmsDetails() {}
+
+ /**
+ * Get SMS destination address
+ * @return Address string (usually the phone number)
+ */
+ virtual const TDesC& Address() const = 0;
+
+ /**
+ * Get SMS message
+ * @return Message string
+ */
+ virtual const TDesC& Message() const = 0;
+
+ /**
+ * Clones the object.
+ * @return The new object.
+ */
+ virtual MNcdPreminetProtocolSmsDetails* CloneL() const = 0;
+ };
+
+
+class MNcdPreminetProtocolPayment
+ {
+public:
+
+ /**
+ * Destructor
+ */
+ virtual ~MNcdPreminetProtocolPayment() {}
+
+ /**
+ * Payment method
+ * @return Method type
+ * @see MNcdPaymentMethod::TNcdPaymentMethodType
+ */
+ virtual MNcdPaymentMethod::TNcdPaymentMethodType Method() const = 0;
+
+ /**
+ * Payment query ID
+ * @return Query ID or KNullDesC
+ */
+ virtual const TDesC& QueryId() const = 0;
+
+ /**
+ * Payment name
+ * @return Name
+ */
+ virtual const CNcdString& Name() const = 0;
+
+ /**
+ * SMS Details of payment
+ * @param aIndex Index of SMS details element. Leaves if index is out of bounds.
+ * @return SMS details object reference
+ */
+ virtual const MNcdPreminetProtocolSmsDetails&
+ SmsDetailsL(TInt aIndex) const = 0;
+
+ /**
+ * Amount of SMS details
+ * @return SMS details count
+ */
+ virtual TInt SmsDetailsCount() const = 0;
+
+ /**
+ * Clones the object.
+ * @return The new object.
+ */
+ virtual MNcdPreminetProtocolPayment* CloneL() const = 0;
+ };
+
+
+class MNcdPreminetProtocolPurchaseEntity
+ {
+public:
+
+ /**
+ * Destructor
+ */
+ virtual ~MNcdPreminetProtocolPurchaseEntity() {}
+
+ /**
+ * Ticket for purchase
+ * @return Ticket ID or KNullDesC
+ */
+ virtual const TDesC& Ticket() const = 0;
+
+ /**
+ * Purchase entity ID
+ * @return ID or KNullDesC
+ */
+ virtual const TDesC& Id() const = 0;
+
+ /**
+ * Purchase delivery methods
+ * @return Array of available methods
+ */
+ virtual const RArray<TNcdDeliveryMethod>&
+ DeliveryMethods() const = 0;
+
+ /**
+ * Purchase download details
+ * @param aIndex Index of downloads. Leaves if index is out of bounds.
+ * @return Download object reference.
+ * @see DownloadDetailsCount()
+ */
+ virtual const MNcdPreminetProtocolDownload&
+ DownloadDetailsL(TInt aIndex) const = 0;
+
+ /**
+ * Purchase download details count
+ * @return Amount of download details
+ */
+ virtual TInt DownloadDetailsCount() const = 0;
+
+ /**
+ * Price of purchase entity
+ * @return Price string or KNullDesC
+ */
+ virtual const TDesC& Price() const = 0;
+
+ /**
+ * Price currency string
+ * @return Currency string or KNullDesC
+ */
+ virtual const TDesC& PriceCurrency() const = 0;
+
+ /**
+ * Price and currency as one string
+ * @return Price text or KNullDesC
+ */
+ virtual const TDesC& PriceText() const = 0;
+ };
+
+
+class MNcdPreminetProtocolPurchaseInformation
+ {
+public:
+
+ /**
+ * Destructor
+ */
+ virtual ~MNcdPreminetProtocolPurchaseInformation() {}
+
+ /**
+ * Purchase information URI
+ * @return URI or KNullDesC
+ */
+ virtual const TDesC& Uri() const = 0;
+
+ /**
+ * Purchase information namespace
+ * @return Namespace or KNullDesC
+ */
+ virtual const TDesC& Namespace() const = 0;
+
+ /**
+ * Does this purchase initiate a new session
+ * @return True of false
+ */
+ virtual TBool InitiateSession() const = 0;
+
+ /**
+ * Get payment object for this purchase.
+ * @param aIndex Index of purchase. Leaves if index is out of bounds.
+ * @return Payment object reference
+ * @see PaymentCount()
+ */
+ virtual const MNcdPreminetProtocolPayment&
+ PaymentL(TInt aIndex) const = 0;
+
+ /**
+ * Amount of available payments for this purchase.
+ * @return Amount of payments
+ */
+ virtual TInt PaymentCount() const = 0;
+
+ /**
+ * Get purchase disclaimer. Ownership is NOT transferred.
+ * @return Disclaimer object pointer or NULL.
+ */
+ virtual const MNcdConfigurationProtocolQuery*
+ Disclaimer() const = 0;
+
+ /**
+ * Total price of purchase.
+ * @return Price or KNullDesC
+ */
+ virtual const TDesC& TotalPrice() const = 0;
+
+ /**
+ * Currency of total price.
+ * @return Currency string or KNullDesC
+ */
+ virtual const TDesC& TotalPriceCurrency() const = 0;
+
+
+ /**
+ * Get specific entity of this purchase.
+ * NOTE: Currently only one entity per purchase is supported.
+ *
+ * @param aIndex Index of entity. Leaves if index is out of bounds.
+ * @return Purchase entity.
+ * @see EntityCount()
+ */
+ virtual const MNcdPreminetProtocolPurchaseEntity&
+ EntityL(TInt aIndex) const = 0;
+
+ /**
+ * Amount of entities in this purchase
+ * @return Entity count.
+ */
+ virtual TInt EntityCount() const = 0;
+
+ /**
+ * Purchase transaction ID
+ * @return ID or KNullDesC
+ */
+ virtual const TDesC& TransactionId() const = 0;
+
+ /**
+ * Purchase query ID
+ * @return ID or KNullDesC
+ */
+ virtual const TDesC& QueryId() const = 0;
+ };
+
+
+class MNcdPreminetProtocolPurchaseProcessed
+ {
+public:
+
+ /**
+ * Destructor
+ */
+ virtual ~MNcdPreminetProtocolPurchaseProcessed() {}
+
+ /**
+ * Purchase result code
+ * @return Result code
+ */
+ virtual TInt ResultCode() const = 0;
+
+ /**
+ * Information of processed purchase.
+ * Ownership is NOT transferred.
+ * @return Information object pointer or NULL if not available.
+ */
+ virtual const MNcdConfigurationProtocolQuery*
+ Information() const = 0;
+
+ /**
+ * Get specific entity of this purchase.
+ * NOTE: Currently only one entity per purchase is supported.
+ *
+ * @param aIndex Index of entity. Leaves if index is out of bounds.
+ * @return Purchase entity.
+ * @see EntityCount()
+ */
+ virtual const MNcdPreminetProtocolPurchaseEntity&
+ EntityL(TInt aIndex) const = 0;
+
+ /**
+ * Amount of entities in this purchase
+ * @return Entity count.
+ */
+ virtual TInt EntityCount() const = 0;
+
+ /**
+ * Purchase transaction ID
+ * @return ID or KNullDesC
+ */
+ virtual const TDesC& TransactionId() const = 0;
+
+ /**
+ * Purchase query ID
+ * @return ID or KNullDesC
+ */
+ virtual const TDesC& QueryId() const = 0;
+ };
+
+
+class MNcdPreminetProtocolPurchase
+ {
+public:
+
+ /**
+ * Destructor
+ */
+ virtual ~MNcdPreminetProtocolPurchase() {}
+
+ };
+
+#endif //NCD_PP_PURCHASE_H