Provided by:
defoma_0.11.12ubuntu1_all 
NOM
Defoma::Id - module Defoma pour la gestion des bases de reference.
SYNOPSIS
use Defoma::Id;
$Id = defoma_id_open_cache( suffixe, nom_paquet );
defoma_id_close_cache( id_objet );
defoma_id_register( id_objet,
type => type,
font => police,
id => identifiant,
priority => priorit'e,
category => cat'egorie,
origin => origine,
depend => d'ependance,
hints => indications );
defoma_id_unregister( id_objet,
type => type,
font => police,
id => identifiant );
@index = defoma_id_grep_cache( id_objet, type-recherch'e,
id => identifiant,
font => police,
type => type,
category => cat'egorie,
depid => depid,
depfont => depfont );
@hints = defoma_id_get_hints( id_objet, index );
defoma_id_set( id_objet, identifiant, police, flag );
defoma_id_unset( id_objet, identifiant, police );
DESCRIPTION
Defoma::Id est un module Defoma pour la gestion des identifiants de
police et des bases de reference. Il fournit les fonctions listees
ci-dessous, qui sont supposees etre appelees par les scripts de
configuration Defoma.
Une base de reference est une sorte de base de donnees dont le but est
d'eviter les conflits de noms. Les applications accedent souvent aux
polices avec leurs propres identifiants, il est donc preferable qu'un
identifiant pointe vers une seule police. C'est une contrainte
importante pour une configuration automatique, parce qu'il peut
facilement arriver que plusieurs polices aient le meme identifiant. Les
scripts de configuration automatique peuvent difficilement detecter
quelle est la meilleure police pour porter le nom d'un identifiant, ou
meme pour savoir si cette situation se produit. Defoma::Id est une aide
pour resoudre ce type de probleme.
Voici comment Defoma::Id fonctionne dans les grandes lignes :
1. Ouverture d'une base de reference avec la commande init d'un script
de configuration Defoma.
2. Enregistrement de(s) l'identifiant(s) pour une police avec la
commande register du script.
3. Recherche dans la base de reference par Defoma::Id pour verifier si
une autre police fournit le meme identifiant, et rappel du script afin
de faire le choix le plus approprie de la police qui fournira
l'identifiant, a l'aide des commandes do-install- et do-remove-.
TYPE D'IDENTIFIANTS
Il peut gerer trois types d'identifiants : RealName, Alias et
Substituted.
RealName est le nom reel d'une police et est generalement pris dans
l'indication FontName. Si vous voulez enregistrer une police a une base
de references, au moins un nom reel doit etre enregistre. Vous pouvez
fournir les indications aux options lorsque vous enregistrez un
RealName.
Alias est un autre nom pour une police, qui est generalement pris dans
l'indication Alias. Vous devez specifier le nom reel (RealName) de la
police avec le parametre origine lorsque vous enregistrez un Alias.
Substituted est encore un autre nom d'une police, qui contrairement a
Alias n'est ni pris dans les indications de la police, ni directement
enregistre dans une base de reference par les scripts de configuration
Defoma. Il est plutot pris dans une regle de substitution (subst-rule),
qui est geree par le module Defoma::Subst, et est enregistree par le
module. Si vous voulez qu'une police particuliere se substitue a un
autre identifiant, vous devez enregistrer la police (et son nom reel)
aupres d'un cache de substitution (subst-cache). Pour plus de details,
veuillez consulter la page de manuel Defoma::Subst.
D'ETAIL SUR LE FONCTIONNEMENT DE DEFOMA::ID
L'enregistrement et le desenregistrement des identifiants d'une police
sont generalement effectues par les scripts de configuration Defoma
avec les commandes register et unregister respectivement, mais
l'installation et le retrait de certains identifiants ne doivent pas
etre effectues lors de l'appel aux commandes register et unregister,
mais lors de l'appel aux commandes do-install-(real,alias,subst) et
do-remove-(real,alias,subst) respectivement. Les exemples suivants
montrent comment les identifiants des polices sont enregistres dans une
base de reference et comment il en sont retires.
1.Enregistrement
Le module Defoma::Id enregistre l'identifiant, la police, le
type, la priorite et encore d'autres informations dans une base
de reference.
1.2 Le module recherche les polices qui fournissent l'identifiant de
la base de reference, et prend la premiere d'entre elles. Les
noms reels (RealName) sont toujours prioritaires par rapport aux
Alias, et les Alias par rapport aux noms substitues
(Substituted).
1.3 Si aucune police n'est installee pour cet identifiant, le module
rappelle le script avec la commande do-install-<type>. Si le
script reussit l'installation de la police pour l'identifiant,
le module marque l'identifiant et la police comme INSTALLED
(installe).
1.4 Si une autre police est deja marquee INSTALLED (installee) pour
l'identifiant, le module rappelle le script avec la commande
do-remove-<type> pour retirer l'ancienne police prioritaire pour
cette identifiant, et retire la marque INSTALLED. Ensuite, le
module rappelle le script avec la commande do-install-<type>
pour installer la police comme prioritaire pour cet identifiant.
En cas de succes de l'installation de la police pour
l'identifiant, le module marque l'identifiant et la police comme
etant INSTALLED.
2.Desenregistrement
Si la police est installee pour l'identifiant, le module
Defoma::Id rappelle le script avec la commande do-remove-<type>
afin de retirer la police pour cet identifiant, et retire la
marque INSTALLED. Ensuite, le module recherche les polices qui
fournissent l'identifiant dans la base de reference. Si
l'identifiant est fourni par d'autres polices, le module
recherche la plus prioritaire d'entre elles, et l'installe comme
mentionne dans la section 1.3 precedente.
2.2 Le module retire l'entree correspondant a l'identifiant et la
police.
Ces processus permettent de n'avoir qu'une seule police, la plus
appropriee, qui fournit un identifiant donne, de telle sorte qu'il n'y
ait pas de conflit de nom.
FORMAT D'UNE BASE DE R'EF'ERENCE
Une base de reference contient huit champs pour chaque entree : id
(identifiant), font (police), type, priority (priorite), category
(categorie), depid, depfont et hints (indications).
Le type represente le type d'une entree a l'aide d'une combinaison de
lettres. Une base de reference gere des entrees de polices et de
marques. Ce dernier type d'entree permet d'installer des polices moins
prioritaires pour certains identifiants (qui sont marques USE -
utilise), ou pour conserver une police installee pour un certain
identifiant (marque comme EXCLUDE - exclu). Elles sont supposees etre
placees par les utilisateurs, et ne doivent pas etre utilisees dans les
scripts de configuration Defoma, juste pour une utilisation interne.
Les entrees de polices contiennent des informations sur certains
identifiants d'une police et peuvent etre utilisees dans les scripts.
Le type consiste en deux ou trois lettres. La premiere lettre
represente le type d'entree, qui est soit S (pour les polices), soit M
(pour les marques). Si la premiere lettre est un S, ce qui signifie
qu'il s'agit de l'entree d'une police, la deuxieme lettre peut etre un
r (nom reel), un a (un alias) ou un S (pour une police de
substitution). Si la premiere lettre est un M, ce qui signifie qu'il
s'agit de l'entree d'une marque, la seconde lettre est soit un u (USE)
soit un x (EXCLUDE). Pour les entrees de polices (dont la premiere
lettre est un S), si la police et l'identifiant de l'entree sont
marques INSTALLED, il y a une troisieme lettre, qui est I.
depid et depfont representent les dependances envers un identifiant ou
une police. Une police n'est jamais installee, a moins que la police
depfont soit installee pour l'identifiant depid. Les parametres origine
et depend de defoma_id_register affectent ces champs. Si l'identifiant
d'une police ne depend d'aucun autre identifiant ou police, alors ces
champs valent << . >>.
Le champ hints (indications) represente les indications d'un
identifiant. Il est specifie par l'argument indications de
defoma_id_register. Vous devez utiliser defoma_id_get_hints pour
acceder a la valeur de ce champ.
Les champs de chaque entree d'une base de reference sont accessibles
par les champs de l'id-object dont les clefs sont e_id, e_font, e_type,
e_priority, e_category, e_depid, et e_depfont. Par exemple :
$Id->{e_font}->[3] permet d'acceder a la police de la troisieme entree
de l'id-object $ID.
Voici un exemple de base de reference :
# e_id e_font e_type e_priority e_category ...
0 Helvetica a.pfa SrI 20 type1 ...
1 Courier a.pfa Sa 20 type1 ...
2 Times-Roman b.ttf SrI 30 truetype ...
3 Courier b.ttf SaI 30 truetype ...
Cette base montre que a.pfa a deux identifiants : Helvetica comme
RealName et Courier comme Alias. b.ttf a egalement deux identifiants :
Times-Roman comme RealName et Courier comme Alias.
Deux polices ont le meme identifiant Courier, mais cette base de
reference fait pointer Courier vers b.ttf (autrement dit, c'est b.ttf
qui fournit Courier).
FONCTIONS
defoma_id_open_cache permet d'ouvrir une base de reference. Les bases
de reference dependent des applications. Les scripts de configuration
Defoma d'une application ne peuvent pas ouvrir les bases de reference
d'une autre application. Chaque application peut avoir plusieurs bases
de reference, qui sont identifiees par un suffixe unique pour une
application. Vous pouvez omettre le suffixe pour une application
n'utilisant qu'une seule base de reference. nom_paquet doit etre omis
dans la plupart des cas. La fonction retourne un objet id_object
utilise comme descripteur pour les operations suivantes.
defoma_id_close_cache permet de fermer une base de reference. En
interne, cela permet d'ecrire le contenu d'une base de reference dans
un fichier identifie par id_object.
defoma_id_register permet d'enregistrer une police et un de ses
identifiants dans la base de reference id_object. Vous devez au moins
fournir les parametres type, font, id et priority. type peut prendre
les valeurs << real >>, << alias >> ou << subst >> qui correspondent a
des noms reels (RealName), des Alias, ou des polices de substitution
(Substituted), comme mentionne precedemment. << subst >> ne devrait
etre utilise que par le module Defoma::Subst, ce qui ne laisse donc que
le choix << real >> et << alias >>. Si << alias >> est utilise comme
type de police, alors vous devez specifier le nom reel de la police
dans le parametre origine. Il est obligatoire de specifier l'origine
pour les identifiants ne correspondant pas a un nom reel, parce que ces
identifiants ne doivent pas etre installes, a moins que le nom reel de
la police le soit. Si << real >> est utilise comme type, alors vous
devez specifier les indications de la police.
defoma_id_unregister permet de retirer un identifiant (ou tous) d'une
police d'une base de reference. Si id est specifie, seul cet
identifiant de la police specifiee est retire de la base de reference
id_object. Sinon, tous les identifiants de la police sont retires.
defoma_id_grep_cache permet de rechercher dans la base de reference
id_object un certain identifiant, police, categorie, depid ou depfont
et de retourner la liste des index. Le parametre search-type peut etre
<< real >>, << alias >>, << subst >>, << font >>, << installed >> ou
<< mark >> pour limiter les sujets de la recherche. Les parametres id,
font, type, category, depid et depfont permettent de preciser des
valeurs de recherche pour ces differents champs. Il n'est pas
necessaire de preciser aucun de ces parametres.
defoma_id_get_hints permet d'obtenir les indications de l'index
specifie dans la base de reference id_object. Si l'index d'un Alias ou
d'une police de substitution (Substituted) est specifie, cette fonction
retourne les indications de la police dont le nom reel (RealName) est
specifie par le parametre origine de defoma_id_register lorsque cet
alias ou cette police de substitution a ete enregistre.
defoma_id_set permet de faire fournir un id a une police, ou d'empecher
une police de fournir un identifiant. Le parametre flag peut valoir
install ou exclude. defoma_id_unset permet de supprimer le drapeau de
l'identifiant et de la police specifies.
EXEMPLES
# Ouvre une base de reference avec << test >> comme suffixe.
$Id = defoma_id_open_cache('test');
# enregistrement des identifiants avec la commande register.
my $police = shift;
my $h = parse_hints_start('Alias', @_);
my $nom_police = $h->{FontName};
my @alias = split(/ /, $h->{Alias});
my $pri = $h->{Priority};
defoma_id_register($Id,
type => 'real',
font => $police,
id => $nom_police,
priority => $pri,
hints => join(' ', @_));
foreach my $i (@alias) {
defoma_id_register($Id,
type => 'alias',
font => $police,
id => $i,
priority => $pri,
origin => $nom_police);
}
# retire des identifiants.
defoma_id_unregister($Id, type => 'alias', font => $police);
defoma_id_unregister($Id, type => 'real', font => $police);
# fermeture d'une base de reference
defoma_id_close_cache($Id);
# liste des index de polices ayant << Helvetica >> comme identifiant.
my @liste = defoma_id_grep_cache($Id, 'installed', id => 'Helvetica');
VOIR AUSSI
defoma(1). Defoma::Font(1). Defoma::Subst(1).
TRADUCTION
Ce document est une traduction, realisee par Nicolas Francois le 29
juillet 2005 et mise a jour par Cyril Brulebois en janvier 2007.
L'equipe de traduction a fait le maximum pour realiser une adaptation
francaise de qualite.
La version anglaise la plus a jour de ce document est toujours
consultable en ajoutant l'option << -L C >> a la commande man.
N'hesitez pas a signaler a l'auteur ou a la liste de traduction
<debian-l10n-french@lists.debian.org>, selon le cas, toute erreur dans
cette page de manuel.
March 4, 2001 Defoma::Id(3pm)