File: libCalCom.h

package info (click to toggle)
scilab 2.6-4
  • links: PTS
  • area: non-free
  • in suites: woody
  • size: 54,632 kB
  • ctags: 40,267
  • sloc: ansic: 267,851; fortran: 166,549; sh: 10,005; makefile: 4,119; tcl: 1,070; cpp: 233; csh: 143; asm: 135; perl: 130; java: 39
file content (143 lines) | stat: -rw-r--r-- 3,856 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#ifndef _LIBCALCOM_
#define _LIBCALCOM_

/*********************************************************************
 * Header file utilitaires.h
 */

typedef struct Tableau_avec_taille
{
    char **tableau;
    int taille;
} tableau_avec_taille;


extern void liberer_tableau_de_pointeurs();

/*
    concat_caractere et strcat_plus_caractere :
    il faut que la chaine passee en premier argument ait 
    la place d'accueillir ce qui leur sera concatene.
*/

extern void concat_caractere();
extern void strcat_plus_caractere();


extern char *concatener_deux_chaines();
extern tableau_avec_taille convertir_nombre_arbitraire_de_chaines_en_tableau();
extern char *concatenation_plusieurs_chaines();

/*
    dupliquer_chaine est l'equivalent de strdup mais utilise allouer_type
    du module de gesation memoire.
*/
extern char *dupliquer_chaine();


/*********************************************************************
 * Header file : formatage_messages
 */

#define SEPARATEUR ' '
#define CARACTERE_ECHAPPEMENT '\\'

typedef tableau_avec_taille Message;

/*
   chaine au format message : chaine classique
   chaine au format trame : chaine dans laquelle les SEPARATEUR
   sont precedes d'un CARACTERE_ECHAPPEMENT pour qu'elle 
   ne soit pas decoupee lorsqu'elle est dans une trame.
*/



/*
   decouper_trame prend en entree une trame qui est une chaine de
   caracteres contenant des mots au format trame separes par des
   separateurs, un caractere SEPARATEUR precede d'un
   CARACTERE_ECHAPPEMENT n'etant pas considere comme un separateur.
   Chaque mot est place dans une entree d'un tableau, lui meme champ
   d'une structure Message, qui est retournee.
*/

extern Message decouper_trame();



/*
   coller_chaines concatene les mots du tableau de la structure
   Message dans une chaine qui sera retournee, en les separant par
   des SEPARATEUR et les formatant au format trame
*/

extern char *coller_chaines();



/*
   liberer_message libere les entrees du champ tableau de la
   structure Message, ainsi que le tableau lui-meme.
   Le tableau peut etre un tableau dynamique ou non, puisque c'est
   la fonction liberer_mixte qui est appelee.
*/

extern void liberer_message();


/*********************************************************************
 * Header file : communications
 */

/*
   La fonction envoyer_message_parametres_var prend un nombre arbitraire de
   chaines de caracteres et les envoie au scruteur apres les avoir formate
   correctement.
*/
extern void envoyer_message_parametres_var();

/*
   La fonction envoyer_message_tableau fait la meme chose que
   la fonction envoyer_message_parametres_var, mais les chaines
   de caracteres lui sont passees dans une structure Message.
*/
extern void envoyer_message_tableau();

/*
   attendre_reponse renvoie un message de la source et du type demande.
*/
extern Message attendre_reponse();



/*********************************************************************
 * Header file : gestion_messages
 */

/* Non du premier message envoye par le scruteur pour */
/* leur communiquer leur identificateur.              */

#define MSG_IDENTIFICATION "APPLI_ID"

/* Cette structure permet de connaitre la procedure a appeler (action)    */
/* en cas de reception du message spontane "type_message".                */
/* Elle contient aussi le nombre de parametres requis pour l'appel de     */
/* cette procedure. En cas de parametres non definis, le champ            */
/* nb_parametres contiendra -N, ou N est le nombre de parametres minimun. */

typedef struct Actions_messages{
    char *source;
    char *type_message;
    int nb_parametres;
    void (*action)();
} actions_messages;

extern void init_messages();
extern char *identificateur_appli();
extern void scanner_messages();
extern Message attendre_message();
extern void ecrire_trame();
extern char *lire_trame();

#endif