Documentation de FKMain.c

par Jean-Luc Mounier
Laboratoire d'Informatique de Paris 6

SOMMAIRE

Types

FkEndStatus

Fonctions

FkServiceMain
FkExit
FkAbort

Annexe

Le module FKMain.c fait partie de la librairie libFKData.a, il contient le programme principal d'une application intégrée dans FramkeKit ainsi que les primitives de terminaison.

Types

Le type énuméré FkEndStatus

En fin d'exécution, une application intégrée dans FrameKit doit indiquer comment s'est passé le traitement.:

typedef enum
 { kFk_EndNoProblem=1, kFk_EndOnWarning, kFk_EndOnError } FkEndStatus;

kFk_EndNoProblem

Pas d'erreur

kFk_EndOnWarning

Seulement des mises en garde (Warning)

kFk_EndOnError

Erreur grave

Fonctions

FkServiceMain

FkServiceMain est le programme principal de service. En fin d'exécution, le contrôle doit être rendu à FrameKit. Pour cela la fonction FkServiceMain doit se terminer (par un return(valeur)) en indiquant si tout s'est bien passé ou pas en rendant un code d'erreur.
Voir exemple d'utilisation en annexe.

PROTOTYPE

#include <FKMain.h>
FkEndStatus FkServiceMain(int argc,char *argv[ ]); FkEndStatus;

argc

nombre de paramètres.

argv

Le tableau contenant les paramètre du programme principal expurgé des paramètres traités par FrameKit.

RÉSULTAT

voir FkEndStatus.

IMPORTANT:

En cas de terminaison 'précipitée' (fonction exit), vous devez utiliser la fonction FkExit.

CONSIDÉRATIONS

Dans une prochaine version de FrameKit, il ne faudra pas faire d'entrées/sorties directes. En particulier, il ne faudrat pas utiliser printf. Temporairement, si vous voulez utiliser cette fonction, il faut définir la variable PRINTF_ALLOWED.

FkExit

En fin d'exécution, le contrôle doit être rendu à FrameKit. Pour cela vous pouvez aussi sortir de votre programme par la fonction FkExit en indiquant si tout s'est bien passé ou en rendant un code d'erreur en paramètre.

PROTOTYPE

#include <FKMain.h>
void FkExit(FkEndStatus fkEndStatus)

fkEndStatus

code d'erreur.

DESCRIPTION

En appelant FkExit, le contrôle sera rendu au programme principal de FrameKit. Cet appel de fonction n'aura pas de retour.

NOTE:

Maleureusement, le compilateur ne sais pas qu'il n'y aura pas de retour. Aussi, si vous utilisez FkExit dans une fonction qui doit rendre un paramètre, il sera nécessaire de faire suivre cet appel par un return(defaultValue) pour éviter que le compilateur vous dises qu'il y a un cas de sortie sans retour de valeur !.

CONSIDÉRATIONS

Il faut utiliser les paramètres de retour kFk_EndNoProblem, kFk_EndOnWarning ou kFk_EndOnError et ne pas utiliser de constantes numériques. En particulier, ne pas utilisez FkExit(0) mais FkExit(kFk_EndNoProblem).

FkAbort

En fin d'exécution, le contrôle doit être rendu à FrameKit. Pour cela vous pouvez aussi sortir de votre programme par la fonction FkAbort. Cela permet de créer un fichier core après avoir correctement fermé la communication avec FrameKit

PROTOTYPE

#include <FKMain.h>
void FkAbort(void)

DESCRIPTION

En appelant FkAbort, le contrôle sera rendu au programme principal de FrameKit. Cet appel de fonction n'aura pas de retour.

Annexe

Les annexes de ce document illustrent l'utilisation des fonctions décrites ici.

Annexe A

Ci-dessous un exemple de programme principal illustrant les fonctions .

#define PRINTF_ALLOWED 1
#include <FKTypes.h>
#include <FKstdio.h>
#include <FKMain.h>
 
#include <CListes.h>
 
FkEndStatus FkServiceMain(int argc,char *argv[])
	{
	#pragma unused(argc, argv)
	CListe liste;
 
	printf("FKServiceMain:hello world\n");
	printf("FKServiceMain:You are on "FK_OS_NAME"\n");
	liste=CreerListe();
	if (liste==NULL) { FkExit(kFk_EndOnError); }
	DetruireListe(liste);
	return(kFk_EndNoProblem);
	}
/*--------------------------------------------------------------------*/

API de Framekit en C | FrameKit
Mise à jour : 17-Sep-97