/* * "Software PW3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a * aplicativos mainframe. Registro no INPI sob o nome G3270. * * Copyright (C) <2008> * * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela * Free Software Foundation. * * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para * obter mais detalhes. * * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin * St, Fifth Floor, Boston, MA 02110-1301 USA * * Este programa está nomeado como api.h e possui - linhas de código. * * Contatos: * * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) * erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça) * licinio@bb.com.br (Licínio Luis Branco) * kraucer@bb.com.br (Kraucer Fernandes Mazuco) * */ #ifndef LIB3270_API_INCLUDED #ifdef WIN32 #include #include #endif // WIN32 #ifdef __cplusplus extern "C" { #endif #define LIB3270_API_INCLUDED "4.2" #include #if defined(_WIN32) #include #if defined (HAVE_GNUC_VISIBILITY) #define LOCAL_EXTERN __attribute__((visibility("hidden"))) extern #else #define LOCAL_EXTERN extern #endif #else #include // http://gcc.gnu.org/wiki/Visibility #if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550) #define LOCAL_EXTERN __hidden extern #elif defined (HAVE_GNUC_VISIBILITY) #define LOCAL_EXTERN __attribute__((visibility("hidden"))) extern #else #define LOCAL_EXTERN extern #endif #endif #ifndef HCONSOLE #define HCONSOLE void * #endif #ifndef ETIMEDOUT #define ETIMEDOUT -1238 #endif #ifndef ECANCELED #ifdef EINTR #define ECANCELED EINTR #else #define ECANCELED -1125 #endif #endif #ifndef ENOTCONN #define ENOTCONN -1107 #endif #ifndef CN #define CN ((char *) NULL) #endif #include // #define WriteLog(module,fmt, ...) lib3270_write_log(NULL,module,fmt,__VA_ARGS__) // #define WriteRCLog(module,rc,fmt, ...) lib3270_write_rc(NULL,module,fmt,__VA_ARGS__) /* #ifdef LIB3270_MODULE_NAME #define Log(fmt, ...) lib3270_write_log(NULL,LIB3270_MODULE_NAME,fmt,__VA_ARGS__) #else #define Log(fmt, ...) lib3270_write_log(NULL,"MSG",fmt,__VA_ARGS__) #endif */ #define OIA_FLAG_BOXSOLID LIB3270_FLAG_BOXSOLID #define OIA_FLAG_UNDERA LIB3270_FLAG_UNDERA #define OIA_FLAG_TYPEAHEAD LIB3270_FLAG_TYPEAHEAD #define OIA_FLAG_USER LIB3270_FLAG_COUNT #define OIA_FLAG LIB3270_FLAG struct lib3270_state_callback; #include struct lib3270_state_callback { struct lib3270_state_callback * next; /**< Next callback in chain */ void * data; /**< User data */ void (*func)(H3270 *, int, void *); /**< Function to call */ }; /** Type of dialog boxes */ #include #define PW3270_DIALOG_INFO LIB3270_NOTIFY_INFO #define PW3270_DIALOG_CRITICAL LIB3270_NOTIFY_CRITICAL #define PW3270_DIALOG LIB3270_NOTIFY #define GR_BLINK 0x01 #define GR_REVERSE 0x02 #define GR_UNDERLINE 0x04 #define GR_INTENSIFY 0x08 #define CS_MASK 0x03 /**< mask for specific character sets */ #define CS_BASE 0x00 /**< base character set (X'00') */ #define CS_APL 0x01 /**< APL character set (X'01' or GE) */ #define CS_LINEDRAW 0x02 /**< DEC line-drawing character set (ANSI) */ #define CS_DBCS 0x03 /**< DBCS character set (X'F8') */ #define CS_GE 0x04 /**< cs flag for Graphic Escape */ /* File transfer */ #define FT_RECORD_FORMAT_FIXED LIB3270_FT_RECORD_FORMAT_FIXED #define FT_RECORD_FORMAT_VARIABLE LIB3270_FT_RECORD_FORMAT_VARIABLE #define FT_RECORD_FORMAT_UNDEFINED LIB3270_FT_RECORD_FORMAT_UNDEFINED #define FT_RECORD_FORMAT_MASK LIB3270_FT_RECORD_FORMAT_MASK #define FT_ALLOCATION_UNITS_TRACKS LIB3270_FT_ALLOCATION_UNITS_TRACKS #define FT_ALLOCATION_UNITS_CYLINDERS LIB3270_FT_ALLOCATION_UNITS_CYLINDERS #define FT_ALLOCATION_UNITS_AVBLOCK LIB3270_FT_ALLOCATION_UNITS_AVBLOCK #define FT_ALLOCATION_UNITS_MASK LIB3270_FT_ALLOCATION_UNITS_MASK #define FT_NONE LIB3270_FT_STATE_NONE #define FT_AWAIT_ACK LIB3270_FT_STATE_AWAIT_ACK #define FT_RUNNING LIB3270_FT_STATE_RUNNING #define FT_ABORT_WAIT LIB3270_FT_STATE_ABORT_WAIT #define FT_ABORT_SENT LIB3270_FT_STATE_ABORT_SENT LOCAL_EXTERN int CancelFileTransfer(int force); #define PCONNECTED lib3270_pconnected(hSession) #define HALF_CONNECTED lib3270_half_connected(hSession) #define CONNECTED lib3270_connected(hSession) #define IN_NEITHER lib3270_in_neither(hSession) #define IN_ANSI lib3270_in_ansi(hSession) #define IN_3270 lib3270_in_3270(hSession) #define IN_SSCP lib3270_in_sscp(hSession) #define IN_TN3270E lib3270_in_tn3270e(hSession) #define IN_E lib3270_in_e(hSession) /* Screen processing */ typedef enum _SCRIPT_STATE { SCRIPT_STATE_NONE, SCRIPT_STATE_RUNNING, SCRIPT_STATE_HALTED, SCRIPT_STATE_USER } SCRIPT_STATE; typedef enum _COUNTER_ID { COUNTER_ID_CTLR_DONE, COUNTER_ID_RESET, COUNTER_ID_USER } COUNTER_ID; LOCAL_EXTERN int query_counter(COUNTER_ID id); #define query_screen_change_counter() query_counter(COUNTER_ID_CTLR_DONE) #define COLOR_ATTR_NONE 0x0000 #define COLOR_ATTR_FIELD LIB3270_ATTR_FIELD #define COLOR_ATTR_BLINK LIB3270_ATTR_BLINK #define COLOR_ATTR_INTENSIFY LIB3270_ATTR_INTENSIFY #define CHAR_ATTR_UNCONVERTED LIB3270_ATTR_CG /* Set/Get screen contents */ #define find_field_attribute(s,a) lib3270_field_addr(s,a) #define find_field_length(s,a) find_field_length(s,a) LOCAL_EXTERN unsigned char get_field_attribute(H3270 *session, int baddr); LOCAL_EXTERN void Input_String(const unsigned char *str); LOCAL_EXTERN void screen_size(int *rows, int *cols); #define lib3270_paste_string(str) lib3270_set_string(NULL,str) #define get_3270_terminal_size(h,r,c) lib3270_get_screen_size(h,r,c) /* Keyboard */ LOCAL_EXTERN int emulate_input(char *s, int len, int pasting); /* Misc calls */ #define query_3270_terminal_status(void) lib3270_get_program_message(NULL) /* Get connection info */ #define get_connected_lu(h) lib3270_get_luname(h) LOCAL_EXTERN SCRIPT_STATE status_script(SCRIPT_STATE state); #include #ifdef __cplusplus } #endif #endif // LIB3270_API_INCLUDED