Florian Briand
d13f36c5e2
- 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
124 lines
3.8 KiB
C
124 lines
3.8 KiB
C
/*
|
|
* -------------------------------------------------------------------
|
|
* (c) 2001 GIE SESAM-VITALE
|
|
*
|
|
* PROJET : Services de Gestion de Donnees
|
|
*
|
|
* FICHIER : sgd.h (v4)
|
|
*
|
|
* Declaration des prototypes des fonctions SGD pour les progiciels.
|
|
* -------------------------------------------------------------------
|
|
*/
|
|
|
|
#ifndef __SGD_H__
|
|
#define __SGD_H__
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*
|
|
* Inclusions
|
|
*/
|
|
#include <stddef.h>
|
|
#include "mc_sys_def.h"
|
|
|
|
/* Reservation d'un session d'echange. */
|
|
extern unsigned short API_ENTRY SGD_ReserverSession (size_t Taille, unsigned short* NumeroSession);
|
|
|
|
/* Redimensionnement d'une zone d'entree interne. */
|
|
extern unsigned short API_ENTRY
|
|
SGD_RedimensionnerBuffer (unsigned short NumeroSession,
|
|
size_t NouvelleTaille);
|
|
|
|
/* Liberation d'une session d'echange. */
|
|
extern unsigned short API_ENTRY
|
|
SGD_LibererSession (unsigned short NumeroSession);
|
|
|
|
/* Ajout d'un groupe. */
|
|
extern unsigned short API_ENTRY
|
|
SGD_AjouterGroupe (unsigned short NumeroSession,
|
|
unsigned short IdGroupe);
|
|
|
|
/* Ajout d'un champ. */
|
|
extern unsigned short API_ENTRY
|
|
SGD_AjouterChamp (unsigned short NumeroSession,
|
|
const char* ValeurChamp);
|
|
|
|
/* Ajout d'un champ d'octets. */
|
|
extern unsigned short API_ENTRY
|
|
SGD_AjouterChampBin (unsigned short NumeroSession,
|
|
const char* ValeurChamp,
|
|
size_t TailleChamp);
|
|
|
|
/* Ajout d'un champ d'octets d'un Fichier. */
|
|
extern unsigned short API_ENTRY
|
|
SGD_AjouterChampFichier (unsigned short NumeroSession,
|
|
const char* NomFichier);
|
|
|
|
/* Lecture du numero du groupe suivant. */
|
|
extern unsigned short API_ENTRY
|
|
SGD_LireGroupeSuivant (unsigned short NumeroSession,
|
|
unsigned short IdGroupeCourant,
|
|
unsigned short OccurrenceGroupeCourant,
|
|
unsigned short* IdGroupeSuivant,
|
|
unsigned short* OccurrenceGroupeSuivant);
|
|
|
|
/* Lecture d'un champ. */
|
|
extern unsigned short API_ENTRY
|
|
SGD_LireChamp (unsigned short NumeroSession,
|
|
unsigned short IdGroupe,
|
|
unsigned short OccurrenceGroupe,
|
|
unsigned short NumeroChamp,
|
|
char* ValeurChamp,
|
|
size_t* TailleMax);
|
|
|
|
/* Lecture d'un champ d'octets. */
|
|
extern unsigned short API_ENTRY
|
|
SGD_LireChampBin (unsigned short NumeroSession,
|
|
unsigned short IdGroupe,
|
|
unsigned short OccurrenceGroupe,
|
|
unsigned short NumeroChamp,
|
|
char* ValeurChamp,
|
|
size_t* TailleMax);
|
|
|
|
/* Lecture d'un champ vers un fichier. */
|
|
extern unsigned short API_ENTRY
|
|
SGD_LireChampFichier (unsigned short NumeroSession,
|
|
unsigned short IdGroupe,
|
|
unsigned short OccurrenceGroupe,
|
|
unsigned short NumeroChamp,
|
|
const char* NomFichier);
|
|
|
|
/* Activation de la trace. */
|
|
extern unsigned short API_ENTRY
|
|
SGD_InitTrace (const char* NomFichier,
|
|
const char* ModeOuverture,
|
|
unsigned short Module,
|
|
unsigned char Niveau);
|
|
|
|
/*Initialisation de SGD*/
|
|
unsigned short API_ENTRY SGD_Init(const char *fichierSesam);
|
|
|
|
/* Transmission de la zone d'entrée. */
|
|
extern unsigned short API_ENTRY SGD_LireZoneIn(unsigned short NumeroSession,
|
|
void** ZDonneesEntree,
|
|
size_t* TailleDonneesEntree);
|
|
|
|
/* Transmission de la zone de sortie. */
|
|
typedef void (API_ENTRY *LibererZoneMem) (void* Zone);
|
|
|
|
|
|
extern unsigned short API_ENTRY SGD_EcrireZoneOut(unsigned short NumeroSession,
|
|
void* ZDonneesSortie,
|
|
size_t TailleDonneesSortie,
|
|
LibererZoneMem Fonction);
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|