ContentAccess::CData Class Reference

class ContentAccess::CData : public CBase

Allows clients to read data from a content object.

This class is initialised with an agent implementation that is responsible for this content object.

Inherits from

Public Member Functions
~CData ()
IMPORT_C void DataSizeL ( TInt &)
IMPORT_C TInt EvaluateIntent ( TIntent )
IMPORT_C TInt ExecuteIntent ( TIntent )
IMPORT_C TInt GetAttribute ( TInt , TInt &)
IMPORT_C TInt GetAttributeSet ( RAttributeSet &)
IMPORT_C TBool GetMimeTypeL ( TDes8 &)
IMPORT_C TInt GetStringAttribute ( TInt , TDes &)
IMPORT_C TInt GetStringAttributeSet (RStringAttributeSet &)
IMPORT_C CData * NewL (const TVirtualPathPtr &, TIntent , TContentShareMode )
IMPORT_C CData * NewL (const TVirtualPathPtr &, TContentShareMode )
IMPORT_C CData * NewL ( RFile &, const TDesC &, TIntent )
IMPORT_C CData * NewL ( RFile &, const TDesC &)
IMPORT_C CData * NewLC (const TVirtualPathPtr &, TIntent , TContentShareMode )
IMPORT_C CData * NewLC (const TVirtualPathPtr &, TContentShareMode )
IMPORT_C CData * NewLC ( RFile &, const TDesC &, TIntent )
IMPORT_C CData * NewLC ( RFile &, const TDesC &)
CData * NewLC ( TUid , const TVirtualPathPtr &, TIntent , TContentShareMode )
CData * NewLC ( TUid , RFile &, const TDesC &, TIntent )
IMPORT_C TInt Read ( TDes8 &)
IMPORT_C TInt Read ( TDes8 &, TInt )
IMPORT_C void Read ( TDes8 &, TRequestStatus &)
IMPORT_C void Read ( TDes8 &, TInt , TRequestStatus &)
IMPORT_C TInt Read ( TInt , TDes8 &, TInt , TRequestStatus &)
IMPORT_C void ReadCancel ( TRequestStatus &)
IMPORT_C TInt Seek ( TSeek , TInt &)
IMPORT_C TInt SetProperty ( TAgentProperty , TInt )
IMPORT_C void SetQosL ( TQosAttribute , TInt )
Private Member Functions
CData ()
void ConstructL ( RFile &, const TDesC &, TIntent )
void ConstructL (const TVirtualPathPtr &, TIntent , TContentShareMode )
void ConstructL ( TUid , RFile &, const TDesC &, TIntent )
void ConstructL ( TUid , const TVirtualPathPtr &, TIntent , TContentShareMode )
void ConstructL ( RFile &, const TDesC &)
void ConstructL (const TVirtualPathPtr &, TContentShareMode )
void ConstructL ( TUid , RFile &, const TDesC &)
void ConstructL ( TUid , const TVirtualPathPtr &, TContentShareMode )
Inherited Functions
CBase::CBase()
CBase::Delete(CBase *)
CBase::Extension_(TUint,TAny *&,TAny *)
CBase::operator new(TUint)
CBase::operator new(TUint,TAny *)
CBase::operator new(TUint,TLeave)
CBase::operator new(TUint,TLeave,TUint)
CBase::operator new(TUint,TUint)
CBase::~CBase()
Private Attributes
CAgentData * iAgentData
CAgentFactory * iAgentFactory
TUid iAgentUid

Constructor & Destructor Documentation

CData()

CData ( ) [private]

~CData()

~CData ( ) [virtual]

destructor

Member Functions Documentation

ConstructL(RFile &, const TDesC &, TIntent)

void ConstructL ( RFile & aFile,
const TDesC & aUniqueId,
TIntent aIntent
) [private]

Parameters

RFile & aFile
const TDesC & aUniqueId
TIntent aIntent

ConstructL(const TVirtualPathPtr &, TIntent, TContentShareMode)

void ConstructL ( const TVirtualPathPtr & aVirtualPath,
TIntent aIntent,
TContentShareMode aShareMode
) [private]

Parameters

