Documentation de FKResults.c

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

SOMMAIRE

Types

FkResultErrorLevel
Fonctions
FkSendTextResponse
FkResultSendOneMessage
FkResultSendBeginMessage
FkResultSendMessage
FkResultSendEndMessage
FkSendModel

Le module FKResults.c fait partie de la librairie libFKUser.a, il contient les primitives permettant d'envoyer des résultats à l'interface utilisateur.

Introduction

Lorsque vous rendez des résultats à Macao, vous avez plusieurs possibilités.

La plus simple consiste à faire afficher du texte dans la fenêtre d'historique. Pour cela vous pouvez utiliser les fonctions FkSendWaitingMessage ou FkTrace.

  • FkSendWaitingMessage sert à faire patienter l'utilisateur (en lui indiquant l'étape de calcul en cours par exemple)
  • FkTrace sert lors de mise au point de vos programmes.

Comme vous pouvez le constater, les deux fonctions ci-dessus ne sont pas à proprement parlé le résultat de votre application. Les messages ne sont d'ailleurs affichés à l'utilisateur que si il a choisi l'option "Résultats détaillés" du menu "Plate-forme".

Pour envoyer des résultats, plus exactement des ensembles de résultats cohérents, vous devez utiliser les fonctions définies dans ce module. Ces fonctions permettent :

Types

Le type énuméré FkResultErrorLevel

Le type de message envoyé à l'interface utilisateur est défini par FkResultErrorLevel :
typedef enum
 { kFk_ResultErrorNotSpecified=0, kFk_ResultNoError=1,
   kFk_ResultWarning, kFk_ResultError } FkResultErrorLevel;

kFk_ResultNoError

Pas d'erreur

kFk_ResultWarning

Seulement des mises en garde (Warning)

kFk_ResultError

Erreur grave

Fonctions

FkSendTextResponse

FkSendTextResponse envoit un seul message résultat à l'interface utilisateur.

PROTOTYPE

#include <FKResults.h>
void FkSendTextResponse(FkConstISOStr message);

message

Chaine de caractères C de taille quelconque pourvant comprendre des '\n'.

Attention:

Dans cette fonction, le message ne peut pas être NULL.


FkResultSendOneMessage

FkResultSendOneMessage envoit un seul message résultat l'interface utilisateur pouvant être associé à un objet, à un label,...

PROTOTYPE

#include <FKResults.h>
void FkResultSendOneMessage(
  FkResultErrorLevel fkResultErrorLevel,
  FkConstISOStr message,
  FkObjectID fkObjectID,
  FkConstAttributeName pAttributeInternalName,
  FkSShort indexBegin,
  FkSShort indexEnd);

fkResultErrorLevel

Niveau d'erreur du message ou 'sans erreur'

message

Chaine de caractères C de taille quelconque pourvant comprendre des '\n'.
NULL si pas de message.

fkObjectID

Identificateur de l'objet ou 0

pAttributeInternalName

Nom interne du label sous forme de chaine C.
NULL si le résultat n'est pas associé à un label.

indexBegin,

Plage de caractère du label sur laquelle s'applique le résultat.
0,0 pour tout label.
Si indexBegin < 0, la plage est en fait la ligne (-indexBegin).

indexEnd


Une réponse à une question peut être composée de plusieurs ensembles de réponses individuelles. Par exemple, lors d'une phase de compilation, la réponse peut être composée de plusieurs erreurs détectées. Chaque erreur pouvant être associée à un ensemble d'objets.
Lorsque l'on veut envoyer un ensemble de messages ou d'objets, il faut encadrer l'appel de FkResultSendMessage de FkResultSendBeginMessage et FkResultSendEndMessage. La réponse complète peut être une suite d'ensembles de ce type.

FkResultSendBeginMessage

FkResultSendBeginMessage indique de début d'un ensemble de messages ou d'objets.

PROTOTYPE

#include <FKResults.h>
void FkResultSendBeginMessage(
  FkResultErrorLevel fkResultErrorLevel);

fkResultErrorLevel

Niveau d'erreur du message ou 'sans erreur'

FkResultSendMessage

FkResultSendMessage précise le message envoyé. Il doit être encadré de FkResultSendBeginMessage et FkResultSendEndMessage.

PROTOTYPE

#include <FKResults.h>
void FkResultSendMessage(FkConstISOStr message,
void FkResultSendMessage(
  FkConstISOStr message,
  FkObjectID fkObjectID,
  FkConstAttributeName pAttributeInternalName,
  FkSShort indexBegin,
  FkSShort indexEnd)										FkSShort indexBegin, FkSShort indexEnd);

message

Chaine de caractères C de taille quelconque pourvant comprendre des '\n'.
NULL si pas de message.

fkObjectID

Identificateur de l'objet ou 0

pAttributeInternalName

Nom interne du label sous forme de chaine C.
NULL si le résultat n'est pas associé à un label.

indexBegin,

Plage de caractère du label sur laquelle s'applique le résultat.
0,0 pour tout label.
Si indexBegin < 0, la plage est en fait la ligne (-indexBegin).

indexEnd

FkResultSendEndMessage

FkResultSendEndMessage indique la fin d'un ensemble de messages ou d'objets.

PROTOTYPE

#include <FKResults.h>
void FkResultSendEndMessage(void);

FkSendModel

FkSendmodel envoit le modèle à l'interface utilisateur. Le modèle a été créé avec les API définies dans FKModel.h.

PROTOTYPE

#include <FKResults.h>
void FkSendModel(PFkModel pFkModel);

pFkModel

Modèle a été créé avec les API définies dans FKModel.h.

Attention:

Pour le moment cette fonction ne fait rien car les commandes ont déjà été envoyées par FkNewNode, ...

Annexe

Mettre des exemples d'utilisation.

API de Framekit en C | FrameKit
Mise à jour : 10-Fév-2000