Symbian3/SDK/Source/GUID-EBD1242B-6BD9-5ABB-B471-24ABC78A918C.dita
author Dominic Pinkman <Dominic.Pinkman@Nokia.com>
Wed, 31 Mar 2010 11:11:55 +0100
changeset 7 51a74ef9ed63
child 8 ae94777fff8f
permissions -rw-r--r--
Week 12 contribution of API Specs and fix SDK submission

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License 
"Eclipse Public License v1.0" which accompanies this distribution, 
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
    Nokia Corporation - initial contribution.
Contributors: 
-->
<!DOCTYPE concept
  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept xml:lang="en" id="GUID-EBD1242B-6BD9-5ABB-B471-24ABC78A918C"><title>MIME Recognition Framework Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The MIME (Multipurpose Internet Mail Extension) recognition framework enables data type identification. </p> <p>The MIME recognition framework implements data type recognition using MIME (data) recognizers. The MIME recognizers are ECOM plug-ins. A MIME recognizer reads a small piece of the data. A data type can be recognized by more than one MIME recognizer. The framework uses the concepts of priority and confidence level to determine the data type. </p> <p>The Application Architecture (AppArc) launches the appropriate application using the MIME framework to handle the data. </p> <p>It is not guaranteed that an application will be available to handle a data type, even if it was successfully recognized. </p> <section><title>Purpose</title> <p> </p> <p>MIME type recognition enables devices to identify data type in streams or files and start appropriate application automatically. </p> </section> <section><title>Key concepts and terms</title> <dl><dlentry><dt>MIME</dt> <dd><p>MIME (Multipurpose Internet Mail Extension) is an internet standard system for identifying the type of data in a file or stream. Types can include graphics, photos, audio, video files and formatted text. </p> </dd> </dlentry> <dlentry><dt>Priority</dt> <dd><p>The plug-in developer assigns a priority (EHigh, ENormal or ELow) to the data recognizers. A data type can be handled by more than one application and may therefore be recognized by more than one recognizer. </p> <p>The priority determines the position at which the recognizer is inserted into the recognizer list. The higher priority recognizers are placed at the start of the list. If more than one recognizer recognizes a data type with the same confidence, the recognizer with the higher priority takes precedence. The sequence in which recognizers are invoked by the framework is determined by their priority. High priority recognizers are invoked first. </p> <p>For more details refer to <xref href="GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0.dita#GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0/GUID-14F65687-821A-3C30-A27F-A8B5F4688094"><apiname>CApaDataRecognizerType::TRecognizerPriority</apiname></xref>. </p> </dd> </dlentry> <dlentry><dt>Recognizer list</dt> <dd><p>The MIME recognition framework maintains a list of MIME recognizers. The recognizer list is constructed based on the data types the MIME recognizers claim to support and is ordered by priority. </p> </dd> </dlentry> <dlentry><dt>Confidence level</dt> <dd><p>A MIME recognizer reads a small piece of data from the start of a file or stream. It attempts to match the data with one of its known types. If the match is complete it returns the associated data type with full confidence (ECertain) and if there is no match it returns no data type with no confidence (ENotRecognized). If there is a partial match it can return a data type with an intermediate confidence level (EPossible, EUnlikely, ENotRecognized). </p> <p>The confidence of MIME recognizers can be expressed in 5 different levels: </p> <ul><li id="GUID-1C6B8B13-6303-5B3E-804E-9798B8CC39F3"><p> <codeph>ECertain</codeph>  </p> </li> <li id="GUID-9BF81FB9-CF0E-59D6-B7F7-5B31D161B760"><p> <codeph>EProbable</codeph>  </p> </li> <li id="GUID-9F2047BD-67C0-57D6-88A7-0B087D99F4BA"><p> <codeph>EPossible</codeph>  </p> </li> <li id="GUID-7A4B066D-9884-5F8E-B455-588DE546EB69"><p> <codeph>EUnlikely</codeph>  </p> </li> <li id="GUID-71651D00-8254-56C4-B26D-DCFB4AA658E5"><p> <codeph>ENotRecognized</codeph>  </p> </li> </ul> <p>By default, the confidence level of the MIME Recognizer is <codeph>ECertain</codeph>. </p> <p>For more details refer <xref href="GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0.dita#GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0/GUID-3DCAE2B7-E840-3838-83BC-3D7FE73A1757"><apiname>CApaDataRecognizerType::TRecognitionConfidence</apiname></xref>. </p> </dd> </dlentry> </dl> </section> <section><title>Architecture</title> <p>MIME recognizers are <xref href="GUID-9E92EE30-F2E2-5F28-BB2A-391C09EC69D2.dita">ECOM</xref> plugins, located under <filepath>\sys\bin\</filepath>. </p> <fig id="GUID-981203F5-B7D7-54F4-95E5-AFA2D1286BFF"><title>
             MIME framework architecture 
          </title> <image href="GUID-497AD33D-F6DC-52D4-85C8-B9E02978ACD4_d0e176017_href.jpg" placement="inline"/></fig> <ul><li id="GUID-17CE2467-5B33-5B07-95A7-CCCF9D66E693"><p>AppArc is the main client of the MIME recognition framework. </p> </li> <li id="GUID-CAEDF3BA-B7AA-5F60-BF9F-CA308CAF7002"><p>Applications that need data type recognition use the MIME recognition framework via AppArc APIs. </p> </li> <li id="GUID-E3763687-3E7D-5D24-BC92-88DE1CC11D2B"><p>The MIME recognition framework delegates the data type identification task to an appropriate MIME recognizer. </p> </li> <li id="GUID-94882AE7-A578-507C-AE2E-6C778B78F52B"><p>The MIME recognizer identifies the data type. </p> </li> <li id="GUID-5F74226E-0EAA-5338-BED9-5A58B54ECC2F"><p>AppArc launches the application for the identified data type. </p> </li> </ul> </section> <section><title>APIs</title> <table id="GUID-6573D858-F2D1-5E0C-B330-951D0324702C"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-EBE480D9-E377-32F4-9AE5-9C58684BEFF0.dita"><apiname>CApaDataRecognizerType</apiname></xref>  </p> </entry> <entry><p>Is the abstract base class for a recognizer. Recognizers need to define and implement a derived class and provide an implementation of the functions.This class contains the MIME APIs related to MIME recognition framework. </p> </entry> </row> <row><entry><p> <xref href="GUID-5EEE8745-F483-33C0-A5B1-AEB5544DE2BA.dita"><apiname>RApaLsSession</apiname></xref>  </p> </entry> <entry><p>A session with the application architecture server. The server provides access to a cached list of the applications on the device. This class contains the AppArc APIs related to MIME recognition framework. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Typical uses</title> <p>The MIME recognition framework allows the plug-in writers to: </p> <ul><li id="GUID-FEBCF579-E483-58D3-9BEB-A9A50F58F1FA"><p><xref href="GUID-1AAA88BB-19AD-5B8E-993C-11F4B7CD90EB.dita">Write Data(MIME) Recogzisers</xref>  </p> </li> </ul> </section> </conbody></concept>