Content Access Agent ECom Resource File

CAF defines an ECom plug-in interface for third-party CAF agents. The interface allows new agents to be integrated dynamically, if required. In order to use CAF content, applications use the resource files.

default_data

The default_data section of an CA agent or CA agent proxy's resource file is used to specify three pieces of information:

  • The buffer size required by this agent to recognize a file when ContentAccess::CAgentManager::RecognizeFileL() is called.

  • A list of supplier MIME types supported by this agent.

  • A list of consumer MIME types supported by this agent.

The buffer size section is separated from the supplier MIME types by a '|' character and the supplier MIME types are separated from the consumer MIME types by a ':' character.

The following example explains the default_data section for an OMA DRM agent:

default_data="100|application/vnd.oma.drm.message,application/vnd.oma.drm.rights+xml:application/vnd.oma.drm.content";

  • It requires at least the first 100 bytes of a file in order to do recognition.

  • It supports a supplier MIME types of application/vnd.oma.drm.message and application/vnd.oma.drm.rights+xml.

  • It supports a consumer MIME type of application/vnd.oma.drm.content.

opaque_data

The opaque_data section is used to specify the agent's private directory under c:\private\. This is the SID (SecureId) of the server which owns the directory, for example:

opaque_data="12345678";

If the agent does not have a corresponding private directory or does not wish to provide access to that directory, it must just leave the opaque_data section as an empty string.

An example agent resource file

// 101FE8F1.rss 
// UIDs quick-ref 
// 
// ECom DLL UID: 0x101FE8F1 
// CA agent interface UID: 0x10204740 
// Test CAA Implementation: 0x101FE8F2

#include "RegistryInfo.rh" 
            
RESOURCE REGISTRY_INFO theInfo 
{

    dll_uid = 0x101FE8F1; 
                
    interfaces = 
    {
        INTERFACE_INFO 
        {
           interface_uid = 0x10204740; 
        implementations = 
            {
            IMPLEMENTATION_INFO 
                {
                implementation_uid = 0x101FE8F2; 
                version_no = 1; 
                display_name = "Test Agent"; 
                default_data = "255|application/vnd.oma.drm.message,application/vnd.oma.drm.content:application/vnd.oma.drm.content";
                // Sample CAF types 
                opaque_data = "12345678"; 
                }
            };
        }
    };
}

Important UIDs for CA agents

Note: When writing a new CA agent, all other UIDs used in the above examples must be replaced by new UIDs from the Symbian UID generator.