drm_plat/camese_utility_api/inc/CameseUtility.h
changeset 0 95b198f216e5
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/drm_plat/camese_utility_api/inc/CameseUtility.h	Thu Dec 17 08:52:27 2009 +0200
@@ -0,0 +1,163 @@
+/*
+* Copyright (c) 2006-2007 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:  Defines the entry point for the CameseUtility library.
+*
+*/
+
+
+#ifndef CAMESEUTILITY_H
+#define CAMESEUTILITY_H
+
+// INCLUDES
+#include <e32base.h>
+
+// FORWARD DECLARATIONS
+class CCameseEngine;
+class RConnection;
+class RFile;
+class MCameseObserver;
+
+/**
+* CCameseUtility
+*  Interface published by the Camese Utility library.
+*
+*  @lib CameseUtility.dll
+*  @since 5.0
+*/
+NONSHARABLE_CLASS( CCameseUtility ) : public CBase
+    {
+    public:
+        /**
+         * Creates an new instance for license acquisition.
+         * @param aObserver Observer interface to be notified on license 
+         * acquisition states. If NULL then no notifications will be supplied 
+         * (when handling the download result for example)
+         * @return address of an instance of this class
+         */
+        IMPORT_C static CCameseUtility* NewL( MCameseObserver* aObserver = NULL );
+
+
+        /**
+         * Creates an new instance for license acquisition.
+         * @param aIapNumber a IAP connection to use for communications.
+         * @param aObserver Observer interface to be notified on license 
+         * acquisition states. If NULL then no notifications will be supplied 
+         * (when handling the download result for example)
+         * @return address of an instance of this class
+         */
+        IMPORT_C static CCameseUtility* NewL( TInt aIapNumber, 
+            MCameseObserver* aObserver = NULL );
+
+
+        /** 
+         * Creates an new instance for license acquisition.
+         * @param aSockServHandle a socket server handle. If 0 a new socket 
+         * server connection is created
+         * @param aConnPtr a connection to use for communications. If NULL 
+         * a new connection is created
+         * @param aObserver Observer interface to be notified on license 
+         * acquisition states. If NULL then no notifications will be supplied 
+         * (when handling the download result for example)
+         * @return address of an instance of this class
+         */
+        IMPORT_C static CCameseUtility* NewL( TInt aSockServHandle,
+            RConnection* aConnPtr, MCameseObserver* aObserver = NULL );
+
+
+        /**
+         * Destructor
+         */
+        IMPORT_C virtual ~CCameseUtility();
+
+
+        /**
+         * Starts the license acquisition based on a specified DRM header.
+         * @param aDrmHeader DRM header to use for license acquisition
+         * @param aUrl Heap descriptor to populate with the content URL. 
+         * Can be NULL.
+         * @param aStatus Request status. On completion contains the error code
+         */
+        IMPORT_C void AcquireLicense( const TDesC8& aDrmHeader, HBufC8*& aUrl, 
+            TRequestStatus& aStatus );
+
+
+        /**
+         * Starts the license acquisition based on a specified file handle.
+         * @param aFileHandle a handle to the file for which the license is 
+         * acquired.
+         * @param aUrl Heap descriptor to populate with the Music Shop URL for 
+         * non-silent acquisition or an error page. Can be NULL.
+         * @param aStatus Request status. On completion contains the error code.
+         */
+        IMPORT_C void AcquireLicense( const RFile& aFileHandle, HBufC8*& aUrl, 
+            TRequestStatus& aStatus );
+
+
+        /**
+         * Starts the license acquisition based on a specified file path.
+         * @param aFileHandle a file handle to use for non-silent license 
+         * acquisition
+         * @param aLicenseResponse The license response sent by the license 
+         * server in a non-silent post-delivery scenerio
+         * @param aStatus Request status. On completion contains the error code.
+         */
+        IMPORT_C void AcquireLicense( const RFile& aFileHandle, 
+            const TDesC8& aLicenseResponse, TRequestStatus& aStatus );
+
+
+        /**
+         * Sending the download result.
+         * @param aContentUrl The URL to the Content Server where status 
+         * should be reported.
+         * @param aResult Symbian error code indicating the result of the 
+         * content download operation
+         * This will be converted to an HRESULT value before being sent to the 
+         * Content Server.
+         * @param aStatus Request status. On completion contains the error code.
+         */
+        IMPORT_C void SendDownloadResult(const TDesC8& aContentUrl, TInt aResult, 
+            TRequestStatus& aStatus);
+
+
+        /**
+         * Cancels an existing asynchronous call.
+         */
+        IMPORT_C void Cancel();
+
+
+        /**
+         * Sets the IAP connection to use for communications.
+         * @param aIapId The IAP connection that will be used
+         */
+        IMPORT_C void SetIapId( TInt aIapId );
+
+    private:
+        /**
+         * Constructor
+         */
+        CCameseUtility();
+
+
+        /**
+         * Symbian OS 2nd phase constructor.
+         */
+        void ConstructL( TInt aIapNumber, MCameseObserver* aObserver );
+
+    private:
+        CCameseEngine* iEngine;
+    };
+
+#endif  // CAMESEUTILITY_H
+
+// End of File