contentmgmt/contentaccessfwfordrm/inc/agentinterface.h
branchRCL_3
changeset 61 641f389e9157
parent 45 030c4fbc13d7
child 62 a71299154b21
equal deleted inserted replaced
60:f18401adf8e1 61:641f389e9157
   375 		 @see Read(TInt aPos, TDes8& aDes, TInt aLength, TRequestStatus& aStatus)
   375 		 @see Read(TInt aPos, TDes8& aDes, TInt aLength, TRequestStatus& aStatus)
   376 		*/
   376 		*/
   377 		IMPORT_C virtual TInt Read64(TInt64 aPos, TDes8& aDes, TInt aLength, TRequestStatus& aStatus);
   377 		IMPORT_C virtual TInt Read64(TInt64 aPos, TDes8& aDes, TInt aLength, TRequestStatus& aStatus);
   378 #endif //SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
   378 #endif //SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
   379 
   379 
       
   380 #ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
       
   381 		/**
       
   382 		Decrypts the encrypted input data packet.Default implementation of this method returns KErrCANotSupported.
       
   383 		
       
   384 		@param aEncryptedInputDataPacket	Buffer descriptor containing the encrypted data packet supplied by client application. 
       
   385 		@param aDecryptedOutputDataPacket	Buffer descriptor supplied by the client application into which the decrypted data is written.
       
   386 											The length of this descriptor must be equal to or greater than the input packet.
       
   387 		@return								KErrNone if successful or KErrInsuffcientDataPacketLength, if a part of input data packet
       
   388 											is provided for decryption.Otherwise one of the CAF error codes defined in \c caferr.h  or 
       
   389 		 									one of the other system-wide error.
       
   390 		@capability 						DRM Access to DRM protected content is not permitted for processes without DRM capability.
       
   391 											Access to unprotected content is unrestricted.
       
   392 		*/
       
   393 		IMPORT_C virtual TInt Read(const TDesC8& aEncryptedInputDataPacket, TDes8& aDecryptedOutputDataPacket);
       
   394 		
       
   395 		
       
   396 		/**
       
   397 		Decrypts the encrypted input data packet asynchronously.Default implementation of this method returns KErrCANotSupported.
       
   398 	
       
   399 		@param aEncryptedInputDataPacket	Buffer descriptor containing the encrypted data packet supplied by client application. 
       
   400 		@param aDecryptedOutputDataPacket	Buffer descriptor supplied by the client application into which the decrypted data is written.
       
   401 											The length of this descriptor must be equal to or greater than the input packet.
       
   402 		@param aStatus						Asynchronous request status. On completion this will contain one of the following error codes:
       
   403 											KErrNone if the data packet was successfully decrypted or KErrInsuffcientDataPacketLength, if a part of input data packet
       
   404 											is provided for decryption.Otherwise one of the CAF error codes defined in \c caferr.h  or 
       
   405 		 									one of the other system-wide error codes.
       
   406 		@capability 						DRM Access to DRM protected content is not permitted for processes without DRM capability.
       
   407 										    Access to unprotected content is unrestricted. 
       
   408 		*/
       
   409 		IMPORT_C virtual void Read(const TDesC8& aEncryptedInputDataPacket, TDes8& aDecryptedOutputDataPacket, TRequestStatus& aStatus);
       
   410 #endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
   380 		};
   411 		};
   381 
   412 
   382 	/**	Defines the agent interface allowing clients to browse the objects 
   413 	/**	Defines the agent interface allowing clients to browse the objects 
   383 	within a file
   414 	within a file
   384 
   415 
  1422 				other system-wide error codes for any other errors.
  1453 				other system-wide error codes for any other errors.
  1423   		@capability DRM Copying DRM protected files is not permitted for processes without DRM capability. Copying unprotected files is permitted
  1454   		@capability DRM Copying DRM protected files is not permitted for processes without DRM capability. Copying unprotected files is permitted
  1424 		*/
  1455 		*/
  1425 		IMPORT_C virtual TInt CopyFile(RFile& aSource, const TDesC& aDestination);
  1456 		IMPORT_C virtual TInt CopyFile(RFile& aSource, const TDesC& aDestination);
  1426 		
  1457 		
       
  1458 #ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
       
  1459 		/** 
       
  1460 		Identifies whether or not the WMDRM content is handled by this agent using the header
       
  1461 		data of WMDRM file or stream content.
       
  1462 		
       
  1463 		The agent should leave only if a temporary or permanent condition prevents it from knowing
       
  1464 		whether it can detect the content's type.
       
  1465 
       
  1466 		@param aHeaderData	Header data of WMDRM file or stream content.
       
  1467 	    @return ETrue 		If this agent recognises the given content. 
       
  1468 		*/
       
  1469 		IMPORT_C virtual TBool IsRecognizedL(const TDesC8& aHeaderData) const;
       
  1470 		
       
  1471 		/** 
       
  1472 		 Determines whether or not the WMDRM content is recognized by this agent. 
       
  1473 		 If it is recognized, the agent will populate the file and content mime 
       
  1474 		 type. 
       
  1475 		 
       
  1476 		 The agent should leave only if a temporary or permanent condition prevents it from 
       
  1477 		 detecting content's type.
       
  1478 
       
  1479 		 @param aHeaderData			Header data of WMDRM content.
       
  1480 		 @param aFileMimeType 		Used to return the mime type of the content to the caller.
       
  1481 		 @param aContentMimeType	Used to return the mime type of the content embedded within the file to the caller. This field should be zero length if there is no embedded content.
       
  1482 	     @return					Whether or not the content was recognized.
       
  1483  		 @return ETrue 				If the content is handled by this agent. The aFileMimeType and aContentMimeType were updated.
       
  1484 		 @return EFalse 			If the content was not recognized by this agent.
       
  1485 		 */
       
  1486 		IMPORT_C virtual TBool RecognizeContentL(const TDesC8& aHeaderData, TDes8& aFileMimeType, TDes8& aContentMimeType) const;
       
  1487 		
       
  1488 		/**  Get an attribute from WMDRM content.
       
  1489 	
       
  1490 		@param aHeaderData	Header data of WMDRM content.
       
  1491 		@param aAttribute	The attribute to retrieve from ContentAccess::TAttribute.
       
  1492 		@param aValue		Used to return the value of the attribute.
       
  1493 		
       
  1494 		@return				KErrNone if the attribute value was updated.
       
  1495 		@return				KErrCANotSupported if the requested attribute is not supported for this content.
       
  1496 		@return				Otherwise one of the other CAF error codes defined in \c caferr.h  or one of the 
       
  1497 							other system-wide error codes for any other errors.
       
  1498 		@capability DRM 	Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted. 
       
  1499 		*/
       
  1500 		IMPORT_C virtual TInt GetAttribute(const TDesC8& aHeaderData, TInt aAttribute, TInt& aValue);
       
  1501 		
       
  1502 		/** Get a set of attributes from WMDRM content.
       
  1503 
       
  1504 		@param aHeaderData		Header data of WMDRM content.
       
  1505 		@param aAttributeSet	The set of attributes to query and update.
       
  1506 		
       
  1507 		@return 				KErrNone if the attribute set was updated successfully.
       
  1508 		@return 				Otherwise one of the other CAF error codes defined in \c caferr.h  or one of the 
       
  1509 								other system-wide error codes for any other errors.
       
  1510 		@capability DRM 		Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted. 
       
  1511 		*/
       
  1512 		IMPORT_C virtual TInt GetAttributeSet(const TDesC8& aHeaderData, RAttributeSet& aAttributeSet);
       
  1513 		
       
  1514 		
       
  1515 		/**  Get text string attributes or meta-data from WMDRM content.
       
  1516 
       
  1517 		@param aHeaderData	Header data of WMDRM content.
       
  1518 		@param aAttribute	The attribute to retrieve from ContentAccess::TStringAttribute.
       
  1519 		@param aValue		Used to return the value of the attribute.
       
  1520 		
       
  1521 		@return				KErrNone if the attribute was retrieved successfully.
       
  1522 		@return				KErrNotFound if the content object does not exist.
       
  1523 		@return				KErrCANotSupported if the requested attribute does not apply to this content object.
       
  1524 		@return				KErrOverflow if the buffer was not large enough to return the result.
       
  1525 		@return				Otherwise one of the other CAF error codes defined in \c caferr.h  or one of the 
       
  1526 							other system-wide error codes for any other errors.
       
  1527 		@capability DRM 	Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted. 
       
  1528 		*/
       
  1529 		IMPORT_C virtual TInt GetStringAttribute(const TDesC8& aHeaderData, TInt aAttribute, TDes& aValue);
       
  1530 		
       
  1531 		/** Used to obtain a set of string attributes from WMDRM content.
       
  1532 
       
  1533 		@param aStringAttributeSet	The set of attributes to query and update.
       
  1534 		@param aHeaderData			Header data of WMDRM content.
       
  1535 	
       
  1536 		@return 					KErrNone if the attribute set was updated successfully.
       
  1537 		@return 					KErrNotFound if the object with the given virtual path was not found.
       
  1538 		@return 					Otherwise one of the other CAF error codes defined in \c caferr.h  or one of the 
       
  1539 									other system-wide error codes for any other errors.
       
  1540 		@capability DRM 			Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted. 
       
  1541 		*/
       
  1542 		IMPORT_C virtual TInt GetStringAttributeSet(const TDesC8& aHeaderData, RStringAttributeSet& aStringAttributeSet);
       
  1543 
       
  1544 
       
  1545 #endif //#ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
       
  1546 		
  1427 		};
  1547 		};
  1428 
  1548 
  1429 		
  1549 		
  1430 	/** 
  1550 	/** 
  1431 	Manages and retrieves rights objects from an agent.
  1551 	Manages and retrieves rights objects from an agent.