os/security/contentmgmt/contentaccessfwfordrm/source/f32agent/f32agentdata.h
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
     1 /*
     2 * Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
     3 * All rights reserved.
     4 * This component and the accompanying materials are made available
     5 * under the terms of the License "Eclipse Public License v1.0"
     6 * which accompanies this distribution, and is available
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
     8 *
     9 * Initial Contributors:
    10 * Nokia Corporation - initial contribution.
    11 *
    12 * Contributors:
    13 *
    14 * Description: 
    15 *
    16 */
    17 
    18 
    19 /**
    20  @file
    21  @internalComponent
    22  @released
    23 */
    24 
    25 #ifndef __F32AGENTDATA_H__
    26 #define __F32AGENTDATA_H__
    27 
    28 #include <f32file.h>
    29 #include <caf/agentinterface.h>
    30 
    31 namespace ContentAccess
    32 	{
    33 	class TVirtualPathPtr;
    34 	class CF32AgentUi;
    35 
    36 	/**
    37 	 F32 agent implementation of the CAgentData class used to read
    38 	 plaintext files
    39 	 
    40 	 @internalComponent
    41 	 @released
    42 	 */
    43 	class CF32AgentData : public CAgentData
    44 		{
    45 	public:
    46 		static CF32AgentData* NewL(const TVirtualPathPtr& aVirtualPath, TContentShareMode aShareMode);
    47 		static CF32AgentData* NewL(RFile& aFile, const TDesC& aUniqueId);
    48 		
    49 #ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
    50 		static CF32AgentData* NewL(const TDesC8& aHeaderData);
    51 #endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
    52 
    53 		~CF32AgentData();
    54 
    55 	public: // From CAgentData
    56 		virtual TInt Read(TDes8& aDes);
    57 		virtual TInt Read(TDes8& aDes,TInt aLength);
    58 		virtual void Read(TDes8& aDes, TRequestStatus& aStatus);
    59 		virtual void Read(TDes8& aDes, TInt aLength, TRequestStatus& aStatus);
    60 		virtual void ReadCancel(TRequestStatus& aStatus);
    61 		virtual void DataSizeL(TInt& aSize);
    62 #ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
    63 		virtual void DataSize64L(TInt64& aSize);
    64 #endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
    65 		virtual TInt Seek(TSeek aMode,TInt& aPos);
    66 #ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
    67 		virtual TInt Seek64(TSeek aMode,TInt64& aPos);
    68 #endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
    69 		virtual TInt SetProperty(TAgentProperty aProperty, TInt aValue);
    70 		virtual TInt EvaluateIntent(TIntent aIntent);
    71 		virtual TInt ExecuteIntent(TIntent aIntent);
    72 		virtual TInt GetAttribute(TInt aAttribute, TInt& aValue);
    73 		virtual TInt GetAttributeSet(RAttributeSet& aAttributeSet);
    74 		virtual TInt GetStringAttribute(TInt aAttribute, TDes& aValue);
    75 		virtual TInt GetStringAttributeSet(RStringAttributeSet& aStringAttributeSet);
    76 		virtual TInt Read(TInt aPos, TDes8& aDes, TInt aLength, TRequestStatus& aStatus);
    77 #ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API		
    78 		virtual TInt Read64(TInt64 aPos, TDes8& aDes, TInt aLength, TRequestStatus& aStatus);
    79 #endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
    80 
    81 #ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
    82 		virtual TInt Read(const TDesC8& aEncryptedInputDataPacket, TDes8& aDecryptedOutputDataPacket);		
    83 		virtual void Read(const TDesC8& aEncryptedInputDataPacket, TDes8& aDecryptedOutputDataPacket, TRequestStatus& aStatus);
    84 #endif	//SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
    85 
    86 	private:
    87 		CF32AgentData();
    88 		void ConstructL(const TVirtualPathPtr& aVirtualPath, TContentShareMode aShareMode);
    89 		void ConstructL(RFile& aFile, const TDesC& aUniqueId);
    90 
    91 #ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
    92 		void ConstructL(const TDesC8& aHeaderData);
    93 #endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
    94 
    95 		CF32AgentUi& AgentUiL();
    96 		
    97 	private:
    98 		/** Handle to the filesystem */
    99 		RFs iFs;
   100 		
   101 		/** RFile object */
   102 #ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
   103 		RFile64 iFile;
   104 #else
   105 		RFile   iFile;
   106 #endif //SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API 
   107 
   108 		CVirtualPath* iVirtualPath;
   109 		CF32AgentUi* iAgentUi;
   110 
   111 #ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
   112 		HBufC8* iHeaderData;
   113 #endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
   114 		};
   115 } // namespace ContentAccess
   116 #endif // __F32AGENTDATA_H__