const TVirtualPathPtr & aVirtualPath
TIntent aIntent
TContentShareMode aShareMode

ConstructL(TUid, RFile &, const TDesC &, TIntent)

void ConstructL ( TUid aAgentUid,
RFile & aFile,
const TDesC & aUniqueId,
TIntent aIntent
) [private]

Parameters

TUid aAgentUid
RFile & aFile
const TDesC & aUniqueId
TIntent aIntent

ConstructL(TUid, const TVirtualPathPtr &, TIntent, TContentShareMode)

void ConstructL ( TUid aAgentUid,
const TVirtualPathPtr & aVirtualPath,
TIntent aIntent,
TContentShareMode aShareMode
) [private]

Parameters

TUid aAgentUid
const TVirtualPathPtr & aVirtualPath
TIntent aIntent
TContentShareMode aShareMode

ConstructL(RFile &, const TDesC &)

void ConstructL ( RFile & aFile,
const TDesC & aUniqueId
) [private]

Parameters

RFile & aFile
const TDesC & aUniqueId

ConstructL(const TVirtualPathPtr &, TContentShareMode)

void ConstructL ( const TVirtualPathPtr & aVirtualPath,
TContentShareMode aShareMode
) [private]

Parameters

const TVirtualPathPtr & aVirtualPath
TContentShareMode aShareMode

ConstructL(TUid, RFile &, const TDesC &)

void ConstructL ( TUid aAgentUid,
RFile & aFile,
const TDesC & aUniqueId
) [private]

Parameters

TUid aAgentUid
RFile & aFile
const TDesC & aUniqueId

ConstructL(TUid, const TVirtualPathPtr &, TContentShareMode)

void ConstructL ( TUid aAgentUid,
const TVirtualPathPtr & aVirtualPath,
TContentShareMode aShareMode
) [private]

Parameters

TUid aAgentUid
const TVirtualPathPtr & aVirtualPath
TContentShareMode aShareMode

DataSizeL(TInt &)

IMPORT_C void DataSizeL ( TInt & aSize )

Gets the data size in bytes.

leave
KErrCASizeNotDetermined Size could not be determined by the managing agent.
leave
... One of the other CAF error codes defined in caferr.h or one of the system-wide error codes for any other errors.
capability
DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted

Parameters

TInt & aSize On return this will contain the size of the plaintext data in bytes.

EvaluateIntent(TIntent)

IMPORT_C TInt EvaluateIntent ( TIntent aIntent )

Allows a client to verify that the intent is supported by the current rights for the data object.

Note:

Since the intent is only evaluated the agent will not decrement any rights-state such as play counts.

ContentAccess::TIntent
capability
DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted

Parameters

TIntent aIntent The intended way the content will be used.

ExecuteIntent(TIntent)

IMPORT_C TInt ExecuteIntent ( TIntent aIntent )

Execute intent allows the application to signal it is about to carry out the specified intent on protected content.The agent will decrement applicable stateful rights such as play counts where necessary.

Applications should be very careful to use this function correctly.
  • If ExecuteIntent() is never called stateful rights will never be decremented. Users will be able to use the content forever

  • If ExecuteIntent() is called too often stateful rights may be consumed prematurely.

Usually it would be best to call ExecuteIntent immediately before the content is displayed or the instant playback begins. ExecuteIntent should not be considered a prerequisite for calling the Read functions. It is valid for an application to read from the file before calling ExecuteIntent.
Note:

Since rights are executed here the agent will decrement any rights-state such as play counts that apply.

capability
DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted

Parameters

TIntent aIntent The intent indicator.

GetAttribute(TInt, TInt &)

IMPORT_C TInt GetAttribute ( TInt aAttribute,
TInt & aValue
) const

Get an attribute for the content object

ContentAccess::TAttribute
         CContent* content = CContent::NewL(uri);
		CData* data = content->OpenContentL(EPlay, uniqueId);
		delete content;

		TInt value = 0;
		TInt err = data->GetAttribute(EIsProtected, value);
		if(err == KErrNone && value)
			{
			DisplayPadLock();
			}

		delete data;
        
