Krys4lide/crates/fsv-sys/vendor/fsv/1.40.14.13/includes/STS/sts.h
Florian Briand d13f36c5e2
feat: Première implémentation de bindings pour FSV SESAM-Vitale
- 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
2024-10-09 22:31:26 +02:00

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 */