0024835: Graphic structure for highlighting is not erased if presentable object for...
[occt.git] / src / IncludeLibrary / IncludeLibrary_comand.h
CommitLineData
b311480e 1/*
2 Copyright (c) 1998-1999 Matra Datavision
973c2be1 3 Copyright (c) 1999-2014 OPEN CASCADE SAS
b311480e 4
973c2be1 5 This file is part of Open CASCADE Technology software library.
b311480e 6
d5f74e42 7 This library is free software; you can redistribute it and/or modify it under
8 the terms of the GNU Lesser General Public License version 2.1 as published
973c2be1 9 by the Free Software Foundation, with special exception defined in the file
10 OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11 distribution for complete text of the license and disclaimer of any warranty.
b311480e 12
973c2be1 13 Alternatively, this file may be used under the terms of Open CASCADE
14 commercial license or contractual agreement.
b311480e 15*/
16
7fd59977 17#ifndef __INCLUDE_LIBRARY_COMAND_H
18# define __INCLUDE_LIBRARY_COMAND_H
19 /* comand.h */
20
21#define BUFFER_SIZE BUF_CMD_SIZ_BYT
22 /* Taille des buffers input/output pour les */
23 /* messages. */
24
25#define SIZE_CMD_BUFF BUFFER_SIZE - 7 * sizeof(short)
26
27
28/*------------------------ Macro definitions -------------------------------*/
29/*---------- Pour entetes buffers commande et application ------------------*/
30
31
32#define GETSEQ_HDR(H) (0x03030303 & (H))
33#define GETLGR_HDR(H) ((H) >> 2 & 0x3f | (H) >> 4 & 0xfc0)
34#define GETNARG_HDR(H) GETLGR_HDR(H)
35#define GETLVL_HDR(H) ((H) >> 18 & 0x3f | (H) >> 20 & 0xfc0)
36#define MAKE_HDR(S,LVL,X) ((S) \
37 | (X) << 2 & 0xfc | (X) << 4 & 0xfc00 \
38 | (LVL) << 18 & 0xfc0000 | (LVL) << 20 & 0xfc000000)
39
40
41 /* Format des requetes/reponses, longueurs structures et codes */
42
43 /* Codes des commandes serveur : */
44
45#define COD_CMD_CTL -6
46 /* SRVCTL */
47#define COD_CMD_CNX -5
48 /* SRVCNX */
49#define COD_CMD_EXI -4
50 /* SRVEXI */
51#define COD_CMD_ASS -3
52 /* SRVASS */
53#define COD_CMD_ASN -2
54 /* SRVASN */
55#define COD_CMD_DEA -1
56 /* SRVDEA */
57#define COD_CMD_DAS 0
58 /* SRVDAS */
59
60 /* Les codes des fonctions service applicatif */
61 /* vont de 1 a n (n dependant du service */
62 /* applicatif). */
63
64 /* Codes des fonctions de service (srvctl) */
65#define COD_CTL_PRT 0 /* Sortie de la sd du serveur */
66#define COD_CTL_RESTART 1 /* Arret et Restart du serveur */
67#define COD_CTL_ACT_RESTART 2 /* Arret et Restart du serveur s'il est actif
68 (k_func a TRUE) */
69#define COD_CTL_STOP 3 /* Arret du serveur (non fait) */
70#define COD_CTL_CPU 4 /* Rend le type de CPU du serveur */
71#define COD_CTL_ERRMSG 5 /* Rend le message d'erreur <--> status */
72#define COD_CTL_DYNLOAD 6 /* Requete de chargement dynamique d'un
73 partageable */
74#define COD_CTL_STARTLOAD 7 /* Comme COD_CTL_DYNLOAD + Start_only ou
75 multi-connection dans le process fils cree
76 par Serpc */
77#define COD_CTL_ETHADR 8 /* Permet de recuperer l'adresse Ethernet ou
78 le systeme identification */
79#define COD_CTL_DYNNOLOAD 9 /* Requete de chargement dynamique d'un
80 partageable */
81#define COD_CTL_STARTNOLOAD 10 /* Comme COD_CTL_DYNLOAD + Start_only ou
82 multi-connection dans le process fils cree
83 par Serpc */
84
85 /* Struct entete buffer application.
86 Commence sur le 2eme long du buffer de commande. */
87typedef struct _buf_acp BUF_ACP, *PBUF_ACP ;
88struct _buf_acp {
89 unsigned int level ;
90 int func ;
91 unsigned int narg ;
92 unsigned int arg[1] ;
93} ;
94
95typedef struct _cmd_buff CMD_BUFF, *PCMD_BUFF ;
96struct _cmd_buff {
97 /* CMD_BUFF_OFF */
98 /* CMD_ARG_OFF = CMD_BUFF_OFF/4 */
99 /* Buffer commande/fonction SIZE_CMD_BUFF octets */
100 /* Buffer des arguments user */
101
102 /* SRVCNX/SRVASS : */
103 /* ACSRV --> SERVER : Node/Taskname Destinataire */
104 /* SERVR --> SERVER : Node/taskname Origine */
105 int siz_nod ; /* SIZ_NOD_OFF 12 */
106 /* Longueur node destinataire 4 octets */
107 char nam_nod[16] ; /* NAM_NOD_OFF 16 */
108 /* Nom node destinataire 16 octets */
109 int siz_tsk ; /* SIZ_TSK_OFF 32 */
110 /* Longueur task destinatrice 4 octets */
111 char nam_tsk[16] ; /* NAM_TSK_OFF 36 */
112 /* Nom task destinatrice 16 octets */
113 /* Node/Username/Pid Client : */
114 int siz_nod_org ; /* SIZ_NOD_ORG_OFF 52 */
115 /* Longueur node origine 4 octets */
116 char nam_nod_org[16] ; /* NAM_NOD_ORG_OFF 56 */
117 /* Nom node origine 16 octets */
118 int siz_usr_org ; /* SIZ_USR_ORG_OFF 72 */
119 /* Longueur Username origine 4 octets */
120 char nam_usr_org[16] ; /* NAM_USR_ORG_OFF 76 */
121 /* Username origine 16 octets */
122 int siz_pid_org ; /* SIZ_PID_ORG_OFF 92 */
123 /* 4 octets */
124 int val_pid_org ; /* VAL_PID_ORG_OFF 96 */
125 int val_pid_org_ext ;
126 /* Process identification PID 8 octets */
127 /* ACSRV --> SERVER : Protocole utilise (CNX) */
128 /* SERVR --> SERVER : Protocole a utiliser(ASS) */
129
130 int siz_ptc ; /* SIZ_PTC_OFF 104 */
131 /* 4 octets */
132 int val_ptc ; /* VAL_PTC_OFF 108 */
133 /* Protocole (DECNET/TCP-IP) 4 octets */
134
135 char dummy[SIZE_CMD_BUFF - 100] ;
136 /* zone remplissage jusqu a SIZE_CMD_BUFF */
137} ;
138
139typedef struct _buf BUF, *PBUF ;
140struct _buf {
141
142 unsigned int lg_buff ; /* LG_BUFF_OFF 0 */
143 /* Longueur commande/reponse 4 octets */
144 /* LVL_OFF2 2 */
145 /* Level (apres la longueur ! ...) */
146 short lnkdest ; /* LNKDEST_OFF 4 */
147 /* Lnk destinataire 2 octets */
148 short lnkorg ; /* LNKORG_OFF 6 */
149 /* Lnk origine 2 octets */
150 short func ; /* FUNC_OFF 8 */
151 /* Index/numero de fonction 2 octets */
152 short numcmd ; /* NUMCMD_OFF 10 */
153 /* Numero de commande 2 octets */
154 CMD_BUFF cmd_buf ;
155
156} ;
157
158typedef struct _buf_rsp BUF_RSP, *PBUF_RSP ;
159struct _buf_rsp {
160
161 unsigned int lg_buff ; /* LG_BUFF_OFF 0 %%%% */
162 /* Longueur commande/reponse 4 octets */
163 /* LVL_OFF 0 reference dans READ_CHAN */
164 /* Level (apres la longueur ! ...) */
165 /* LVL_OFF2 2 */
166 /* Level (apres la longueur ! ...) */
167 short lnkdest ; /* LNKDEST_OFF 4 */
168 /* Lnk destinataire 2 octets */
169 short lnkorg ; /* LNKORG_OFF 6 */
170 /* Lnk origine 2 octets */
171 short func ; /* FUNC_OFF 8 */
172 /* Index/numero de fonction 2 octets */
173 short numcmd ; /* NUMCMD_OFF 10 */
174 /* Numero de commande 2 octets */
175 STATUS status ; /* STATUS_OFF 12 */
176 /* Status 8 octets */
177 unsigned int rsp_buff[(BUFFER_SIZE - 20) / 4] ;
178 /* RSP_BUFF_OFF 20 */
179 /* Buffer reponse Fonctions ? octets */
180} ;
181
182
183 /* Longueurs des commandes serveur : */
184#define LG_CMD_SRV 12
185 /* Longueur entete des commandes/fonctions */
186#define LG_CMD_CNX 112
187 /* Longueur commande SRVCNX */
188#define LG_CMD_ASS 112
189 /* Longueur commande SRVASS */
190#define LG_CMD_DEA 12
191 /* Longueur commande SRVDEA */
192#define LG_CMD_EXI 12
193 /* Longueur commande SRVEXI */
194#define LG_CMD_CTL 20
195 /* Longueur commande SRVCTL sans argument */
196
197 /* Longueurs des reponses serveur : */
198#define LG_RSP_SRV 20
199 /* Longueur minimum reponse (avec status) */
200#define LG_RSP_CNX 20
201 /* Longueur reponse SRVCNX */
202#define LG_RSP_ASS 20
203 /* Longueur reponse SRVASS */
204#define LG_RSP_DEA 20
205 /* Longueur reponse SRVDEA */
206#define LG_RSP_EXI 20
207 /* Longueur reponse SRVEXI */
208#define LG_RSP_CTL 20
209 /* Longueur reponse SRVCTL */
210
211 /* Longueur des arguments des commandes : */
212#define LG_NOD 16
213 /* Nodes names */
214#define HOSTNAMELEN 256
215 /* Nodes names (AccesServer-Unix-Domains) */
216#define LG_TSK 80
217 /* Tasknames */
218#define LG_USR 16
219 /* Usernames */
220#define LG_PID 8
221 /* PID Process Identification */
222#define LG_PID_DEC 4
223 /* 4 octets de PID sur VAX/VMS */
224#define LG_PTC 4
225 /* Type de protocole (DECNET/TCP-IP) */
226
227#define LVL_VAL0 0x1
228 /* Level des requetes ACSRV/serveur Macro */
229#define LVL_VAL 0x2
230 /* Level des requetes ACSRV "C" */
231 /* Le serveur Macro sans NTD refuse ce level 1*/
232 /* Le serveur Macro+NTD accepte ces 2 levels*/
233 /* Le serveur C accepte ces 2 levels */
234 /* ACSRV "C" refuse le level 0 */
235#define LVL_WRT_VAL 0x3
236 /* Level reponses serveurs Macro+NTD et C */
237 /* Type de format des requetes pour serveur */
238 /* Valeurs reelles des levels precedents */
239 /* cadres a droite */
240#define SEQ_BYT_VAL 0x03020100
241 /* Ordre des octets (VAX) */
242#define MSK_SEQ_BYT 0x03030303
243 /* Masque pour ordre des octets */
244#define MSK_SEQ_BYT_VAL 0xFCFCFCFC
245 /* Complement masque pour ordre des octets */
246/*
247; LVL : Protocol level entre Client/Serveur et Serveur/Serveur
248; SEQ : Sequence des octets : pour tout ce qui n'est pas commande/reponse
249; (Longueur, Level, Lnkdest, Lnkorg, Cmd/Func,
250; Numcmd et Status pour la reponse)
251
252; ARG : Nombre d'arguments du buffer de commande. Il comporte aussi la
253; sequence des octets du buffer de commande qui peut etre differente
254; de celle des informations acces_serveur/serveur. Et enfin il comporte
255; le niveau de protocole applicatif (Structure des commandes/reponses
256; et type de dialogue application/service applicatif).
257; Actuellement, dans la protection, chaque valeur d'argument est
258; precedee de son type et de sa longueur et le type de protocole
259; applicatif est nul.
260
261; La reponse generee par le service applicatif doit suivre l'ordre des
262; octets de l'application cliente (cet ordre etant connu du service
263; applicatif dans la commande). La reponse ne comporte donc pas d'ordre
264; des octets. Si le type de protocole applicatif n'est pas compatible
265; avec le service applicatif, ce dernier rend un status. Sinon, il
266; traite la commande et fournit une reponse. Il n'y a donc pas dans la
267; reponse de type de protocole. Actuellement, dans la protection, la
268; reponse est constituee uniquement des valeurs sans nombre d'arguments.
269; Il serait souhaitable qu'elle comporte nombre d'arguments et
270; type/longueur de chaque argument avant sa valeur comme dans les
271; commandes.
272*/
273
274#endif /* __INCLUDE_LIBRARY_COMAND_H */