Commit d3f8fbdd60d55423cc5513fe5d480482a98a688f
1 parent
071bacad
Exists in
master
and in
5 other branches
Ajustando biblioteca para compilar na versão 5
Showing
2 changed files
with
754 additions
and
0 deletions
Show diff stats
@@ -0,0 +1,543 @@ | @@ -0,0 +1,543 @@ | ||
1 | +/* | ||
2 | + * "Software G3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | ||
3 | + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | ||
4 | + * aplicativos mainframe. Registro no INPI sob o nome G3270. | ||
5 | + * | ||
6 | + * Copyright (C) <2008> <Banco do Brasil S.A.> | ||
7 | + * | ||
8 | + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | ||
9 | + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | ||
10 | + * Free Software Foundation. | ||
11 | + * | ||
12 | + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | ||
13 | + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | ||
14 | + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | ||
15 | + * obter mais detalhes. | ||
16 | + * | ||
17 | + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | ||
18 | + * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple | ||
19 | + * Place, Suite 330, Boston, MA, 02111-1307, USA | ||
20 | + * | ||
21 | + * Este programa está nomeado como lib3270.h e possui 38 linhas de código. | ||
22 | + * | ||
23 | + * Contatos: | ||
24 | + * | ||
25 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | + * erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça) | ||
27 | + * licinio@bb.com.br (Licínio Luis Branco) | ||
28 | + * kraucer@bb.com.br (Kraucer Fernandes Mazuco) | ||
29 | + * macmiranda@bb.com.br (Marco Aurélio Caldas Miranda) | ||
30 | + * | ||
31 | + */ | ||
32 | + | ||
33 | +#ifndef LIB3270_H_INCLUDED | ||
34 | + | ||
35 | + #define LIB3270_H_INCLUDED 1 | ||
36 | + | ||
37 | + /** | ||
38 | + * Character attributes | ||
39 | + */ | ||
40 | + typedef enum _lib3270_attr | ||
41 | + { | ||
42 | + LIB3270_ATTR_COLOR_BACKGROUND = 0x0000, | ||
43 | + | ||
44 | + LIB3270_ATTR_COLOR_BLUE = 0x0001, | ||
45 | + LIB3270_ATTR_COLOR_RED = 0x0002, | ||
46 | + LIB3270_ATTR_COLOR_PINK = 0x0003, | ||
47 | + LIB3270_ATTR_COLOR_GREEN = 0x0004, | ||
48 | + LIB3270_ATTR_COLOR_TURQUOISE = 0x0005, | ||
49 | + LIB3270_ATTR_COLOR_YELLOW = 0x0006, | ||
50 | + LIB3270_ATTR_COLOR_WHITE = 0x0007, | ||
51 | + LIB3270_ATTR_COLOR_BLACK = 0x0008, | ||
52 | + LIB3270_ATTR_COLOR_DARK_BLUE = 0x0009, | ||
53 | + LIB3270_ATTR_COLOR_ORANGE = 0x000A, | ||
54 | + LIB3270_ATTR_COLOR_PURPLE = 0x000B, | ||
55 | + LIB3270_ATTR_COLOR_DARK_GREEN = 0x000C, | ||
56 | + LIB3270_ATTR_COLOR_DARK_TURQUOISE = 0x000D, | ||
57 | + LIB3270_ATTR_COLOR_MUSTARD = 0x000E, | ||
58 | + LIB3270_ATTR_COLOR_GRAY = 0x000F, | ||
59 | + | ||
60 | + LIB3270_ATTR_COLOR = 0x00FF, | ||
61 | + | ||
62 | + LIB3270_ATTR_FIELD = 0x0100, | ||
63 | + LIB3270_ATTR_BLINK = 0x0200, | ||
64 | + LIB3270_ATTR_UNDERLINE = 0x0400, | ||
65 | + LIB3270_ATTR_INTENSIFY = 0x0800, | ||
66 | + | ||
67 | + LIB3270_ATTR_CG = 0x1000, | ||
68 | + LIB3270_ATTR_MARKER = 0x2000, | ||
69 | + LIB3270_ATTR_BACKGROUND_INTENSITY = 0x4000, | ||
70 | + | ||
71 | + } LIB3270_ATTR; | ||
72 | + | ||
73 | + typedef enum _lib3270_toggle | ||
74 | + { | ||
75 | + LIB3270_TOGGLE_MONOCASE, | ||
76 | + LIB3270_TOGGLE_ALT_CURSOR, | ||
77 | + LIB3270_TOGGLE_CURSOR_BLINK, | ||
78 | + LIB3270_TOGGLE_SHOW_TIMING, | ||
79 | + LIB3270_TOGGLE_CURSOR_POS, | ||
80 | + LIB3270_TOGGLE_DS_TRACE, | ||
81 | + LIB3270_TOGGLE_SCROLL_BAR, | ||
82 | + LIB3270_TOGGLE_LINE_WRAP, | ||
83 | + LIB3270_TOGGLE_BLANK_FILL, | ||
84 | + LIB3270_TOGGLE_SCREEN_TRACE, | ||
85 | + LIB3270_TOGGLE_EVENT_TRACE, | ||
86 | + LIB3270_TOGGLE_MARGINED_PASTE, | ||
87 | + LIB3270_TOGGLE_RECTANGLE_SELECT, | ||
88 | + LIB3270_TOGGLE_CROSSHAIR, | ||
89 | + LIB3270_TOGGLE_VISIBLE_CONTROL, | ||
90 | + LIB3270_TOGGLE_AID_WAIT, | ||
91 | + LIB3270_TOGGLE_FULL_SCREEN, | ||
92 | + LIB3270_TOGGLE_RECONNECT, | ||
93 | + LIB3270_TOGGLE_INSERT, | ||
94 | + LIB3270_TOGGLE_KEYPAD, | ||
95 | + LIB3270_TOGGLE_SMART_PASTE, | ||
96 | + | ||
97 | + LIB3270_TOGGLE_COUNT | ||
98 | + | ||
99 | + } LIB3270_TOGGLE; | ||
100 | + | ||
101 | + | ||
102 | + /** | ||
103 | + * Toggle types. | ||
104 | + * | ||
105 | + */ | ||
106 | + typedef enum _LIB3270_TOGGLE_TYPE | ||
107 | + { | ||
108 | + LIB3270_TOGGLE_TYPE_INITIAL, | ||
109 | + LIB3270_TOGGLE_TYPE_INTERACTIVE, | ||
110 | + LIB3270_TOGGLE_TYPE_ACTION, | ||
111 | + LIB3270_TOGGLE_TYPE_FINAL, | ||
112 | + LIB3270_TOGGLE_TYPE_UPDATE, | ||
113 | + | ||
114 | + LIB3270_TOGGLE_TYPE_USER | ||
115 | + | ||
116 | + } LIB3270_TOGGLE_TYPE; | ||
117 | + | ||
118 | + | ||
119 | + /** | ||
120 | + * OIA Status indicators. | ||
121 | + * | ||
122 | + */ | ||
123 | + typedef enum _lib3270_flag | ||
124 | + { | ||
125 | + LIB3270_FLAG_BOXSOLID, /**< System available */ | ||
126 | + LIB3270_FLAG_UNDERA, /**< Control Unit STATUS */ | ||
127 | + LIB3270_FLAG_SECURE, /**< Security status */ | ||
128 | + LIB3270_FLAG_TYPEAHEAD, | ||
129 | + LIB3270_FLAG_PRINTER, | ||
130 | + LIB3270_FLAG_REVERSE, | ||
131 | + LIB3270_FLAG_SCRIPT, | ||
132 | + | ||
133 | + LIB3270_FLAG_COUNT | ||
134 | + | ||
135 | + } LIB3270_FLAG; | ||
136 | + | ||
137 | + | ||
138 | + /** | ||
139 | + * 3270 program messages. | ||
140 | + * | ||
141 | + */ | ||
142 | + typedef enum _LIB3270_MESSAGE | ||
143 | + { | ||
144 | + LIB3270_MESSAGE_NONE, /**< No message */ | ||
145 | + LIB3270_MESSAGE_SYSWAIT, | ||
146 | + LIB3270_MESSAGE_TWAIT, | ||
147 | + LIB3270_MESSAGE_CONNECTED, | ||
148 | + LIB3270_MESSAGE_DISCONNECTED, /**< Disconnected from host */ | ||
149 | + LIB3270_MESSAGE_AWAITING_FIRST, | ||
150 | + LIB3270_MESSAGE_MINUS, | ||
151 | + LIB3270_MESSAGE_PROTECTED, | ||
152 | + LIB3270_MESSAGE_NUMERIC, | ||
153 | + LIB3270_MESSAGE_OVERFLOW, | ||
154 | + LIB3270_MESSAGE_INHIBIT, | ||
155 | + LIB3270_MESSAGE_KYBDLOCK, | ||
156 | + | ||
157 | + LIB3270_MESSAGE_X, | ||
158 | + LIB3270_MESSAGE_RESOLVING, /**< Resolving hostname (running DNS query) */ | ||
159 | + LIB3270_MESSAGE_CONNECTING, /**< Connecting to host */ | ||
160 | + | ||
161 | + LIB3270_MESSAGE_USER | ||
162 | + | ||
163 | + } LIB3270_MESSAGE; | ||
164 | + | ||
165 | + | ||
166 | + /** | ||
167 | + * Cursor modes. | ||
168 | + * | ||
169 | + * Cursor modes set by library; an application can us it | ||
170 | + * as a hint to change the mouse cursor based on connection status. | ||
171 | + * | ||
172 | + */ | ||
173 | + typedef enum _LIB3270_CURSOR | ||
174 | + { | ||
175 | + LIB3270_CURSOR_NORMAL, /**< Ready for user actions */ | ||
176 | + LIB3270_CURSOR_WAITING, /**< Waiting for host */ | ||
177 | + LIB3270_CURSOR_LOCKED, /**< Locked, can't receive user actions */ | ||
178 | + | ||
179 | + LIB3270_CURSOR_USER | ||
180 | + } LIB3270_CURSOR; | ||
181 | + | ||
182 | + | ||
183 | + /** | ||
184 | + * connection state | ||
185 | + */ | ||
186 | + typedef enum lib3270_cstate | ||
187 | + { | ||
188 | + LIB3270_NOT_CONNECTED, /**< no socket, disconnected */ | ||
189 | + LIB3270_RESOLVING, /**< resolving hostname */ | ||
190 | + LIB3270_PENDING, /**< connection pending */ | ||
191 | + LIB3270_CONNECTED_INITIAL, /**< connected, no mode yet */ | ||
192 | + LIB3270_CONNECTED_ANSI, /**< connected in NVT ANSI mode */ | ||
193 | + LIB3270_CONNECTED_3270, /**< connected in old-style 3270 mode */ | ||
194 | + LIB3270_CONNECTED_INITIAL_E, /**< connected in TN3270E mode, unnegotiated */ | ||
195 | + LIB3270_CONNECTED_NVT, /**< connected in TN3270E mode, NVT mode */ | ||
196 | + LIB3270_CONNECTED_SSCP, /**< connected in TN3270E mode, SSCP-LU mode */ | ||
197 | + LIB3270_CONNECTED_TN3270E /**< connected in TN3270E mode, 3270 mode */ | ||
198 | + } LIB3270_CSTATE; | ||
199 | + | ||
200 | +// #include <lib3270/api.h> | ||
201 | + | ||
202 | +#ifdef __cplusplus | ||
203 | + extern "C" { | ||
204 | +#endif | ||
205 | + | ||
206 | + #include <lib3270/config.h> | ||
207 | + | ||
208 | + #if defined(_WIN32) | ||
209 | + | ||
210 | + #include <windows.h> | ||
211 | + #define LIB3270_EXPORT __declspec (dllexport) | ||
212 | + | ||
213 | + #elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550) | ||
214 | + | ||
215 | + #define LIB3270_EXPORT | ||
216 | + | ||
217 | + #elif defined (HAVE_GNUC_VISIBILITY) | ||
218 | + | ||
219 | + #define LIB3270_EXPORT __attribute__((visibility("default"))) extern | ||
220 | + | ||
221 | + #else | ||
222 | + #define LIB3270_EXPORT | ||
223 | + | ||
224 | + #endif | ||
225 | + | ||
226 | + /* State change IDs. */ | ||
227 | + typedef enum _lib3270_state | ||
228 | + { | ||
229 | + LIB3270_STATE_RESOLVING, | ||
230 | + LIB3270_STATE_HALF_CONNECT, | ||
231 | + LIB3270_STATE_CONNECT, | ||
232 | + LIB3270_STATE_3270_MODE, | ||
233 | + LIB3270_STATE_LINE_MODE, | ||
234 | + LIB3270_STATE_REMODEL, | ||
235 | + LIB3270_STATE_PRINTER, | ||
236 | + LIB3270_STATE_EXITING, | ||
237 | + LIB3270_STATE_CHARSET, | ||
238 | + | ||
239 | + LIB3270_STATE_USER // Always the last one | ||
240 | + } LIB3270_STATE; | ||
241 | + | ||
242 | + typedef struct _h3270 H3270; | ||
243 | + | ||
244 | + /** | ||
245 | + * Get current screen size. | ||
246 | + * | ||
247 | + * Get the size of the terminal in rows/cols; this value can differ from | ||
248 | + * the model if there's an active "altscreen" with diferent size. | ||
249 | + * | ||
250 | + * @param h Handle of the desired session. | ||
251 | + * @param r Pointer to screen rows. | ||
252 | + * @param c Pointer to screen columns. | ||
253 | + * | ||
254 | + */ | ||
255 | + LIB3270_EXPORT void lib3270_get_screen_size(H3270 *h, int *r, int *c); | ||
256 | + | ||
257 | + /** | ||
258 | + * Start a new session (INCOMPLETE). | ||
259 | + * | ||
260 | + * Initialize session structure, opens a new session. | ||
261 | + * WARNING: Multi session ins't yet supported in lib3270, because of this | ||
262 | + * this call always return the handle of the same session. | ||
263 | + * | ||
264 | + * @param model Terminal model. | ||
265 | + * | ||
266 | + * @return lib3270 internal session structure. | ||
267 | + * | ||
268 | + */ | ||
269 | + LIB3270_EXPORT H3270 * lib3270_session_new(const char *model); | ||
270 | + | ||
271 | + /** | ||
272 | + * Destroy session, release memory. | ||
273 | + * | ||
274 | + * @param h Session handle. | ||
275 | + * | ||
276 | + */ | ||
277 | + LIB3270_EXPORT void lib3270_session_free(H3270 *h); | ||
278 | + | ||
279 | + /** | ||
280 | + * Register a state change callback. | ||
281 | + * | ||
282 | + * @param h Session handle. | ||
283 | + * @param tx State ID | ||
284 | + * @param func Callback | ||
285 | + * @param data Data | ||
286 | + * | ||
287 | + */ | ||
288 | + LIB3270_EXPORT void lib3270_register_schange(H3270 *h,LIB3270_STATE tx, void (*func)(H3270 *, int, void *),void *data); | ||
289 | + | ||
290 | + /** | ||
291 | + * Register a toggle change callback. | ||
292 | + * | ||
293 | + * @param h Session handle. | ||
294 | + * @param ix Toggle id | ||
295 | + * @param func Function to call when toggle changes. | ||
296 | + * | ||
297 | + * @return 0 if ok, EINVAL if the toggle id is invalid. | ||
298 | + */ | ||
299 | + LIB3270_EXPORT int lib3270_register_tchange(H3270 *h, LIB3270_TOGGLE ix, void (*func)(H3270 *h, int, LIB3270_TOGGLE_TYPE reason)); | ||
300 | + | ||
301 | + /** | ||
302 | + * Network connect operation, keep main loop running | ||
303 | + * | ||
304 | + * Sets 'reconnect_host', 'current_host' and 'full_current_host' as | ||
305 | + * side-effects. | ||
306 | + * | ||
307 | + * @param h Session handle. | ||
308 | + * @param n Host ID | ||
309 | + * @param wait Non zero to wait for connection to be ok. | ||
310 | + * | ||
311 | + * @return 0 for success, EAGAIN if auto-reconnect is in progress, EBUSY if connected, ENOTCONN if connection has failed, -1 on unexpected failure. | ||
312 | + * | ||
313 | + */ | ||
314 | + LIB3270_EXPORT int lib3270_connect(H3270 *h,const char *n, int wait); | ||
315 | + | ||
316 | + /** | ||
317 | + * Disconnect from host. | ||
318 | + * | ||
319 | + * @param h Session handle. | ||
320 | + * | ||
321 | + */ | ||
322 | + LIB3270_EXPORT void lib3270_disconnect(H3270 *h); | ||
323 | + | ||
324 | + /** | ||
325 | + * Reconnect. | ||
326 | + * | ||
327 | + * @param h Session handle. | ||
328 | + * @param wait Non zero to wait for connection to be ok. | ||
329 | + */ | ||
330 | + LIB3270_EXPORT int lib3270_reconnect(H3270 *h,int wait); | ||
331 | + | ||
332 | + /** | ||
333 | + * Get connection state. | ||
334 | + * | ||
335 | + * @param h Session handle. | ||
336 | + * | ||
337 | + * @return Connection state. | ||
338 | + * | ||
339 | + */ | ||
340 | + LIB3270_EXPORT LIB3270_CSTATE lib3270_get_connection_state(H3270 *h); | ||
341 | + | ||
342 | + /** | ||
343 | + * Pretend that a sequence of keys was entered at the keyboard. | ||
344 | + * | ||
345 | + * "Pasting" means that the sequence came from the clipboard. Returns are | ||
346 | + * ignored; newlines mean "move to beginning of next line"; tabs and formfeeds | ||
347 | + * become spaces. Backslashes are not special, but ASCII ESC characters are | ||
348 | + * used to signify 3270 Graphic Escapes. | ||
349 | + * | ||
350 | + * "Not pasting" means that the sequence is a login string specified in the | ||
351 | + * hosts file, or a parameter to the String action. Returns are "move to | ||
352 | + * beginning of next line"; newlines mean "Enter AID" and the termination of | ||
353 | + * processing the string. Backslashes are processed as in C. | ||
354 | + * | ||
355 | + * @param s String to input. | ||
356 | + * @param len Size of the string (or -1 to null terminated strings) | ||
357 | + * @param pasting Non zero for pasting (See comments). | ||
358 | + * | ||
359 | + * @return The number of unprocessed characters. | ||
360 | + */ | ||
361 | + LIB3270_EXPORT int lib3270_emulate_input(H3270 *session, char *s, int len, int pasting); | ||
362 | + | ||
363 | + /** | ||
364 | + * Set string at current cursor position. | ||
365 | + * | ||
366 | + * Returns are ignored; newlines mean "move to beginning of next line"; | ||
367 | + * tabs and formfeeds become spaces. Backslashes are not special | ||
368 | + * | ||
369 | + * @param h Session handle. | ||
370 | + * @param s String to input. | ||
371 | + * | ||
372 | + * @return Negative if error or number of processed characters. | ||
373 | + * | ||
374 | + */ | ||
375 | + LIB3270_EXPORT int lib3270_set_string(H3270 *h, const unsigned char *str); | ||
376 | + | ||
377 | + /** | ||
378 | + * Set cursor address. | ||
379 | + * | ||
380 | + * @param h Session handle. | ||
381 | + * @param baddr New cursor address. | ||
382 | + * | ||
383 | + * @return last cursor address. | ||
384 | + * | ||
385 | + */ | ||
386 | + LIB3270_EXPORT int lib3270_set_cursor_address(H3270 *h, int baddr); | ||
387 | + | ||
388 | + /** | ||
389 | + * get cursor address. | ||
390 | + * | ||
391 | + * @param h Session handle. | ||
392 | + * | ||
393 | + * @return Cursor address. | ||
394 | + * | ||
395 | + */ | ||
396 | + LIB3270_EXPORT int lib3270_get_cursor_address(H3270 *h); | ||
397 | + | ||
398 | + /** | ||
399 | + * Get buffer contents. | ||
400 | + * | ||
401 | + * @param h Session handle. | ||
402 | + * @param first First element to get. | ||
403 | + * @param last Last element to get. | ||
404 | + * @param chr Pointer to buffer which will receive the read chars. | ||
405 | + * @param attr Pointer to buffer which will receive the chars attributes. | ||
406 | + * | ||
407 | + */ | ||
408 | + LIB3270_EXPORT int lib3270_get_contents(H3270 *h, int first, int last, unsigned char *chr, unsigned short *attr); | ||
409 | + | ||
410 | + /** | ||
411 | + * get toggle state. | ||
412 | + * | ||
413 | + * @param h Session handle. | ||
414 | + * @param ix Toggle id. | ||
415 | + * | ||
416 | + * @return 0 if the toggle is disabled, non zero if enabled. | ||
417 | + * | ||
418 | + */ | ||
419 | + LIB3270_EXPORT unsigned char lib3270_get_toggle(H3270 *h, LIB3270_TOGGLE ix); | ||
420 | + | ||
421 | + /** | ||
422 | + * Set toggle state. | ||
423 | + * | ||
424 | + * @param h Session handle. | ||
425 | + * @param ix Toggle id. | ||
426 | + * @param value New toggle state (non zero for true). | ||
427 | + * | ||
428 | + * @return 0 if the toggle wasn't changed, non zero if it was changed. | ||
429 | + * | ||
430 | + */ | ||
431 | + LIB3270_EXPORT int lib3270_set_toggle(H3270 *h, LIB3270_TOGGLE ix, int value); | ||
432 | + | ||
433 | + /** | ||
434 | + * Translate a string toggle name to the corresponding value. | ||
435 | + * | ||
436 | + * @param name Toggle name. | ||
437 | + * | ||
438 | + * @return Toggle ID or -1 if it's invalid. | ||
439 | + * | ||
440 | + */ | ||
441 | + LIB3270_EXPORT LIB3270_TOGGLE lib3270_get_toggle_id(const char *name); | ||
442 | + | ||
443 | + /** | ||
444 | + * Get the toggle name as string. | ||
445 | + * | ||
446 | + * @param id Toggle id | ||
447 | + * | ||
448 | + * @return Constant string with the toggle name or "" if invalid. | ||
449 | + * | ||
450 | + */ | ||
451 | + LIB3270_EXPORT const char * lib3270_get_toggle_name(LIB3270_TOGGLE ix); | ||
452 | + | ||
453 | + /** | ||
454 | + * Revert toggle status. | ||
455 | + * | ||
456 | + * @param h Session handle. | ||
457 | + * @param ix Toggle id. | ||
458 | + * | ||
459 | + * @return 0 if the toggle was changed, errno code if not. | ||
460 | + */ | ||
461 | + LIB3270_EXPORT int lib3270_toggle(H3270 *h, LIB3270_TOGGLE ix); | ||
462 | + | ||
463 | + /** | ||
464 | + * Check if the active connection is secure. | ||
465 | + * | ||
466 | + * @param h Session handle. | ||
467 | + * | ||
468 | + * @return Non 0 if the connection is SSL secured, 0 if not. | ||
469 | + */ | ||
470 | + LIB3270_EXPORT int lib3270_get_ssl_state(H3270 *h); | ||
471 | + | ||
472 | + /** | ||
473 | + * Register application I/O Handlers. | ||
474 | + * | ||
475 | + * @param cbk Structure with the application I/O handles to set. | ||
476 | + * | ||
477 | + * @return 0 if ok, error code if not. | ||
478 | + * | ||
479 | + */ | ||
480 | + int LIB3270_EXPORT lib3270_register_io_handlers(const struct lib3270_io_callbacks *cbk); | ||
481 | + | ||
482 | + | ||
483 | + /** | ||
484 | + * Get program message. | ||
485 | + * | ||
486 | + * @see LIB3270_MESSAGE | ||
487 | + * | ||
488 | + * @param h Session handle. | ||
489 | + * | ||
490 | + * @return Latest program message. | ||
491 | + * | ||
492 | + */ | ||
493 | + LIB3270_EXPORT LIB3270_MESSAGE lib3270_get_program_message(H3270 *h); | ||
494 | + | ||
495 | + /** | ||
496 | + * Get connected LU name. | ||
497 | + * | ||
498 | + * Get the name of the connected LU; the value is internal to lib3270 and | ||
499 | + * should not be changed ou freed. | ||
500 | + * | ||
501 | + * @param h Session handle. | ||
502 | + * | ||
503 | + * @return conected LU name or NULL if not connected. | ||
504 | + * | ||
505 | + */ | ||
506 | + LIB3270_EXPORT const char * lib3270_get_luname(H3270 *h); | ||
507 | + | ||
508 | + LIB3270_EXPORT const char * lib3270_get_host(H3270 *h); | ||
509 | + | ||
510 | + #define lib3270_has_printer_session(h) (h->oia_flag[LIB3270_FLAG_PRINTER] != 0) | ||
511 | + #define lib3270_has_active_script(h) (h->oia_flag[LIB3270_FLAG_SCRIPT] != 0) | ||
512 | + #define lib3270_get_typeahead(h) (h->oia_flag[LIB3270_FLAG_TYPEAHEAD] != 0) | ||
513 | + #define lib3270_get_undera(h) (h->oia_flag[LIB3270_FLAG_UNDERA] != 0) | ||
514 | + #define lib3270_get_oia_box_solid(h) (h->oia_flag[LIB3270_FLAG_BOXSOLID] != 0) | ||
515 | + | ||
516 | + LIB3270_EXPORT int lib3270_pconnected(H3270 *h); | ||
517 | + LIB3270_EXPORT int lib3270_half_connected(H3270 *h); | ||
518 | + LIB3270_EXPORT int lib3270_connected(H3270 *h); | ||
519 | + LIB3270_EXPORT int lib3270_in_neither(H3270 *h); | ||
520 | + LIB3270_EXPORT int lib3270_in_ansi(H3270 *h); | ||
521 | + LIB3270_EXPORT int lib3270_in_3270(H3270 *h); | ||
522 | + LIB3270_EXPORT int lib3270_in_sscp(H3270 *h); | ||
523 | + LIB3270_EXPORT int lib3270_in_tn3270e(H3270 *h); | ||
524 | + LIB3270_EXPORT int lib3270_in_e(H3270 *h); | ||
525 | + | ||
526 | + /** | ||
527 | + * Call non gui function. | ||
528 | + * | ||
529 | + * Call informed function in a separate thread, keep gui main loop running until | ||
530 | + * the function returns. | ||
531 | + * | ||
532 | + * @param callback Function to call. | ||
533 | + * @param h Related session (for timer indicator) | ||
534 | + * @param parm Parameter to be passed to the function. | ||
535 | + * | ||
536 | + */ | ||
537 | + LIB3270_EXPORT int lib3270_call_thread(int(*callback)(H3270 *h, void *), H3270 *h, void *parm); | ||
538 | + | ||
539 | +#ifdef __cplusplus | ||
540 | + } | ||
541 | +#endif | ||
542 | + | ||
543 | +#endif // LIB3270_H_INCLUDED |
@@ -0,0 +1,211 @@ | @@ -0,0 +1,211 @@ | ||
1 | +<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> | ||
2 | +<CodeBlocks_project_file> | ||
3 | + <FileVersion major="1" minor="6" /> | ||
4 | + <Project> | ||
5 | + <Option title="lib3270" /> | ||
6 | + <Option pch_mode="2" /> | ||
7 | + <Option compiler="gcc" /> | ||
8 | + <Build> | ||
9 | + <Target title="Debug"> | ||
10 | + <Option output=".bin/Debug/lib3270" prefix_auto="1" extension_auto="1" /> | ||
11 | + <Option object_output=".obj/Debug/" /> | ||
12 | + <Option type="1" /> | ||
13 | + <Option compiler="gcc" /> | ||
14 | + <Compiler> | ||
15 | + <Add option="-g" /> | ||
16 | + <Add option="-DDEBUG=1" /> | ||
17 | + </Compiler> | ||
18 | + </Target> | ||
19 | + <Target title="Release"> | ||
20 | + <Option output=".bin/Release/lib3270" prefix_auto="1" extension_auto="1" /> | ||
21 | + <Option object_output=".obj/Release/" /> | ||
22 | + <Option type="3" /> | ||
23 | + <Option compiler="gcc" /> | ||
24 | + <Option createDefFile="1" /> | ||
25 | + <Option createStaticLib="1" /> | ||
26 | + <Compiler> | ||
27 | + <Add option="-O2" /> | ||
28 | + </Compiler> | ||
29 | + <Linker> | ||
30 | + <Add option="-s" /> | ||
31 | + </Linker> | ||
32 | + </Target> | ||
33 | + </Build> | ||
34 | + <Compiler> | ||
35 | + <Add option="-Wall" /> | ||
36 | + <Add option="-DLIB3270=1" /> | ||
37 | + <Add directory="../include" /> | ||
38 | + <Add directory="../include/lib3270" /> | ||
39 | + </Compiler> | ||
40 | + <Unit filename="Makefile.in" /> | ||
41 | + <Unit filename="XtGlue.c"> | ||
42 | + <Option compilerVar="CC" /> | ||
43 | + </Unit> | ||
44 | + <Unit filename="actions.c"> | ||
45 | + <Option compilerVar="CC" /> | ||
46 | + </Unit> | ||
47 | + <Unit filename="actionsc.h" /> | ||
48 | + <Unit filename="ansi.c"> | ||
49 | + <Option compilerVar="CC" /> | ||
50 | + </Unit> | ||
51 | + <Unit filename="ansic.h" /> | ||
52 | + <Unit filename="apl.c"> | ||
53 | + <Option compilerVar="CC" /> | ||
54 | + </Unit> | ||
55 | + <Unit filename="aplc.h" /> | ||
56 | + <Unit filename="appres.h" /> | ||
57 | + <Unit filename="arpa_telnet.h" /> | ||
58 | + <Unit filename="cg.h" /> | ||
59 | + <Unit filename="charset.c"> | ||
60 | + <Option compilerVar="CC" /> | ||
61 | + </Unit> | ||
62 | + <Unit filename="charsetc.h" /> | ||
63 | + <Unit filename="childc.h" /> | ||
64 | + <Unit filename="control.in" /> | ||
65 | + <Unit filename="ctlr.c"> | ||
66 | + <Option compilerVar="CC" /> | ||
67 | + </Unit> | ||
68 | + <Unit filename="ctlr.h" /> | ||
69 | + <Unit filename="ctlrc.h" /> | ||
70 | + <Unit filename="dialogc.h" /> | ||
71 | + <Unit filename="falbacks.c"> | ||
72 | + <Option compilerVar="CC" /> | ||
73 | + </Unit> | ||
74 | + <Unit filename="ft.c"> | ||
75 | + <Option compilerVar="CC" /> | ||
76 | + </Unit> | ||
77 | + <Unit filename="ft_cut.c"> | ||
78 | + <Option compilerVar="CC" /> | ||
79 | + </Unit> | ||
80 | + <Unit filename="ft_cut_ds.h" /> | ||
81 | + <Unit filename="ft_cutc.h" /> | ||
82 | + <Unit filename="ft_dft.c"> | ||
83 | + <Option compilerVar="CC" /> | ||
84 | + </Unit> | ||
85 | + <Unit filename="ft_dft_ds.h" /> | ||
86 | + <Unit filename="ft_dftc.h" /> | ||
87 | + <Unit filename="ftc.h" /> | ||
88 | + <Unit filename="globals.h" /> | ||
89 | + <Unit filename="glue.c"> | ||
90 | + <Option compilerVar="CC" /> | ||
91 | + </Unit> | ||
92 | + <Unit filename="gluec.h" /> | ||
93 | + <Unit filename="host.c"> | ||
94 | + <Option compilerVar="CC" /> | ||
95 | + </Unit> | ||
96 | + <Unit filename="hostc.h" /> | ||
97 | + <Unit filename="icmdc.h" /> | ||
98 | + <Unit filename="keypadc.h" /> | ||
99 | + <Unit filename="kybd.c"> | ||
100 | + <Option compilerVar="CC" /> | ||
101 | + </Unit> | ||
102 | + <Unit filename="kybdc.h" /> | ||
103 | + <Unit filename="localdefs.h" /> | ||
104 | + <Unit filename="log.c"> | ||
105 | + <Option compilerVar="CC" /> | ||
106 | + </Unit> | ||
107 | + <Unit filename="macros.c"> | ||
108 | + <Option compilerVar="CC" /> | ||
109 | + </Unit> | ||
110 | + <Unit filename="menubarc.h" /> | ||
111 | + <Unit filename="mkversion.sh.in" /> | ||
112 | + <Unit filename="objects.h" /> | ||
113 | + <Unit filename="paste.c"> | ||
114 | + <Option compilerVar="CC" /> | ||
115 | + </Unit> | ||
116 | + <Unit filename="popupsc.h" /> | ||
117 | + <Unit filename="print.c"> | ||
118 | + <Option compilerVar="CC" /> | ||
119 | + </Unit> | ||
120 | + <Unit filename="printc.h" /> | ||
121 | + <Unit filename="printer.c"> | ||
122 | + <Option compilerVar="CC" /> | ||
123 | + </Unit> | ||
124 | + <Unit filename="printerc.h" /> | ||
125 | + <Unit filename="proxy.c"> | ||
126 | + <Option compilerVar="CC" /> | ||
127 | + </Unit> | ||
128 | + <Unit filename="proxyc.h" /> | ||
129 | + <Unit filename="resolver.c"> | ||
130 | + <Option compilerVar="CC" /> | ||
131 | + </Unit> | ||
132 | + <Unit filename="resolverc.h" /> | ||
133 | + <Unit filename="resources.c"> | ||
134 | + <Option compilerVar="CC" /> | ||
135 | + </Unit> | ||
136 | + <Unit filename="resources.h" /> | ||
137 | + <Unit filename="rpq.c"> | ||
138 | + <Option compilerVar="CC" /> | ||
139 | + </Unit> | ||
140 | + <Unit filename="savec.h" /> | ||
141 | + <Unit filename="screen.c"> | ||
142 | + <Option compilerVar="CC" /> | ||
143 | + </Unit> | ||
144 | + <Unit filename="screen.h" /> | ||
145 | + <Unit filename="screenc.h" /> | ||
146 | + <Unit filename="scrollc.h" /> | ||
147 | + <Unit filename="see.c"> | ||
148 | + <Option compilerVar="CC" /> | ||
149 | + </Unit> | ||
150 | + <Unit filename="seec.h" /> | ||
151 | + <Unit filename="selectc.h" /> | ||
152 | + <Unit filename="session.h" /> | ||
153 | + <Unit filename="sf.c"> | ||
154 | + <Option compilerVar="CC" /> | ||
155 | + </Unit> | ||
156 | + <Unit filename="sfc.h" /> | ||
157 | + <Unit filename="shlobj_missing.h" /> | ||
158 | + <Unit filename="statusc.h" /> | ||
159 | + <Unit filename="tables.c"> | ||
160 | + <Option compilerVar="CC" /> | ||
161 | + </Unit> | ||
162 | + <Unit filename="tablesc.h" /> | ||
163 | + <Unit filename="telnet.c"> | ||
164 | + <Option compilerVar="CC" /> | ||
165 | + </Unit> | ||
166 | + <Unit filename="telnetc.h" /> | ||
167 | + <Unit filename="testprogram.c"> | ||
168 | + <Option compilerVar="CC" /> | ||
169 | + </Unit> | ||
170 | + <Unit filename="tn3270e.h" /> | ||
171 | + <Unit filename="toggles.c"> | ||
172 | + <Option compilerVar="CC" /> | ||
173 | + </Unit> | ||
174 | + <Unit filename="togglesc.h" /> | ||
175 | + <Unit filename="trace_ds.c"> | ||
176 | + <Option compilerVar="CC" /> | ||
177 | + </Unit> | ||
178 | + <Unit filename="trace_dsc.h" /> | ||
179 | + <Unit filename="utf8.c"> | ||
180 | + <Option compilerVar="CC" /> | ||
181 | + </Unit> | ||
182 | + <Unit filename="utf8c.h" /> | ||
183 | + <Unit filename="util.c"> | ||
184 | + <Option compilerVar="CC" /> | ||
185 | + </Unit> | ||
186 | + <Unit filename="utilc.h" /> | ||
187 | + <Unit filename="version.c"> | ||
188 | + <Option compilerVar="CC" /> | ||
189 | + </Unit> | ||
190 | + <Unit filename="w3misc.c"> | ||
191 | + <Option compilerVar="CC" /> | ||
192 | + </Unit> | ||
193 | + <Unit filename="w3miscc.h" /> | ||
194 | + <Unit filename="widec.h" /> | ||
195 | + <Unit filename="winvers.c"> | ||
196 | + <Option compilerVar="CC" /> | ||
197 | + </Unit> | ||
198 | + <Unit filename="winversc.h" /> | ||
199 | + <Unit filename="xio.c"> | ||
200 | + <Option compilerVar="CC" /> | ||
201 | + </Unit> | ||
202 | + <Unit filename="xioc.h" /> | ||
203 | + <Unit filename="xl.h" /> | ||
204 | + <Extensions> | ||
205 | + <code_completion /> | ||
206 | + <envvars /> | ||
207 | + <debugger /> | ||
208 | + <lib_finder disable_auto="1" /> | ||
209 | + </Extensions> | ||
210 | + </Project> | ||
211 | +</CodeBlocks_project_file> |