os/security/contentmgmt/contentaccessfwfordrm/source/f32agent/f32agentcontent.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 __F32AGENTCONTENT_H__
    26 #define __F32AGENTCONTENT_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 CAgentContent class used to browse
    38 	 plaintext files. The browsing will not return any embedded objects since
    39 	 the F32 agent only enables access to the entire file
    40 	 
    41 	 @internalComponent
    42 	 @released
    43 	 */
    44 	class CF32AgentContent : public CAgentContent
    45 		{
    46 	public:
    47 		// Two phase constructor used when the file is opened 
    48 		// using a file name
    49 		static CF32AgentContent* NewL(const TDesC& aURI, TContentShareMode aShareMode);
    50 		
    51 		// Two phase constructor used when the file is opened with 
    52 		// a file handle
    53 		static CF32AgentContent* NewL(RFile& aFile);
    54 		
    55 #ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
    56 		static CF32AgentContent* NewL(const TDesC8& aHeaderData);
    57 #endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
    58 
    59 		virtual ~CF32AgentContent();
    60 
    61 	public: 
    62 		// From CAgentContent
    63 		virtual TInt OpenContainer(const TDesC& aUniqueId);
    64 		virtual TInt CloseContainer();
    65 		virtual void GetEmbeddedObjectsL(RStreamablePtrArray<CEmbeddedObject>& aArray);
    66 		virtual void GetEmbeddedObjectsL(RStreamablePtrArray<CEmbeddedObject>& aArray, TEmbeddedType aType);
    67 		virtual TInt Search(RStreamablePtrArray<CEmbeddedObject>& aArray, const TDesC8& aMimeType, TBool aRecursive);
    68 		virtual TInt GetAttribute(TInt aAttribute, TInt& aValue, const TDesC& aUniqueId);
    69 		virtual TInt GetAttributeSet(RAttributeSet& aAttributeSet, const TDesC& aUniqueId);
    70 		virtual TInt GetStringAttribute(TInt aAttribute, TDes& aValue, const TDesC& aUniqueId);
    71 		virtual TInt GetStringAttributeSet(RStringAttributeSet& aStringAttributeSet, const TDesC& aUniqueId);
    72 		virtual TInt AgentSpecificCommand(TInt aCommand, const TDesC8& aInputBuffer, TDes8& aOutputBuffer);
    73 		virtual void AgentSpecificCommand(TInt aCommand, const TDesC8& aInputBuffer, TDes8& aOutputBuffer, TRequestStatus& aStatus);
    74 		virtual void NotifyStatusChange(TEventMask aMask, TRequestStatus& aStatus, const TDesC& aUniqueId);
    75 		virtual TInt CancelNotifyStatusChange(TRequestStatus& aStatus, const TDesC& aUniqueId);
    76 		virtual void RequestRights(TRequestStatus& aStatus, const TDesC& aUniqueId);
    77 		virtual TInt CancelRequestRights(TRequestStatus& aStatus, const TDesC& aUniqueId);
    78 		virtual void DisplayInfoL(TDisplayInfo aInfo, const TDesC& aUniqueId);
    79 		virtual TInt SetProperty(TAgentProperty aProperty, TInt aValue);
    80 
    81 	private:
    82 		CF32AgentContent();
    83 		void ConstructL(const TDesC& aURI, TContentShareMode aShareMode);
    84 		void ConstructL(RFile& aFile);
    85 #ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
    86 		void ConstructL(const TDesC8& aHeaderData);
    87 #endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
    88 		
    89 		CF32AgentUi& AgentUiL();		
    90 		void SearchL(RStreamablePtrArray<CEmbeddedObject>& aArray, const TDesC8& aMimeType, TBool aRecursive);
    91 
    92 	private:
    93 		HBufC* iURI;
    94 		TContentShareMode iShareMode;
    95 		RFs iFs;
    96 #ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
    97 		RFile64 iFile;
    98 #else
    99 		RFile iFile;
   100 #endif //SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
   101 		CF32AgentUi* iAgentUi;
   102 #ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
   103 		HBufC8* iHeaderData;
   104 #endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
   105 		};
   106 } // namespace ContentAccess
   107 #endif // __F32AgentContent_H__