capability
DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted

Parameters

TInt aAttribute The attribute to query, from ContentAccess::TAttribute.
TInt & aValue Used to return the attribute value.

GetAttributeSet(RAttributeSet &)

IMPORT_C TInt GetAttributeSet ( RAttributeSet & aAttributeSet ) const

Get a set of attributes for the content object

ContentAccess::TAttributeThe following example determines whether the content object is protected and has rights that will enable it to be viewed by the user

         // CData* data = a data object
		
		RAttributeSet attributeSet;
		CleanupClosePushL(attributeSet);
		attributeSet->AddL(EProtected);
		attributeSet->AddL(ECanView);

		User::LeaveIfError(data->GetAttributeSet(attributeSet);

		TInt err = attributeSet.GetValue(EProtected, value);
		if(err == KErrNone && value)
				{
				// file is DRM protected
				}

		err = attributeSet.GetValue(ECanView, value);
		if(err == KErrNone && value)
				{
				// File has rights that allow it to be displayed on screen
				}
		
		// Finished
		CleanupStack::PopAndDestroy(); 	// attributeSet.Close()
        
capability
DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted

Parameters

RAttributeSet & aAttributeSet The set of attributes to query and update.

GetMimeTypeL(TDes8 &)

IMPORT_C TBool GetMimeTypeL ( TDes8 & aMimeType ) const

Get the mime type of the content

Parameters

TDes8 & aMimeType Buffer to store the mime type provided by the agent.

GetStringAttribute(TInt, TDes &)

IMPORT_C TInt GetStringAttribute ( TInt aAttribute,
TDes & aValue
) const

Get text string attributes or meta-data for the content object

ContentAccess::TStringAttribute
         CContent* content = CContent::NewLC(uri);
		CData* data = content->OpenContentLC(EPlay, uniqueId);
		CleanupStack::PopAndDestroy(content);

		TBuf <MAX_PATH> previewUri;
		TInt err = data->GetStringAttribute(EPreviewURI, previewUri);
		if(err == KErrNone)
			{
			DisplayPreview(previewUri);
			}

		CleanupStack::PopAndDestroy(data);
        
capability
DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted

Parameters

TInt aAttribute The attribute to query, from ContentAccess::TStringAttribute.
TDes & aValue Returns the value of the attribute.

GetStringAttributeSet(RStringAttributeSet &)

IMPORT_C TInt GetStringAttributeSet ( RStringAttributeSet & aStringAttributeSet ) const

Obtain a set of string attributes for the content object

ContentAccess::TStringAttribute
         CContent* content = CContent::NewLC(uri);
		CData* data = content->OpenContentLC(EPlay, uniqueId);

		// create the attribute set, add the attributes we are interested in
		RStringAttributeSet stringAttributeSet;
		CleanupClosePushL(stringAttributeSet);
		stringAttributeSet.AddL(EPreviewURI);
		stringAttributeSet.AddL(ETitle);
		
		User::LeaveIfError(data->GetStringAttributeSet(stringAttributeSet));
	
		// Pass the value of the string attribute to DisplayPreview()
		TFileName previewUri;
		TInt err = stringAttributeSet.GetValue(EPreviewURI, previewUri);
		if(err == KErrNone)
			{
			DisplayPreview(previewUri);
			}
		
		CleanupStack::PopAndDestroy(3);	// content, data, stringAttributeSet
        
capability
DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted

Parameters

RStringAttributeSet & aStringAttributeSet The set of attributes to query and update.

NewL(const TVirtualPathPtr &, TIntent, TContentShareMode)

IMPORT_C CData * NewL ( const TVirtualPathPtr & aVirtualPath,
TIntent aIntent,
TContentShareMode aShareMode
) [static]

Creates a new CData object.

leave
KErrNotFound The content object with the given UniqueId does not exist.
leave
KErrCAPendingRights The rights have not yet arrived but are expected soon.
leave
KErrCANoPermission Rights exist but the specified intent is not permitted.
leave
KErrCANoRights No rights exist for the content object.
leave
KErrCANotSupported Unable to open the object with the specified UniqueId, it may be a container object.
leave
KErrPermissionDenied The agent does not allow the client to access the content object.
leave
KErrAccessDenied The content is already in use.
leave
... One of the other CAF error codes defined in caferr.h or one of the other system-wide error codes for any other errors.

Parameters

const TVirtualPathPtr & aVirtualPath The content object to read
TIntent aIntent The intended use of the content.
TContentShareMode aShareMode The file share mode used to open this content.

NewL(const TVirtualPathPtr &, TContentShareMode)

IMPORT_C CData * NewL ( const TVirtualPathPtr & aVirtualPath,
TContentShareMode aShareMode
) [static]

Creates a new CData object.

leave
KErrNotFound The content object with the given UniqueId does not exist.
leave
KErrCAPendingRights The rights have not yet arrived but are expected soon.
leave
KErrCANoPermission Rights exist but the specified intent is not permitted.
leave
KErrCANoRights No rights exist for the content object.
leave
KErrCANotSupported Unable to open the object with the specified UniqueId, it may be a container object.
leave
KErrPermissionDenied The agent does not allow the client to access the content object.
leave
KErrAccessDenied The content is already in use.
leave
... One of the other CAF error codes defined in caferr.h or one of the other system-wide error codes for any other errors.

Parameters

const TVirtualPathPtr & aVirtualPath The content object to read.
TContentShareMode aShareMode The file share mode used to open this content.

NewL(RFile &, const TDesC &, TIntent)

IMPORT_C CData * NewL ( RFile & aFile,
const TDesC & aUniqueId,
TIntent aIntent
) [static]

Creates a new CData object.

leave
KErrNotFound The content object with the given UniqueId does not exist.
leave
KErrCAPendingRights The rights have not yet arrived but are expected soon.
leave
KErrCANoPermission Rights exist but the specified intent is not permitted.
leave
KErrCANoRights No rights exist for the content object.
leave
KErrCANotSupported Unable to open the object with the specified UniqueId, it may be a container object.
leave
KErrPermissionDenied The agent does not allow the client to access the content object.
leave
KErrAccessDenied The content is already in use.
leave
... One of the other CAF error codes defined in caferr.h or one of the other system-wide error codes for any other errors.

Parameters

RFile & aFile An open RFile handle, the agent will make a duplicate of this handle. The underlying RFs session should be shared for transfer to other processes using RFs::ShareProtected(), since the agent may use transfer this handle to its own or one of the system servers.
const TDesC & aUniqueId The content object to read.
TIntent aIntent The intended use of the content.

NewL(RFile &, const TDesC &)

IMPORT_C CData * NewL ( RFile & aFile,
const TDesC & aUniqueId
) [static]

Creates a new CData object.

leave
KErrNotFound The content object with the given UniqueId does not exist.
leave
KErrCAPendingRights The rights have not yet arrived but are expected soon.
leave
KErrCANoPermission Rights exist but the specified intent is not permitted.
leave
KErrCANoRights No rights exist for the content object.
leave
KErrCANotSupported Unable to open the object with the specified UniqueId, it may be a container object.
leave
KErrPermissionDenied The agent does not allow the client to access the content object.
leave
KErrAccessDenied The content is already in use.
leave
... One of the other CAF error codes defined in caferr.h or one of the other system-wide error codes for any other errors.

Parameters

RFile & aFile An open RFile handle, the agent will make a duplicate of this handle. The underlying RFs session should be shared for transfer to other processes using RFs::ShareProtected(), since the agent may use transfer this handle to its own or one of the system servers.
const TDesC & aUniqueId The content object to read.

NewLC(const TVirtualPathPtr &, TIntent, TContentShareMode)

IMPORT_C CData * NewLC ( const TVirtualPathPtr & aVirtualPath,
TIntent aIntent,
TContentShareMode aShareMode
) [static]

Creates a new CData object

leave
KErrNotFound The content object with the given UniqueId does not exist.
leave
KErrCAPendingRights The rights have not yet arrived but are expected soon.
leave
KErrCANoPermission Rights exist but the specified intent is not permitted.
leave
KErrCANoRights No rights exist for the content object.
leave
KErrCANotSupported Unable to open the object with the specified UniqueId, it may be a container object.
leave
KErrPermissionDenied The agent does not allow the client to access the content object.
leave
KErrAccessDenied The content is already in use.
leave
... One of the other CAF error codes defined in caferr.h or one of the other system-wide error codes for any other errors.

Parameters

const TVirtualPathPtr & aVirtualPath The content object to read.
TIntent aIntent The intended use of the content.
TContentShareMode aShareMode The file share mode used to open this content.

NewLC(const TVirtualPathPtr &, TContentShareMode)

IMPORT_C CData * NewLC ( const TVirtualPathPtr & aVirtualPath,
TContentShareMode aShareMode
) [static]

Creates a new CData object

leave
KErrNotFound The content object with the given UniqueId does not exist.
leave
KErrCAPendingRights The rights have not yet arrived but are expected soon.
leave
KErrCANoPermission Rights exist but the specified intent is not permitted.
leave
KErrCANoRights No rights exist for the content object.
leave
KErrCANotSupported Unable to open the object with the specified UniqueId, it may be a container object.
leave
KErrPermissionDenied The agent does not allow the client to access the content object.
leave
KErrAccessDenied The content is already in use.
leave
... One of the other CAF error codes defined in caferr.h or one of the other system-wide error codes for any other errors.

Parameters

const TVirtualPathPtr & aVirtualPath The content object to read.
TContentShareMode aShareMode The file share mode used to open this content.

NewLC(RFile &, const TDesC &, TIntent)

IMPORT_C CData * NewLC ( RFile & aFile,
const TDesC & aUniqueId,
TIntent aIntent
) [static]

Creates a new CData object.

leave
KErrNotFound The content object with the given UniqueId does not exist.
leave
KErrCAPendingRights The rights have not yet arrived but are expected soon.
leave
KErrCANoPermission Rights exist but the specified intent is not permitted.
leave
KErrCANoRights No rights exist for the content object.
leave
KErrCANotSupported Unable to open the object with the specified UniqueId, it may be a container object.
leave
KErrPermissionDenied The agent does not allow the client to access the content object.
leave
KErrAccessDenied The content is already in use.
leave
... One of the other CAF error codes defined in caferr.h or one of the other system-wide error codes for any other errors.

Parameters

RFile & aFile An open RFile handle, the agent will make a duplicate of this handle. The underlying RFs session should be shared for transfer to other processes using RFs::ShareProtected(), since the agent may use transfer this handle to its own or one of the system servers.
const TDesC & aUniqueId The content object to read.
TIntent aIntent The intended use of the content.

NewLC(RFile &, const TDesC &)

IMPORT_C CData * NewLC ( RFile & aFile,
const TDesC & aUniqueId
) [static]

Creates a new CData object.

leave
KErrNotFound The content object with the given UniqueId does not exist.
leave
KErrCAPendingRights The rights have not yet arrived but are expected soon.
leave
KErrCANoPermission Rights exist but the specified intent is not permitted.
leave
KErrCANoRights No rights exist for the content object.
leave
KErrCANotSupported Unable to open the object with the specified UniqueId, it may be a container object.
leave
KErrPermissionDenied The agent does not allow the client to access the content object.
leave
KErrAccessDenied The content is already in use.
leave
... One of the other CAF error codes defined in caferr.h or one of the other system-wide error codes for any other errors.

Parameters

RFile & aFile An open RFile handle, the agent will make a duplicate of this handle. The underlying RFs session should be shared for transfer to other processes using RFs::ShareProtected(), since the agent may use transfer this handle to its own or one of the system servers.
const TDesC & aUniqueId The content object to read.

NewLC(TUid, const TVirtualPathPtr &, TIntent, TContentShareMode)

CData * NewLC ( TUid aAgentUid,
const TVirtualPathPtr & aVirtualPath,
TIntent aIntent,
TContentShareMode aShareMode
) [static]

Creates a new CData object.

leave
KErrNotFound The content object with the given UniqueId does not exist.
leave
KErrCAPendingRights The rights have not yet arrived but are expected soon.
leave
KErrCANoPermission Rights exist but the specified intent is not permitted.
leave
KErrCANoRights No rights exist for the content object.
leave
KErrCANotSupported Unable to open the object with the specified UniqueId, it may be a container object.
leave
KErrPermissionDenied The agent does not allow the client to access the content object.
leave
KErrAccessDenied The content is already in use.
leave
... One of the other CAF error codes defined in caferr.h or one of the other system-wide error codes for any other errors.

Parameters

TUid aAgentUid The agent determined to support this content.
const TVirtualPathPtr & aVirtualPath The content object to read.
TIntent aIntent The intended use of the content.
TContentShareMode aShareMode The file share mode used to open this content.

NewLC(TUid, RFile &, const TDesC &, TIntent)

CData * NewLC ( TUid aAgentUid,
RFile & aFile,
const TDesC & aUniqueId,
TIntent aIntent
) [static]

Creates a new CData object.

leave
KErrNotFound The content object with the given UniqueId does not exist.
leave
KErrCAPendingRights The rights have not yet arrived but are expected soon.
leave
KErrCANoPermission Rights exist but the specified intent is not permitted.
leave
KErrCANoRights No rights exist for the content object.
leave
KErrCANotSupported Unable to open the object with the specified UniqueId, it may be a container object.
leave
KErrPermissionDenied The agent does not allow the client to access the content object.
leave
KErrAccessDenied The content is already in use.
leave
... One of the other CAF error codes defined in caferr.h or one of the other system-wide error codes for any other errors.

Parameters

TUid aAgentUid The Uid of the agent who supports this content.
RFile & aFile An open RFile handle, the agent will make a duplicate of this handle. The underlying RFs session should be shared for transfer to other processes using RFs::ShareProtected(), since the agent may use transfer this handle to its own or one of the system servers.
const TDesC & aUniqueId The content object to read.
TIntent aIntent The intended use of the content.

Read(TDes8 &)

IMPORT_C TInt Read ( TDes8 & aDes ) const

Reads from a content object up to the maximum length of the descriptor or the end of the content object.

When an attempt is made to read beyond the end of the content, no error is returned. The descriptor s length is set to the number of bytes that were read into it. Therefore, when reading through content, the end has been reached when the descriptor length (given by TDesC::Length() ) is zero.

capability
DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted

Parameters

TDes8 & aDes Descriptor into which binary data is read. Any existing contents are overwritten. On return, its length is set to the number of bytes read.

Read(TDes8 &, TInt)

IMPORT_C TInt Read ( TDes8 & aDes,
TInt aLength
) const

Reads from a content object up to the specified length of the descriptor or the end of the content object.

Read(TDes8& aDes)
capability
DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted

Parameters

TDes8 & aDes Descriptor into which binary data is read. Any existing contents are overwritten. On return, its length is set to the number of bytes read.
TInt aLength The number of bytes to read from the file, or to the end of the file, whichever is encountered first. The length of the buffer is set to the number of bytes actually read.

Read(TDes8 &, TRequestStatus &)

IMPORT_C void Read ( TDes8 & aDes,
TRequestStatus & aStatus
) const

Read content asynchronously up to the maximum length of the descriptor or until the end of the content object is reached. NB: It is important that the descriptor passed to aDes remains in scope until the request has completed.

Read(TDes8& aDes)
capability
DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted

Parameters

TDes8 & aDes Descriptor into which binary data is read. Any existing contents are overwritten. On return, its length is set to the number of bytes read.
TRequestStatus & aStatus Asynchronous request status. On completion this will contain one of the following error codes: KErrNone if the data was successfully read. Otherwise one of the CAF error codes defined in caferr.h or one of the other standard system-wide error codes for any other errors.

Read(TDes8 &, TInt, TRequestStatus &)

IMPORT_C void Read ( TDes8 & aDes,
TInt aLength,
TRequestStatus & aStatus
) const

Read content asynchronously up to the specified length or until the end of the content object is reached. NB: It is important that the descriptor passed to aDes remains in scope until the request has completed.

Read(TDes8& aDes)
capability
DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted

Parameters

TDes8 & aDes Descriptor into which binary data is read. Any existing contents are overwritten. On return, its length is set to the number of bytes read.
TInt aLength The number of bytes to read from the file, or to the end of the file, whichever is encountered first. The length of the buffer is set to the number of bytes actually read.
TRequestStatus & aStatus Asynchronous request status. On completion this will contain one of the following error codes: KErrNone if the data was successfully read. Otherwise one of the CAF error codes defined in caferr.h or one of the other standard system-wide error codes for any other errors.

Read(TInt, TDes8 &, TInt, TRequestStatus &)

IMPORT_C TInt Read ( TInt aPos,
TDes8 & aDes,
TInt aLength,
TRequestStatus & aStatus
) const

Reads content asynchronously. The data is read from a specified offset up to a specified number of bytes or until the end of the content object is reached. The data is read into the descriptor buffer supplied.

Read(TDes8& aDes)
capability
DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted

Parameters

TInt aPos Position of first byte to be read. This is an offset from the start of the file.
TDes8 & aDes Descriptor into which binary data is read. Any existing contents are overwritten. On return, its length is set to the number of bytes read.
TInt aLength The number of bytes to read from the file, or to the end of the file, whichever is encountered first. The length of the buffer is set to the number of bytes actually read.
TRequestStatus & aStatus Asynchronous request status. On completion this will contain one of the following error codes: KErrNone if the data was successfully read. Otherwise one of the CAF error codes defined in caferr.h or one of the other standard system-wide error codes for any other errors.

ReadCancel(TRequestStatus &)

IMPORT_C void ReadCancel ( TRequestStatus & aStatus ) const

Cancels asynchronous read.

capability
DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted

Parameters

TRequestStatus & aStatus Asynchronous request status. This parameter should have been supplied earlier to an asynchronous Read call. If it has not been previously supplied to a Read call, this function will not have any effect.

Seek(TSeek, TInt &)

IMPORT_C TInt Seek ( TSeek aMode,
TInt & aPos
) const

Changes or retrieves the location of the file pointer within the content object.

NOTE: Some operations may fail if the content data is sourced over a network connection.

There are four seek modes used:

  • ESeekStart - Sets the file pointer aPos bytes from the start of the content object. aPos is not modified by the call to Seek()

  • ESeekEnd - Sets the file pointer aPos bytes from the end of the content object. The aPos parameter supplied should be zero or negative when using ESeekEnd. Upon completion aPos is updated with the current position relative to the start of the content object.

  • ESeekCurrent - Moves the file pointer aPos bytes from the current position. Upon completion aPos is updated with the new position relative to the start of the content object. Suppling a zero value for the aPos Parameter can be used to retrieve the current file pointer location

  • ESeekAddress Sets the aPos parameter to the address of the byte aPos bytes from the start of the content object

TSeek
capability
DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted

Parameters

TSeek aMode Seek mode - controls the destination of the seek operation.
TInt & aPos Offset from either the start, end or current position depending upon the seek mode. Negative offsets are used to seek before the current position or relative to the end of the file.

SetProperty(TAgentProperty, TInt)

IMPORT_C TInt SetProperty ( TAgentProperty aProperty,
TInt aValue
)

Request the agent handling this content to set a property value. If the property is set it is only set for this CData session and does not impact other CAF users.

For example setting the buffer-size to 256 bytes can be achieved as follows:

         MyData->SetProperty(EAgentPropertyBufferSize, 256);
        
ContentAccess::TAgentProperty
capability
DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted.

Parameters

TAgentProperty aProperty The property to set.
TInt aValue The value of the property.

SetQosL(TQosAttribute, TInt)

IMPORT_C void SetQosL ( TQosAttribute aQosAttr,
TInt aValue
)

Set Qos attribute

Parameters

TQosAttribute aQosAttr The Qos attribute to set.
TInt aValue The value of the attribute.

Member Data Documentation

CAgentData * iAgentData

CAgentData * iAgentData [private]

CAgentFactory * iAgentFactory

CAgentFactory * iAgentFactory [private]

TUid iAgentUid

TUid iAgentUid [private]