ContentAccess::CContent Class Reference
class ContentAccess::CContent : public CBase
|
CContent
allows applications to browse the content objects contained within a single file and construct a
CData
object for reading that content.
Applications will use an object of this type rather than the traditional
RFile
mechanisms. They will, however, be required to indicate
DRM Intent
- something that determines whether (and how) access to the content should be permitted by a Content-Access agent.
CContent
allows direct access to meta-data such as the attributes of the content and indirect access to the plaintext data itself through the
CData
class.
Applications can use
CContent
to browse the hierarchy of content objects within a file containing several content objects.
During construction
CContent
loads the correct CAF Agent plugin to handle the file specified by the URI.
Public Member Functions
|
|
~CContent
()
|
IMPORT_C const
TAgent
&
|
Agent
()
|
IMPORT_C
TInt
|
AgentSpecificCommand
(
TInt
, const
TDesC8
&,
TDes8
&)
|
IMPORT_C void
|
AgentSpecificCommand
(
TInt
, const
TDesC8
&,
TDes8
&,
TRequestStatus
&)
|
IMPORT_C
TInt
|
CancelNotifyStatusChange
(
TRequestStatus
&)
|
IMPORT_C
TInt
|
CancelNotifyStatusChange
(
TRequestStatus
&, const
TDesC
&)
|
IMPORT_C
TInt
|
CancelRequestRights
(
TRequestStatus
&)
|
IMPORT_C
TInt
|
CancelRequestRights
(
TRequestStatus
&, const
TDesC
&)
|
IMPORT_C
TInt
|
CloseContainer
()
|
IMPORT_C void
|
DisplayInfoL
(
TDisplayInfo
)
|
IMPORT_C void
|
DisplayInfoL
(
TDisplayInfo
, const
TDesC
&)
|
IMPORT_C
TInt
|
GetAttribute
(
TInt
,
TInt
&)
|
IMPORT_C
TInt
|
GetAttribute
(
TInt
,
TInt
&, const
TDesC
&)
|
IMPORT_C
TInt
|
GetAttributeSet
(
RAttributeSet
&)
|
IMPORT_C
TInt
|
GetAttributeSet
(
RAttributeSet
&, const
TDesC
&)
|
IMPORT_C void
|
GetEmbeddedObjectsL
(
RStreamablePtrArray
< CEmbeddedObject > &)
|
IMPORT_C void
|
GetEmbeddedObjectsL
(
RStreamablePtrArray
< CEmbeddedObject > &,
TEmbeddedType
)
|
IMPORT_C
TInt
|
GetStringAttribute
(
TInt
,
TDes
&)
|
IMPORT_C
TInt
|
GetStringAttribute
(
TInt
,
TDes
&, const
TDesC
&)
|
IMPORT_C
TInt
|
GetStringAttributeSet
(RStringAttributeSet &)
|
IMPORT_C
TInt
|
GetStringAttributeSet
(RStringAttributeSet &, const
TDesC
&)
|
IMPORT_C
CAttribute
*
|
NewAttributeL
(
TBool
)
|
IMPORT_C
CAttribute
*
|
NewAttributeL
(
TBool
,
TContentShareMode
)
|
IMPORT_C
CContent
*
|
NewL
(const
TDesC
&)
|
IMPORT_C
CContent
*
|
NewL
(const
TDesC
&,
TContentShareMode
)
|
IMPORT_C
CContent
*
|
NewL
(
RFile
&)
|
IMPORT_C
CContent
*
|
NewLC
(const
TDesC
&)
|
IMPORT_C
CContent
*
|
NewLC
(const
TDesC
&,
TContentShareMode
)
|
IMPORT_C
CContent
*
|
NewLC
(
RFile
&)
|
IMPORT_C void
|
NotifyStatusChange
(
TEventMask
,
TRequestStatus
&)
|
IMPORT_C void
|
NotifyStatusChange
(
TEventMask
,
TRequestStatus
&, const
TDesC
&)
|
IMPORT_C
TInt
|
OpenContainer
(const
TDesC
&)
|
IMPORT_C
CData
*
|
OpenContentL
(
TIntent
)
|
IMPORT_C
CData
*
|
OpenContentL
(
TIntent
, const
TDesC
&)
|
IMPORT_C
CData
*
|
OpenContentL
(
TIntent
,
TContentShareMode
)
|
IMPORT_C
CData
*
|
OpenContentLC
(
TIntent
)
|
IMPORT_C
CData
*
|
OpenContentLC
(
TIntent
, const
TDesC
&)
|
IMPORT_C void
|
RequestRights
(
TRequestStatus
&)
|
IMPORT_C void
|
RequestRights
(
TRequestStatus
&, const
TDesC
&)
|
IMPORT_C
TInt
|
Search
(
RStreamablePtrArray
< CEmbeddedObject > &, const
TDesC8
&,
TBool
)
|
IMPORT_C
TInt
|
SetProperty
(
TAgentProperty
,
TInt
)
|
TContentShareMode
|
ShareMode
()
|
Constructor & Destructor Documentation
Member Functions Documentation
Agent()
IMPORT_C const
TAgent
&
|
Agent
|
(
|
)
|
const
|
Find out which agent is handling this file
AgentSpecificCommand(TInt, const TDesC8 &, TDes8 &)
IMPORT_C
TInt
|
AgentSpecificCommand
|
(
|
TInt
|
aCommand,
|
|
const
TDesC8
&
|
aInputBuffer,
|
|
TDes8
&
|
aOutputBuffer
|
|
)
|
|
Allows extended synchronous calls to the CAF agent handling this file
Applications familiar with the agent can pass objects in and out using serialization.
-
capability
-
DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted
Parameters
TInt
aCommand
|
The agent defined command.
|
const
TDesC8
& aInputBuffer
|
Non modifyable input data buffer.
|
TDes8
& aOutputBuffer
|
Modifyable output buffer to hold the result of the command.
|
AgentSpecificCommand(TInt, const TDesC8 &, TDes8 &, TRequestStatus &)
Allows extended synchronous calls to the CAF agent handling this file Applications familiar with the agent can pass objects in and out using serialization. NB: It is important that the descriptor passed to aOutputBuffer remains in scope until the request has completed.
-
capability
-
DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted
Parameters
TInt
aCommand
|
The agent defined command.
|
const
TDesC8
& aInputBuffer
|
Non modifyable input data buffer.
|
TDes8
& aOutputBuffer
|
Modifyable output buffer to hold the result of the command.
|
TRequestStatus
& aStatus
|
Asynchronous request status. On completion this will contain one of the following error codes: KErrNone if the command was successfully executed. KErrCANotSupported if the agent does not recognize the command. KErrOverflow if the output buffer supplied is too small. KErrPermissionDenied if the agent does not allow the client to execute the command. Otherwise one of the other CAF error codes defined in caferr.h or one of the other system-wide error codes for any other errors.
|
CancelNotifyStatusChange(TRequestStatus &)
Cancel a previous notification request for the default content object
-
capability
-
DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted
Parameters
TRequestStatus
& aStatus
|
The TRequestStatus supplied in the call to NotifyStatusChange().
|
CancelNotifyStatusChange(TRequestStatus &, const TDesC &)
Cancel a previous notification request
-
capability
-
DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted
Parameters
TRequestStatus
& aStatus
|
The TRequestStatus supplied in the call to NotifyStatusChange().
|
const
TDesC
& aUniqueId
|
The UniqueId of the content object within the file.
|
CancelRequestRights(TRequestStatus &)
Cancel a previous
RequestRights()
request for the default content object
-
capability
-
DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted
Parameters
TRequestStatus
& aStatus
|
The TRequestStatus that was supplied to the RequestRights() function.
|
CancelRequestRights(TRequestStatus &, const TDesC &)
Cancel a previous
RequestRights()
request
-
capability
-
DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted
Parameters
TRequestStatus
& aStatus
|
The TRequestStatus that was supplied to the RequestRights() function.
|
const
TDesC
& aUniqueId
|
The objects Unique Id that was supplied to the RequestRights() function.
|
CloseContainer()
IMPORT_C
TInt
|
CloseContainer
|
(
|
)
|
|
Close the current container object and go back to previous enclosing container within the file.
Allows an application to access the content objects and any nested container objects within parent container.
-
capability
-
DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted
ConstructL(RFile &)
void
|
ConstructL
|
(
|
RFile
&
|
aFile
|
)
|
[private]
|
ConstructL(const TDesC &, TContentShareMode)
void
|
ConstructL
|
(
|
const
TDesC
&
|
aURI,
|
|
TContentShareMode
|
aShareMode
|
|
)
|
[private]
|
Parameters
const
TDesC
& aURI
|
|
TContentShareMode
aShareMode
|
|
DisplayInfoL(TDisplayInfo)
IMPORT_C void
|
DisplayInfoL
|
(
|
TDisplayInfo
|
aInfo
|
)
|
const
|
View information associated with the default content object
This call blocks execution and only returns once the display is dismissed by the user.
ContentAccess::TDisplayInfo
-
leave
-
KErrCANotSupported if information cannot be displayed or does not exist.
-
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
TDisplayInfo
aInfo
|
The information to display.
|
DisplayInfoL(TDisplayInfo, const TDesC &)
IMPORT_C void
|
DisplayInfoL
|
(
|
TDisplayInfo
|
aInfo,
|
|
const
TDesC
&
|
aUniqueId
|
|
)
|
const
|
View information associated with a single content object
This call blocks execution and only returns once the display is dismissed by the user.
ContentAccess::TDisplayInfo
-
leave
-
KErrCANotSupported if information cannot be displayed or does not exist.
-
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
TDisplayInfo
aInfo
|
The information to display.
|
const
TDesC
& aUniqueId
|
The unique id of the object within the file.
|
GetAttribute(TInt, TInt &)
IMPORT_C
TInt
|
GetAttribute
|
(
|
TInt
|
aAttribute,
|
|
TInt
&
|
aValue
|
|
)
|
const
|
Get an attribute for the default content object within the file
ContentAccess::TAttribute
TInt value = 0;
CContent* c = CContent::NewL(uri);
TInt err =c->GetAttribute(EIsProtected, value);
if(err == KErrNone && value)
{
DisplayPadLock();
}
-
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.
|
GetAttribute(TInt, TInt &, const TDesC &)
IMPORT_C
TInt
|
GetAttribute
|
(
|
TInt
|
aAttribute,
|
|
TInt
&
|
aValue,
|
|
const
TDesC
&
|
aUniqueId
|
|
)
|
const
|
Get an attribute for an object within the file
ContentAccess::TAttribute
TInt value = 0;
CContent* c = CContent::NewL(uri);
TInt err =c->GetAttribute(EIsProtected, value, uniqueId);
if(err == KErrNone && value)
{
DisplayPadLock();
}
-
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.
|
const
TDesC
& aUniqueId
|
The UniqueId of the object within the file.
|
GetAttributeSet(RAttributeSet &)
Get a set of attributes for the default content object within the file
ContentAccess::TAttributeThe following example determines whether the default content object is protected and has rights that will enable it to be viewed by the user
CContent* content = CContent::NewLC(uri);
RAttributeSet attributeSet;
CleanupClosePushL(attributeSet);
attributeSet->AddL(EProtected);
attributeSet->AddL(ECanView);
User::LeaveIfError(content->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(2); // content, 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.
|
GetAttributeSet(RAttributeSet &, const TDesC &)
Get a set of attributes from an object within the file
ContentAccess::TAttributeThe following example determines whether the default content object is protected and has rights that will enable it to be viewed by the user
CContent* content = CContent::NewLC(uri);
RAttributeSet attributeSet;
CleanupClosePushL(attributeSet);
attributeSet->AddL(EProtected);
attributeSet->AddL(ECanView);
User::LeaveIfError(content->GetAttributeSet(attributeSet, uniqueId);
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(2); // content, 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.
|
const
TDesC
& aUniqueId
|
The unique ID of the object within the file.
|
GetEmbeddedObjectsL(RStreamablePtrArray< CEmbeddedObject > &)
List all the embedded container objects and content objects within the current container
The UniqueId() member of CEmbeddedObject can be used to refer directly to a particular object within the file.
// Create a ccontent object for the file of interest
CContent* content = CContent::NewLC(uri);
// Define an array to store the results
RStreamablePtrArray <CEmbeddedObject> array;
CleanupClosePushL(array);
// Find all the content and container objects within the current container
content->GetEmbeddedObjectsL(array);
// Do something with the array
....
// Finished
CleanupStack::PopAndDestroy(2);
-
leave
-
KErrPermissionDenied if the access to the protected content is not permitted by the CAF Agent.
-
leave
-
... One of the CAF error codes defined in
caferr.h
or one of the other 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
RStreamablePtrArray
< CEmbeddedObject > & aArray
|
The array to be populated with the embedded objects.
|
GetEmbeddedObjectsL(RStreamablePtrArray< CEmbeddedObject > &, TEmbeddedType)
IMPORT_C void
|
GetEmbeddedObjectsL
|
(
|
RStreamablePtrArray
< CEmbeddedObject > &
|
aArray,
|
|
TEmbeddedType
|
aType
|
|
)
|
const
|
List all the embedded objects within the current container that are of the specified type
// Create a ccontent object for the file of interest
CContent* content = CContent::NewLC(uri);
// Define an array to store the results
RStreamablePtrArray <CEmbeddedObject> array;
CleanupClosePushL(array);
// Find all the content objects within the current container
content->GetEmbeddedObjectsL(array, EContentObject);
// Do something with the array
....
// Finished
CleanupStack::PopAndDestroy(2);
-
leave
-
KErrPermissionDenied If the access to the protected content is not permitted by the CAF Agent.
-
leave
-
... One of the CAF error codes defined in
caferr.h
or one of the other 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
RStreamablePtrArray
< CEmbeddedObject > & aArray
|
The array to be populated with the embedded objects.
|
TEmbeddedType
aType
|
The type of objects to list.
|
GetStringAttribute(TInt, TDes &)
IMPORT_C
TInt
|
GetStringAttribute
|
(
|
TInt
|
aAttribute,
|
|
TDes
&
|
aValue
|
|
)
|
const
|
Get text string attributes or meta-data for the default content object within the file
ContentAccess::TStringAttribute
TInt err = KErrNone;
CContent* c = CContent::NewL(uri);
TBuf <MAX_PATH> previewUri;
err = c->GetStringAttribute(EPreviewURI, previewUri);
if(err == KErrNone)
{
DisplayPreview(previewUri);
}
-
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.
|
GetStringAttribute(TInt, TDes &, const TDesC &)
IMPORT_C
TInt
|
GetStringAttribute
|
(
|
TInt
|
aAttribute,
|
|
TDes
&
|
aValue,
|
|
const
TDesC
&
|
aUniqueId
|
|
)
|
const
|
Get text string attributes or meta-data for an object within the file
ContentAccess::TStringAttribute
TInt err = KErrNone;
CContent* c = CContent::NewL(uri);
TBuf <MAX_PATH> previewUri;
err = c->GetStringAttribute(EPreviewURI, previewUri, uniqueId);
if(err == KErrNone)
{
DisplayPreview(previewUri);
}
-
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.
|
const
TDesC
& aUniqueId
|
The UniqueId of the object within the file.
|
GetStringAttributeSet(RStringAttributeSet &)
IMPORT_C
TInt
|
GetStringAttributeSet
|
(
|
RStringAttributeSet &
|
aStringAttributeSet
|
)
|
const
|
Obtain a set of string attributes for the default content object within the file
ContentAccess::TStringAttribute
CContent* content = CContent::NewLC(uri);
// create the attribute set, add the attributes we are interested in
RStringAttributeSet stringAttributeSet;
CleanupClosePushL(stringAttributeSet);
stringAttributeSet.AddL(EPreviewURI);
stringAttributeSet.AddL(ETitle);
User::LeaveIfError(content->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(2); // content, stringAttributeSet.Close()
-
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.
|
GetStringAttributeSet(RStringAttributeSet &, const TDesC &)
IMPORT_C
TInt
|
GetStringAttributeSet
|
(
|
RStringAttributeSet &
|
aStringAttributeSet,
|
|
const
TDesC
&
|
aUniqueId
|
|
)
|
const
|
Used to obtain a set of string attributes for an object within the file
ContentAccess::TStringAttribute
CContent* content = CContent::NewLC(uri);
// create the attribute set, add the attributes we are interested in
RStringAttributeSet stringAttributeSet;
CleanupClosePushL(stringAttributeSet);
stringAttributeSet.AddL(EPreviewURI);
stringAttributeSet.AddL(ETitle);
User::LeaveIfError(content->GetStringAttributeSet(stringAttributeSet, uniqueId));
// Pass the value of the string attribute to DisplayPreview()
TFileName previewUri;
TInt err = stringAttributeSet.GetValue(EPreviewURI, previewUri);
if(err == KErrNone)
{
DisplayPreview(previewUri);
}
CleanupStack::PopAndDestroy(2); // content, stringAttributeSet.Close()
-
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.
|
const
TDesC
& aUniqueId
|
The UniqueId of the container or content.
|
NewAttributeL(TBool)
Create a
CAttribute
object to determine the attributes of the default content object
-
capability
-
DRM Access to DRM agents is not permitted for processes without DRM capability
NewAttributeL(TBool, TContentShareMode)
IMPORT_C
CAttribute
*
|
NewAttributeL
|
(
|
TBool
|
aPreloaded,
|
|
TContentShareMode
|
aShareMode
|
|
)
|
|
Create a
CAttribute
object to determine the attributes of the default content object
-
capability
-
DRM Access to DRM agents is not permitted for processes without DRM capability
Parameters
TBool
aPreloaded
|
|
TContentShareMode
aShareMode
|
|
NewL(const TDesC &)
Constructs a new
CContent
object with a given URI. The URI can be in the same format as a virtual path for more information see
CVirtualPath
and
TVirtualPathPtr
-
leave
-
KErrNotFound If the file at the given URI does not exist or if an invalid URI or virtual path have been supplied.
-
leave
-
KErrPermissionDenied If the access to the protected content is not permitted by the CAF Agent.
-
leave
-
... One of the CAF error codes defined in
caferr.h
or one of the other 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
const
TDesC
& aURI
|
The filename, URI or virtual path of the DRM file.
|
NewL(const TDesC &, TContentShareMode)
IMPORT_C
CContent
*
|
NewL
|
(
|
const
TDesC
&
|
aURI,
|
|
TContentShareMode
|
aShareMode
|
|
)
|
[static]
|
Constructs a new
CContent
object with a given URI. The URI can be in the same format as a virtual path for more information see
CVirtualPath
and
TVirtualPathPtr
-
leave
-
KErrNotFound If the file at the given URI does not exist or if an invalid URI or virtual path have been supplied.
-
leave
-
KErrAccessDenied If the file is already open with a different share mode.
-
leave
-
KErrPermissionDenied If the access to the protected content is not permitted by the CAF Agent.
-
leave
-
... One of the CAF error codes defined in
caferr.h
or one of the other 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
const
TDesC
& aURI
|
The filename, URI or virtual path of the DRM file.
|
TContentShareMode
aShareMode
|
The sharing mode used when accessing the content.
|
NewL(RFile &)
Constructs a new
CContent
object with an open file handle.
CContent
will use a duplicate of this file handle, the client is free to close its file handle any time after creating the
CContent
object.
-
leave
-
KErrPermissionDenied If the access to the protected content is not permitted by the CAF Agent.
-
leave
-
... One of the CAF error codes defined in
caferr.h
or one of the other 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
RFile
& aFile
|
The file handle. The file must already be open before calling this method. 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.
|
NewLC(const TDesC &)
Constructs a new
CContent
object with a given URI. The URI can be in the same format as a virtual path for more information see
CVirtualPath
and
TVirtualPathPtr
-
leave
-
KErrNotFound If the file at the given URI does not exist or if an invalid URI or virtual path have been supplied.
-
leave
-
KErrPermissionDenied If the access to the protected content is not permitted by the CAF Agent.
-
leave
-
... One of the CAF error codes defined in
caferr.h
or one of the other 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
const
TDesC
& aURI
|
The filename, URI or virtual path of the DRM file.
|
NewLC(const TDesC &, TContentShareMode)
IMPORT_C
CContent
*
|
NewLC
|
(
|
const
TDesC
&
|
aURI,
|
|
TContentShareMode
|
aShareMode
|
|
)
|
[static]
|
Constructs a new
CContent
object with a given URI. The URI can be in the same format as a virtual path for more information see
CVirtualPath
and
TVirtualPathPtr
-
leave
-
KErrNotFound If the file at the given URI does not exist or if an invalid URI or virtual path have been supplied.
-
leave
-
KErrAccessDenied If the file is already open with a different share mode.
-
leave
-
KErrPermissionDenied If the access to the protected content is not permitted by the CAF Agent.
-
leave
-
... One of the CAF error codes defined in
caferr.h
or one of the other 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
const
TDesC
& aURI
|
The filename, URI or virtual path of the DRM file.
|
TContentShareMode
aShareMode
|
The sharing mode used when accessing the content.
|
NewLC(RFile &)
Constructs a new
CContent
object with an open file handle.
CContent
will use a duplicate of this file handle, the client is free to close its file handle any time after creating the
CContent
object.
-
leave
-
KErrPermissionDenied If the access to the protected content is not permitted by the CAF Agent.
-
leave
-
... One of the CAF error codes defined in
caferr.h
or one of the other 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
RFile
& aFile
|
The file handle. The file must already be open before calling NewLC. 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.
|
NotifyStatusChange(TEventMask, TRequestStatus &)
IMPORT_C void
|
NotifyStatusChange
|
(
|
TEventMask
|
aMask,
|
|
TRequestStatus
&
|
aStatus
|
|
)
|
|
Request notification for an event for the default content object within the file
ContentAccess::TEventMask
-
capability
-
DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted
Parameters
TEventMask
aMask
|
Bitmask of events the caller is interested in.
|
TRequestStatus
& aStatus
|
The TRequestStatus object to complete if the event occurs.
|
NotifyStatusChange(TEventMask, TRequestStatus &, const TDesC &)
IMPORT_C void
|
NotifyStatusChange
|
(
|
TEventMask
|
aMask,
|
|
TRequestStatus
&
|
aStatus,
|
|
const
TDesC
&
|
aUniqueId
|
|
)
|
|
Request notification for an event for an object within the file
ContentAccess::TEventMask
-
capability
-
DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted
Parameters
TEventMask
aMask
|
Bitmask of events the caller is interested in.
|
TRequestStatus
& aStatus
|
The TRequestStatus object to complete if the event occurs.
|
const
TDesC
& aUniqueId
|
The UniqueId of the container or content.
|
OpenContainer(const TDesC &)
IMPORT_C
TInt
|
OpenContainer
|
(
|
const
TDesC
&
|
aUniqueId
|
)
|
|
Open a Container object within the file.
Allows an application to access the content objects and any nested container objects within the specified container.
-
capability
-
DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted
Parameters
const
TDesC
& aUniqueId
|
The container object's unique ID.
|
OpenContentL(TIntent)
IMPORT_C
CData
*
|
OpenContentL
|
(
|
TIntent
|
aIntent
|
)
|
|
Grants read access to the default content object based on evaluation of the supplied intent information.
Note that the intent is simply evaluated and not executed. To force the intent to be executed, clients must use the call
ContentAccess::CData::ExecuteIntent()
.
A
CData
object can be obtained as follows:
CData* MyData = myContent->OpenContentL(ChosenIntent);
...
delete MyData; // when finished accessing plaintext content
ContentAccess::TIntent
-
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.
-
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.
|
OpenContentL(TIntent, const TDesC &)
IMPORT_C
CData
*
|
OpenContentL
|
(
|
TIntent
|
aIntent,
|
|
const
TDesC
&
|
aUniqueId
|
|
)
|
|
Grants read access to the content object based on evaluation of the supplied intent information.
Note that the intent is simply evaluated and not executed. To force the intent to be executed, clients must use the call
ContentAccess::CData::ExecuteIntent()
.
A
CData
object can be obtained as follows:
CData* MyData = myContent->OpenContentL(ChosenIntent, uniqueId);
...
delete MyData; // when finished accessing plaintext content
ContentAccess::TIntent
-
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.
-
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.
|
const
TDesC
& aUniqueId
|
The object to open for reading. If the UniqueId is set to KNullDesC16() the entire file will be opened for reading with no transformation.
|
OpenContentL(TIntent, TContentShareMode)
IMPORT_C
CData
*
|
OpenContentL
|
(
|
TIntent
|
aIntent,
|
|
TContentShareMode
|
aShareMode
|
|
)
|
|
Create a
CData
object for reading the content
ContentAccess::TIntent
-
leave
-
One of the CAF error codes defined in
caferr.h
or one of the system-wide error codes for any errors.
-
capability
-
DRM Access to DRM agents is not permitted for processes without DRM capability
Parameters
TIntent
aIntent
|
The intended use of the content
|
TContentShareMode
aShareMode
|
The mode used to open the file. If EContentShareExclusive is required, use CData::NewL() instead
|
OpenContentLC(TIntent)
IMPORT_C
CData
*
|
OpenContentLC
|
(
|
TIntent
|
aIntent
|
)
|
|
Grants read access to the default content object based on evaluation of the supplied intent information.
Note that the intent is simply evaluated and not executed. To force the intent to be executed, clients must use the call
ContentAccess::CData::ExecuteIntent()
.
A
CData
object can be obtained as follows:
CData* myData = myContent->OpenContentLC(ChosenIntent);
...
// when finished accessing plaintext content
CleanupStack::PopAndDestroy(myData);
ContentAccess::TIntent
-
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.
-
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.
|
OpenContentLC(TIntent, const TDesC &)
IMPORT_C
CData
*
|
OpenContentLC
|
(
|
TIntent
|
aIntent,
|
|
const
TDesC
&
|
aUniqueId
|
|
)
|
|
Grants read access to the content object based on evaluation of the supplied intent information.
Note that the intent is simply evaluated and not executed. To force the intent to be executed, clients must use the call
ContentAccess::CData::ExecuteIntent()
.
A
CData
object can be obtained as follows:
CData* MyData = myContent->OpenContentLC(ChosenIntent, uniqueId);
...
PopAndDestroy(MyData); // when finished accessing plaintext content
ContentAccess::TIntent
-
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.
-
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.
|
const
TDesC
& aUniqueId
|
The object to open for reading. If the UniqueId is set to KNullDesC16() the entire file will be opened for reading with no transformation.
|
RequestRights(TRequestStatus &)
Request the agent to obtain rights for the default content object
This request may be handled differently by different agents. Some agents may open a browser and direct the user to a URL. Others may download and install the rights in the background.
The call should not block execution, applications can wait for a notification if they are interested in the outcome.
-
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. On completion this will contain one of the following error codes: KErrNone if the rights request was successful. KErrCANotSupported if the agent does not allow rights requests. Otherwise one of the other CAF error codes defined in caferr.h or one of the other system-wide error codes for any other errors.
|
RequestRights(TRequestStatus &, const TDesC &)
Request the agent to obtain rights for a protected content object
This request may be handled differently by different agents. Some agents may open a browser and direct the user to a URL. Others may download and install the rights in the background.
The call should not block execution, applications can wait for a notification if they are interested in the outcome.
-
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. On completion this will contain one of the following error codes: KErrNone if the rights request was successful. KErrCANotSupported if the agent does not allow rights requests. Otherwise one of the other CAF error codes defined in caferr.h or one of the other system-wide error codes for any other errors.
|
const
TDesC
& aUniqueId
|
The unique id of the object within the file.
|
Search(RStreamablePtrArray< CEmbeddedObject > &, const TDesC8 &, TBool)
Search the current container for content objects with a particular mime type
_LIT8(KTextPlainMimeType, "text/plain");
// Create a ccontent object for the file of interest
CContent* content = CContent::NewLC(uri);
// Define an array to store the results
RStreamablePtrArray <CEmbeddedObject> array;
CleanupClosePushL(array);
// Recursively search for all the content objects with the
// specified mime type
User::LeaveIfError(content->Search(array, KTextPlainMimeType(), ETrue));
// Do something with the array
....
// Finished
CleanupStack::PopAndDestroy(2);
-
capability
-
DRM Access to DRM protected content is not permitted for processes without DRM capability. Access to unprotected content is unrestricted
Parameters
RStreamablePtrArray
< CEmbeddedObject > & aArray
|
The array to store the results of the search. The agent will add CEmbeddedObject objects to the supplied array.
|
const
TDesC8
& aMimeType
|
The mime type to search for.
|
TBool
aRecursive
|
ETrue to search inside containers embedded within the current container, EFalse to search only the current container.
|
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
CContent
session and does not impact other CAF users and is not set for
CData
products created by the
CContent
.
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.
|
ShareMode()
TContentShareMode
|
ShareMode
|
(
|
)
|
const [inline]
|
Indicates the mode in which the content is shared.
Member Data Documentation
CAgentContent * iAgentContent
Agent object used for browsing the contents of a file
CAgentFactory * iAgentFactory
TVirtualPathPtr
iDefaultVirtualPath
The content object referred to by
CContent
, either points to iVirtualPath or points to (
KNullDesC()
, KDefaultContentObject())
RFile
iFile
Reference to the file handle if the content was opened with a file handle
TContentShareMode
iShareMode
TContentShareMode
|
iShareMode
|
[private]
|
The share mode used to open the content file
CVirtualPath * iVirtualPath
Points to the default content object if the file is opened by name
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.