diff -r 000000000000 -r ba25891c3a9e ncdengine/provider/server/inc/ncdrightsobjectoperationimpl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ncdengine/provider/server/inc/ncdrightsobjectoperationimpl.h Thu Dec 17 08:51:10 2009 +0200 @@ -0,0 +1,123 @@ +/* +* 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: ?Description +* +*/ + + +#ifndef C_NCD_RIGHTS_OBJECT_OPERATION_H +#define C_NCD_RIGHTS_OBJECT_OPERATION_H + +#include "ncdbaseoperation.h" +#include "ncdoperationobserver.h" +#include "catalogsconnectionmethod.h" + +class MNcdInstallationService; +class CNcdDescriptorDownloadSubOperation; +class TNcdConnectionMethod; + +/** + * DRM rights object download & install operation + * + */ +class CNcdRightsObjectOperation : public CNcdBaseOperation + { +public: + + /** + * NewL + * + * @param aHttpSession HTTP session used for creating download operations + * + * @note Preferably the HTTP session has suitable defaults but if not then + * Config() can be used to retrieve and change the settings for the download. + * @note At least the access point must be set to the configuration. Target path + * is ignored (rights object is downloaded to memory only). + */ + static CNcdRightsObjectOperation* NewL( + CNcdGeneralManager& aGeneralManager, + const TDesC& aDownloadUri, + const TDesC& aMimeType, + const TNcdConnectionMethod& aMethod, + MNcdOperationRemoveHandler& aRemoveHandler, + MCatalogsHttpSession& aHttpSession, + MCatalogsSession& aSession ); + + + /** + * Destructor + */ + ~CNcdRightsObjectOperation(); + +public: // New methods + + /** + * HTTP configuration getter + */ + MCatalogsHttpConfig& Config(); + + +public: // From CNcdBaseOperation + + /** + * @see CNcdBaseOperation::Cancel() + */ + void Cancel(); + + +public: // from MNcdOperationObserver + + void Progress( CNcdBaseOperation& aOperation ); + + void QueryReceived( CNcdBaseOperation& aOperation, + CNcdQuery* aQuery ); + + void OperationComplete( CNcdBaseOperation* aOperation, + TInt aError ); + +protected: // From CNcdBaseOperation + + /** + * @see CNcdBaseOperation::RunOperation() + */ + TInt RunOperation(); + + +protected: + + // Constructor + CNcdRightsObjectOperation( + CNcdGeneralManager& aGeneralManager, + MNcdOperationRemoveHandler& aRemoveHandler, + MCatalogsHttpSession& aHttpSession, + MCatalogsSession& aSession ); + + void ConstructL( + const TNcdConnectionMethod& aMethod, + const TDesC& aDownloadUri, + const TDesC& aMimeType ); + + +private: + + MCatalogsHttpSession& iHttpSession; + + MNcdInstallationService* iInstallationService; + CNcdDescriptorDownloadSubOperation* iDownloadOp; + + HBufC8* iMimeType; + TCatalogsConnectionMethod iConnectionMethod; + }; + +#endif // C_NCD_RIGHTS_OBJECT_OPERATION_H