« Předchozí
Následující »
XPIDL (Cross-Platform Interface Definition Language) je jazyk pro definici rozhraní (interface) mezi C++ komponentou (tedy XPCOMem) a JavaScriptem, pomocí kterého přistupujeme ke GUI embedded aplikace.
Pokud postupujeme při tvorbě aplikace od shora dolů (analyticky), navržení rozhraní je první věcí, kterou uděláme. XPIDL má C++-like syntaxi, jeho menší nevýhodou je, že nepodporuje vícenásobné dědění a přetěžování metod.
Příklad definice rozhraní:
#include "nsISupports.idl"
[scriptable, uuid(d6266d60-abe6-11d8-b2ec-c92440c3e078)]
interface EmbListener : nsISupports {
void connectionOpened(in PRBool someBool);
};
Tento kus kódu se uloží do souboru s příponou .idl (emb.idl) a pomocí utility xpidl.exe (v Gecko-SDK) se přeloží na binární podobu rozhraní (.xpt) a C++ hlavičkový soubor, který bude základem implementace XPCOM komponenty. Více .xpt souborů lze sloučit do jednoho pomocí utility xpt_link.exe.
Po "includování" potřebných rozhraní následuje řádka, která oznamuje, že k rozhraní se přistupuje pomocí skriptů a UUID (viz následující odstavec). Potom je uvedena vlastní definice rozhraní s exportovanými metodami a proměnnými.
Každému rozhraní (tedy XPCOM objektu) je přiřazeno jednoznačné ID generované např. utilitou uuidgen.exe (MS-Visual Studio), nazývá se Universally Unique IDentifier (UUID) a má 128 bitů. V žargonu Mozilly se častěji setkáváme s označením IID tj. UUID rozhraní a CID tj. UUID třídy nebo komponenty.
Dále se používá contract ID – textový identifikátor komponenty nebo třídy. Jeho tvar "generuje" programátor a může být jakýkoliv. Doporučený tvar je však: "@doména/modul/název_komponenty/verze". Uvádí se až ve zdrojáku komponenty a uplatňuje se při inicializaci komponenty (při startu embedded aplikace).
« Předchozí
Následující »
Page last modified 08:47, 7 Jan 2007 by Pawell