os/security/contentmgmt/contentaccessfwfordrm/source/f32agent/f32agentmanager.h
changeset 0 bde4ae8d615e
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/os/security/contentmgmt/contentaccessfwfordrm/source/f32agent/f32agentmanager.h	Fri Jun 15 03:10:57 2012 +0200
     1.3 @@ -0,0 +1,122 @@
     1.4 +/*
     1.5 +* Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
     1.6 +* All rights reserved.
     1.7 +* This component and the accompanying materials are made available
     1.8 +* under the terms of the License "Eclipse Public License v1.0"
     1.9 +* which accompanies this distribution, and is available
    1.10 +* at the URL "http://www.eclipse.org/legal/epl-v10.html".
    1.11 +*
    1.12 +* Initial Contributors:
    1.13 +* Nokia Corporation - initial contribution.
    1.14 +*
    1.15 +* Contributors:
    1.16 +*
    1.17 +* Description: 
    1.18 +*
    1.19 +*/
    1.20 +
    1.21 +
    1.22 +/**
    1.23 + @file
    1.24 + @internalComponent
    1.25 + @released
    1.26 +*/
    1.27 +
    1.28 +#ifndef __F32AGENTMANAGER_H__
    1.29 +#define __F32AGENTMANAGER_H__
    1.30 +
    1.31 +#include <caf/agentinterface.h>
    1.32 +
    1.33 +namespace ContentAccess
    1.34 +	{
    1.35 +	class CF32AgentUi;
    1.36 +
    1.37 +	/** 	
    1.38 +	* CF32AgentManager is an Ecom implementation of interface CAgentManager, 
    1.39 +	* and provides  a fall-back agent for content which is not restricted 
    1.40 +	* (i.e. backward compatibility for clients switching to 
    1.41 +	* Content-Access-Framework APIs).
    1.42 +	* 
    1.43 +	* Essentially, if the CA framework does not identify a piece of
    1.44 +	* content as restricted (or rights managed) then this agent
    1.45 +	* implementation is created to handle access to the content. As such the
    1.46 +	* content will be treated as a plaintext file.
    1.47 +	*
    1.48 +	* @internalComponent 
    1.49 +	* @released 
    1.50 +	*/
    1.51 +	class CF32AgentManager : public CAgentManager
    1.52 +		{
    1.53 +	public:
    1.54 +		/** 
    1.55 +		* 	Standard C-Class NewL() constructor 
    1.56 +		*/
    1.57 +		static CF32AgentManager* NewL();
    1.58 +		
    1.59 +		~CF32AgentManager(void);
    1.60 +
    1.61 +
    1.62 +	public:
    1.63 +		virtual TInt DeleteFile(const TDesC &aFileName);
    1.64 +		virtual TInt CopyFile(const TDesC& aSource, const TDesC& aDestination);
    1.65 +		virtual TInt CopyFile(RFile& aSource, const TDesC& aDestination);
    1.66 +		virtual TInt RenameFile(const TDesC& aSource, const TDesC& aDestination);
    1.67 +		virtual TInt MkDir(const TDesC& aPath);
    1.68 +		virtual TInt MkDirAll(const TDesC& aPath);
    1.69 +		virtual TInt RmDir(const TDesC& aPath);
    1.70 +		virtual TInt GetDir(const TDesC& aName,TUint aEntryAttMask,TUint aEntrySortKey, CDir*& aEntryList) const;
    1.71 +		virtual TInt GetDir(const TDesC& aName,TUint aEntryAttMask,TUint aEntrySortKey, CDir*& aEntryList,CDir*& aDirList) const;
    1.72 +		virtual TInt GetDir(const TDesC& aName,const TUidType& aEntryUid,TUint aEntrySortKey, CDir*& aFileList) const;
    1.73 +		virtual TInt GetAttribute(TInt aAttribute, TInt& aValue, const TVirtualPathPtr& aVirtualPath);
    1.74 +		virtual TInt GetAttributeSet(RAttributeSet& aAttributeSet, const TVirtualPathPtr& aVirtualPath);
    1.75 +		virtual TInt GetStringAttributeSet(RStringAttributeSet& aAttributeSet, const TVirtualPathPtr& aVirtualPath);
    1.76 +		virtual TInt GetStringAttribute(TInt aAttribute, TDes& aValue, const TVirtualPathPtr& aVirtualPath);
    1.77 +		virtual TInt GetAttribute(TInt aAttribute, TInt& aValue, RFile& aFile, const TDesC& aUniqueId);
    1.78 +		virtual TInt GetAttributeSet(RAttributeSet& aAttributeSet, RFile& aFile, const TDesC& aUniqueId);	
    1.79 +		virtual TInt GetStringAttributeSet(RStringAttributeSet& aStringAttributeSet, RFile& aFile, const TDesC& aUniqueId);
    1.80 +		virtual TInt GetStringAttribute(TInt aAttribute, TDes& aValue, RFile& aFile, const TDesC& aUniqueId);
    1.81 +		virtual void NotifyStatusChange(const TDesC& aURI, TEventMask aMask, TRequestStatus& aStatus);
    1.82 +		virtual TInt CancelNotifyStatusChange(const TDesC& aURI, TRequestStatus& aStatus);
    1.83 +		virtual TInt SetProperty(TAgentProperty aProperty, TInt aValue);	
    1.84 +		virtual void DisplayInfoL(TDisplayInfo aInfo, const TVirtualPathPtr& aVirtualPath);
    1.85 +		virtual void DisplayInfoL(TDisplayInfo aInfo, RFile& aFile, const TDesC& aUniqueId);
    1.86 +		virtual TBool IsRecognizedL(const TDesC& aURI, TContentShareMode aShareMode) const;
    1.87 +		virtual TBool IsRecognizedL(RFile& aFile) const;
    1.88 +		virtual TBool RecognizeFileL(const TDesC& aFileName, const TDesC8& aBuffer, TDes8& aFileMimeType, TDes8& aContentMimeType) const;
    1.89 +		virtual TInt AgentSpecificCommand(TInt aCommand, const TDesC8& aInputBuffer, TDes8& aOutputBuffer);
    1.90 +		virtual void AgentSpecificCommand(TInt aCommand, const TDesC8& aInputBuffer, TDes8& aOutputBuffer, TRequestStatus& aStatus);
    1.91 +		virtual void DisplayManagementInfoL();
    1.92 +		virtual void PrepareHTTPRequestHeaders(RStringPool& aStringPool, RHTTPHeaders& aRequestHeaders) const;
    1.93 +		virtual TInt RenameDir(const TDesC& aOldName, const TDesC& aNewName);
    1.94 +
    1.95 +#ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
    1.96 +		virtual TBool IsRecognizedL(const TDesC8& aHeaderData) const;
    1.97 +		virtual TBool RecognizeContentL(const TDesC8& aHeaderData, TDes8& aFileMimeType, TDes8& aContentMimeType) const;
    1.98 +		virtual TInt GetAttribute(const TDesC8& aHeaderData, TInt aAttribute, TInt& aValue);
    1.99 +		virtual TInt GetAttributeSet(const TDesC8& aHeaderData, RAttributeSet& aAttributeSet);
   1.100 +		virtual TInt GetStringAttributeSet(const TDesC8& aHeaderData, RStringAttributeSet& aAttributeSet);
   1.101 +		virtual TInt GetStringAttribute(const TDesC8& aHeaderData, TInt aAttribute, TDes& aValue);
   1.102 +#endif // SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
   1.103 +
   1.104 +	protected:
   1.105 +		CF32AgentManager();
   1.106 +
   1.107 +	private:
   1.108 +		/** 
   1.109 +		* 	Second stage in two-phase create. Parameters may also be
   1.110 +		* 	passed to a new Agent implementation.
   1.111 +		*
   1.112 +		*  	@param aParams	A parameter structure containing
   1.113 +		* 					any necessary agent parameters.
   1.114 +		*/
   1.115 +		void ConstructL();
   1.116 +		
   1.117 +		CF32AgentUi& AgentUiL();
   1.118 +
   1.119 +	private:
   1.120 +		RFs iFs;
   1.121 +		CFileMan *iFileMan;
   1.122 +		CF32AgentUi *iAgentUi;
   1.123 +		};
   1.124 +} // namespace ContentAccess
   1.125 +#endif // __F32AGENTMANAGER_H__