Florian Briand
c549f7def5
- Création de la crates/fsv-sys - Ajout des headers de la FSV 1.40.14.13 dans crates/fsv-sys/vendor - Génération des bindings depuis ces headers avec bindgen - Implémentation d'une structure de loading de la librairie au runtime - Implémentation d'une macro permettant de générer facilement la couche d'accès aux fonctions de la librairie
354 lines
13 KiB
C
354 lines
13 KiB
C
/*
|
|
%-----------------------------------------------------------------------------
|
|
% PROJET : STS INTERFACE
|
|
%
|
|
% MODULE : HEADER STS INTERFACE
|
|
%
|
|
% VERSION : cf #define ci-après
|
|
%
|
|
% FICHIER : sts.h
|
|
%
|
|
% Déclaration des prototypes des fonctions STS - INTERFACE
|
|
%-----------------------------------------------------------------------------
|
|
%
|
|
% EDS DHU - 09/04/03 - Création du .h
|
|
%
|
|
% EDS OCL - 06/06/03 - Defect 91 : Rectification du prototype de InitTrace()
|
|
%
|
|
% EDS OCL - 04/07/03 - Defect 115 : Nettoyage de stsitf.h (devenu sts.h)
|
|
%
|
|
%-----------------------------------------------------------------------------
|
|
*/
|
|
|
|
#ifndef __STSITF_H
|
|
#define __STSITF_H
|
|
#define __STSITF_VERSION "0103"
|
|
/* Ne pas oublier d'impacter idef.h aussi */
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*
|
|
% Bibliothèques ANSI ou système
|
|
%------------------------------
|
|
*/
|
|
|
|
|
|
/*
|
|
% Fichiers h inclus
|
|
%------------------
|
|
*/
|
|
|
|
#include "sys_dep.h"
|
|
/*
|
|
% Macros et Constantes
|
|
%---------------------
|
|
*/
|
|
|
|
/* OCL - Defect 115 : Suppression du #define G_xxx ici même */
|
|
|
|
/* OCL - Defect 115 : Suppression du second #ifdef _cplusplus ici même */
|
|
|
|
|
|
/*********************************************************************************
|
|
************************* Fonctions réentrantes *********************************
|
|
*********************************************************************************/
|
|
|
|
/*
|
|
%-----------------------------------------------------------------------------
|
|
% STS_Tarification
|
|
%
|
|
% Rôle : Tarification de la part complémentaire des actes de la facture
|
|
%
|
|
% Paramètres d'entrée :
|
|
% MotifAppel (char) : 1er appel ('P') ou Appel sur echec de
|
|
% tarification ('E').
|
|
% ZDonneesEntree (void*) : Zone d'échange fournie par le Progiciel
|
|
% contenant toutes les informations sur la facture
|
|
% TailleDonneesEntree (size_t) : Taille de la zone d'échange Zin
|
|
%
|
|
% Paramètres de sortie :
|
|
% ZDonneesSortie (void**) : Zone d'échange fournie par le module STS appelé
|
|
% contenant toutes les informations modifiées de la facture
|
|
% en entrée et de nouvelles informations.
|
|
% TailleDonneesSortie (size_t*) : Taille de la zone d'échange Zout
|
|
%
|
|
% Valeur retournée :
|
|
% OK si pas d'erreur
|
|
% ERR_STS_NON_INITIALISE si module STS non initialisé
|
|
% et les codes d'erreurs de la tarification du module STS appelé
|
|
%
|
|
%-----------------------------------------------------------------------------
|
|
*/
|
|
/* OCL - Defect 115 : Remplacement PTR par FARPTR */
|
|
typedef unsigned short (API_ENTRY FARPTR STS_Tarification)(char MotifAppel, void FARPTR ZDonneesEntree,
|
|
size_t TailleDonneesEntree, void FARPTR FARPTR ZDonneesSortie,
|
|
size_t FARPTR TailleDonneesSortie);
|
|
|
|
/* Fonction simplifiée */
|
|
/* OCL - Defect 115 : Remplacement STS_SIM par SGD */
|
|
#ifdef SGD
|
|
typedef unsigned short (API_ENTRY FARPTR STS_Tarification_S)(char MotifAppel, unsigned short NumeroSession);
|
|
#endif
|
|
|
|
/*
|
|
%-----------------------------------------------------------------------------
|
|
% STS_Assistance
|
|
%
|
|
% Rôle : Assistance à la facturation.
|
|
%
|
|
% Paramètres d'entrée :
|
|
% MotifAppel (char) : 1er appel ('P') ou Appel sur echec de
|
|
% tarification ('E').
|
|
% PorteeAppel (ushort) : 0 pour une assistance sur toute la facture.
|
|
% 1..n pour une assistance sur un acte de rang donné /zone
|
|
% ZDonneesEntree (void*) : Zone d'échange fournie par le Progiciel
|
|
% contenant toutes les informations sur la facture
|
|
% TailleDonneesEntree (size_t) : Taille de la zone d'échange Zin
|
|
%
|
|
% Paramètres de sortie :
|
|
% ZDonneesSortie (void**) : Zone d'échange fournie par le module STS appelé
|
|
% TailleDonneesSortie (size_t*) : Taille de la zone d'échange Zout
|
|
%
|
|
% Valeur retournée : (idem Tarification)
|
|
% OK si pas d'erreur
|
|
% ERR_STS_NON_INITIALISE si module STS non initialisé
|
|
% et les codes d'erreurs de la tarification du module STS appelé
|
|
%
|
|
%-----------------------------------------------------------------------------
|
|
*/
|
|
/* OCL - Defect 115 : Remplacement PTR par FARPTR */
|
|
typedef unsigned short (API_ENTRY FARPTR STS_Assistance)(char MotifAppel, unsigned short PorteeAppel,
|
|
void FARPTR ZDonneesEntree, size_t TailleDonneesEntree,
|
|
void FARPTR FARPTR ZDonneesSortie, size_t FARPTR TailleDonneesSortie);
|
|
|
|
/* Fonction simplifiée */
|
|
#ifdef SGD
|
|
typedef unsigned short (API_ENTRY FARPTR STS_Assistance_S)(char MotifAppel, unsigned short PorteeAppel,
|
|
unsigned short NumeroSession);
|
|
#endif
|
|
|
|
/*
|
|
%-----------------------------------------------------------------------------
|
|
% STS_LireVersion
|
|
%
|
|
% Rôle : Lecture de la version de ce module et du fichier de ces tables externes
|
|
% dans le groupe 3780. Appeller la lecture de version de chaque module STS
|
|
% puis recopier la réponse 3780 de chacun dans la zone de sortie.
|
|
%
|
|
% Paramètres d'entrée : aucun
|
|
%
|
|
% Paramètres de sortie :
|
|
% ZDonneesSortie (void**) : Zone d'échange fournie par ce module
|
|
% contenant les versions (grp 3780) demandées.
|
|
% TailleDonneesSortie (size_t*) : Taille de la zone d'échange Zout
|
|
%
|
|
% Valeur retournée :
|
|
% OK si pas d'erreur
|
|
% ERR_STS_NON_INITIALISE si module STS non initialisé
|
|
% ERR_ZOUT si ZDonneesSortie==NULL ou TailleDonneesSortie==NULL
|
|
% ERR_ZONE_ALLOC si mémoire insuffisante pour allouer la Zout
|
|
%
|
|
%-----------------------------------------------------------------------------
|
|
*/
|
|
/* OCL - Defect 115 : Remplacement PTR par FARPTR */
|
|
typedef unsigned short (API_ENTRY FARPTR STS_LireVersion)(void FARPTR FARPTR ZDonneesSortie, size_t FARPTR TailleDonneesSortie);
|
|
|
|
/* Fonction simplifiée */
|
|
#ifdef SGD
|
|
typedef unsigned short (API_ENTRY FARPTR STS_LireVersion_S)(unsigned short NumeroSession);
|
|
#endif
|
|
|
|
/*
|
|
%-----------------------------------------------------------------------------
|
|
% STS_InitTrace
|
|
%
|
|
% Rôle : Initialisation des traces du module STS-Interface dans un fichier log.
|
|
% Cette fonction permet d'activer ou désactiver (niveau 0) les
|
|
% traces. Une activation requiert un nom de fichier et un mode
|
|
% d'ouverture. Un changement de niveau peut se faire sur le même
|
|
% fichier ou sur un différent s'il est précisé en entrée
|
|
%
|
|
% Paramètres d'entrée :
|
|
% NomFichier (char*) : Chemin et nom de fichier de trace
|
|
% ModeOuverture (char*) : Mode d'ouverture du fichier de trace
|
|
% "a", "w" (,"ab", "wb").
|
|
% Module (ushort) : n° de module 0 à 5 (6=TOUS)
|
|
% Niveau (uchar) : Niveau de trace : 0 signifie pas de trace, 1
|
|
% signifie traces de profondeur 8 et >=2 signifie traces sans limite
|
|
% de profondeur et activation traces module STS_SI
|
|
%
|
|
% Paramètres de sortie : aucun
|
|
%
|
|
% Valeur retournée :
|
|
% OK si pas d'erreur
|
|
% ERR_PARAM si NomFichier/ModeOuverture incorrect quand Niveau > 0
|
|
% ERR_TRACE_FILE si erreur d'ouverture du fichier de trace
|
|
%
|
|
%-----------------------------------------------------------------------------
|
|
*/
|
|
/* OCL - Defect 91 : Rectification du prototype de InitTrace() */
|
|
/* OCL - Defect 115 : Remplacement PTR par FARPTR */
|
|
typedef unsigned short (API_ENTRY FARPTR STS_InitTrace)(const char FARPTR pathConf, const char FARPTR ModeOuverture,
|
|
unsigned short Module, unsigned char Niveau);
|
|
|
|
/*********************************************************************************
|
|
************************* Fonctions d'initialisation et de terminaison *********
|
|
*********************************************************************************/
|
|
|
|
/*
|
|
%-----------------------------------------------------------------------------
|
|
% STS_InitLIB
|
|
%
|
|
% Rôle : Initialisation du module STS-Interface : Chargement des tables externes
|
|
% et suivi de parc. Appel de l'nitialisation de chaque module STS
|
|
%
|
|
% Paramètres d'entrée : aucun
|
|
%
|
|
% Paramètres de sortie : aucun
|
|
%
|
|
% Valeur retournée :
|
|
% OK si pas d'erreur
|
|
% ERR_INTERNE_ITF si erreur interne du module STS-Interface (ou STS SI)
|
|
% ERR_MEM_DISPO si plus de mémoire disponible
|
|
% ERR_PKG_PATH_INI si le chemin d'accès au fichier binaire est
|
|
% inconnu (fichier de configuration inaccessible ou information
|
|
% manquante)
|
|
% ERR_ITF_PKG_ACCES si fichier binaire de table inaccessible
|
|
% ERR_ITF_PKG_VER si version du fichier incohérent avec version du
|
|
% module STS-Interface (dans les deux sens)
|
|
% ERR_ITF_PKG_CRC si CRC du fichier binaire est incorrect
|
|
% ERR_ITF_PKG_FORME si format du fichier incorrect
|
|
% ERR_ITF_PKG_INCPT s'il manque une table dans le fichier binaire
|
|
% ERR_ITF_PKG_NOM si le nom du fichier est différent du nom dans
|
|
% l'en-tête du fichier.
|
|
% les codes suivants ne sont pas des erreurs fatales (non bloquant)
|
|
% mais juste des avertissements
|
|
% WAR_STS_DEJA_INITIALISE si module déjà initialisé
|
|
% WAR_ADM_PATH si chemin au suivi de parc non trouvé dans fichier
|
|
% de configuration des produits SV
|
|
% WAR_ADM_FILE si impossible de créer les fichiers de suivi de
|
|
% parc
|
|
% ET les codes de retour de chaque module STS appelé
|
|
%
|
|
%-----------------------------------------------------------------------------
|
|
*/
|
|
/* extern unsigned short API_ENTRY STS_InitLIB(); */
|
|
/*
|
|
%-----------------------------------------------------------------------------
|
|
% STS_InitLIB2
|
|
%
|
|
% Rôle : Initialisation du module STS-Interface : Chargement des tables externes
|
|
% et suivi de parc. Appel de l'nitialisation de chaque module STS
|
|
%
|
|
% Paramètres d'entrée :
|
|
% NomFichierIni (char*) : Chemin et nom du fichier de configuration des
|
|
% produits SESAM Vitale du poste de travail (sesam.ini)
|
|
%
|
|
% Paramètres de sortie : aucun
|
|
%
|
|
% Valeur retournée :
|
|
% OK si pas d'erreur
|
|
% ERR_INTERNE_ITF si erreur interne du module STS-Interface (ou STS SI)
|
|
% ERR_MEM_DISPO si plus de mémoire disponible
|
|
% ERR_PKG_PATH_INI si le chemin d'accès au fichier binaire est
|
|
% inconnu (fichier de configuration inaccessible ou information
|
|
% manquante)
|
|
% ERR_ITF_PKG_ACCES si fichier binaire de table inaccessible
|
|
% ERR_ITF_PKG_VER si version du fichier incohérent avec version du
|
|
% module STS-Interface (dans les deux sens)
|
|
% ERR_ITF_PKG_CRC si CRC du fichier binaire est incorrect
|
|
% ERR_ITF_PKG_FORME si format du fichier incorrect
|
|
% ERR_ITF_PKG_INCPT s'il manque une table dans le fichier binaire
|
|
% ERR_ITF_PKG_NOM si le nom du fichier est différent du nom dans
|
|
% l'en-tête du fichier.
|
|
% les codes suivants ne sont pas des erreurs fatales (non bloquant)
|
|
% mais juste des avertissements
|
|
% WAR_STS_DEJA_INITIALISE si module déjà initialisé
|
|
% WAR_ADM_PATH si chemin au suivi de parc non trouvé dans fichier
|
|
% de configuration des produits SV
|
|
% WAR_ADM_FILE si impossible de créer les fichiers de suivi de
|
|
% parc
|
|
% ET les codes de retour de chaque module STS appelé
|
|
%
|
|
%-----------------------------------------------------------------------------
|
|
*/
|
|
typedef unsigned short (API_ENTRY FARPTR STS_InitLIB2)(const char FARPTR nomFichierIni);
|
|
|
|
/*
|
|
%-----------------------------------------------------------------------------
|
|
% STS_TermLIB
|
|
%
|
|
% Rôle : Terminaison du module STS-Interface : Déchargement des tables externes.
|
|
%
|
|
% Paramètres d'entrée : aucun
|
|
%
|
|
% Paramètres de sortie : aucun
|
|
%
|
|
% Valeur retournée :
|
|
% OK si pas d'erreur
|
|
% ERR_INTERNE_ITF si erreur interne du module STS-Interface (ou STS SI)
|
|
%
|
|
%-----------------------------------------------------------------------------
|
|
*/
|
|
typedef unsigned short (API_ENTRY FARPTR STS_TermLIB)(void);
|
|
|
|
/*********************************************************************************
|
|
************************* Fonctions de gestion de la mémoire *******************
|
|
*********************************************************************************/
|
|
|
|
/*
|
|
%-----------------------------------------------------------------------------
|
|
% STS_AllouerZoneMem
|
|
%
|
|
% Rôle : Allocation d'une zone d'échange de sortie par STS Interface.
|
|
% Cette fonction permet la réallocation d'une zone d'échange.
|
|
% L'allocation d'une nouvelle zone d'échange nécessite un pointeur
|
|
% NULL en entrée !
|
|
% Cette fonctio est à utiliser conjointement avec STS_LibererZoneMem
|
|
% pour faciliter le Debugage (zone allouée par l'écrivain)
|
|
%
|
|
% Paramètres d'entrée :
|
|
% Taille (size_t) : Taille de la zone d'échange à allouer.
|
|
%
|
|
% Paramètres d'entrée et de sortie :
|
|
% Zone (void**) : Zone d'échange préallouée en entrée (ou NULL).
|
|
% Zone allouée (réallouée) par le module STS-Interface.
|
|
%
|
|
% Valeur retournée :
|
|
% OK si pas d'erreur
|
|
% ERR_ZOUT si Zone==NULL ou Taille==0
|
|
% ERR_ZONE_ALLOC si plus de mémoire disponible
|
|
%
|
|
%-----------------------------------------------------------------------------
|
|
*/
|
|
/* OCL - Defect 115 : Remplacement PTR par FARPTR */
|
|
typedef unsigned short (API_ENTRY FARPTR STS_AllouerZoneMem)(void FARPTR FARPTR Zone, size_t Taille);
|
|
|
|
|
|
/*
|
|
%-----------------------------------------------------------------------------
|
|
% STS_LibererZoneMem
|
|
%
|
|
% Rôle : Libération de la zone d'échange de sortie par STS Interface.
|
|
%
|
|
% Paramètres d'entrée :
|
|
% Zone (void*) : Zone d'échange à libérer (allouée précédemment par
|
|
% le module STS-Interce par STS_AllouerZoneMem).
|
|
%
|
|
% Paramètres de sortie : aucun
|
|
%
|
|
% Valeur retournée : aucune
|
|
%
|
|
%-----------------------------------------------------------------------------
|
|
*/
|
|
/* OCL - Defect 115 : Remplacement PTR par FARPTR */
|
|
typedef void (API_ENTRY FARPTR STS_LibererZoneMem)(void FARPTR Zone);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* __STSITF_H */
|