Commit 1580e85ea7ca6e61454293347d47638cc172fedd

Authored by Perry Werneck
1 parent 3f54fda9
Exists in master

Reimplementando módulo ooRexx

src/plugin.cc 0 → 100644
@@ -0,0 +1,42 @@ @@ -0,0 +1,42 @@
  1 +/*
  2 + * "Software pw3270, 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 rexx_methods.cc e possui - 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 Mendonça)
  27 + *
  28 + *
  29 + * Referencias:
  30 + *
  31 + * * http://www.oorexx.org/docs/rexxpg/x2950.htm
  32 + *
  33 + */
  34 +
  35 + #include "private.h"
  36 +
  37 +
  38 +/*---[ Implement ]----------------------------------------------------------------------------------*/
  39 +
  40 +
  41 +
  42 +
@@ -126,8 +126,6 @@ @@ -126,8 +126,6 @@
126 REXX_METHOD_PROTOTYPE(rx3270_method_set_host_charset); 126 REXX_METHOD_PROTOTYPE(rx3270_method_set_host_charset);
127 REXX_METHOD_PROTOTYPE(rx3270_method_set_unlock_delay); 127 REXX_METHOD_PROTOTYPE(rx3270_method_set_unlock_delay);
128 128
129 -/*---[ Globals ]---------------------------------------------------------------------------------------------*/  
130 -  
131 /*--[ 3270 Session ]-----------------------------------------------------------------------------------------*/ 129 /*--[ 3270 Session ]-----------------------------------------------------------------------------------------*/
132 130
133 #ifdef __cplusplus 131 #ifdef __cplusplus
src/rx3270.cc 0 → 100644
@@ -0,0 +1,185 @@ @@ -0,0 +1,185 @@
  1 +/*
  2 + * "Software pw3270, 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 rx3270.c e possui - 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 Mendonça)
  27 + *
  28 + */
  29 +
  30 + /*
  31 + *
  32 + * Reference:
  33 + *
  34 + * http://www.oorexx.org/docs/rexxpg/x2950.htm
  35 + *
  36 + */
  37 +
  38 + #include "private.h"
  39 +
  40 +/*--[ Globals ]--------------------------------------------------------------------------------------*/
  41 +
  42 +/*--[ Implement ]------------------------------------------------------------------------------------*/
  43 +
  44 +// now build the actual entry list
  45 +RexxRoutineEntry rx3270_functions[] =
  46 +{
  47 + REXX_TYPED_ROUTINE(rx3270version, rx3270version),
  48 + REXX_TYPED_ROUTINE(rx3270QueryCState, rx3270QueryCState),
  49 + REXX_TYPED_ROUTINE(rx3270Disconnect, rx3270Disconnect),
  50 + REXX_TYPED_ROUTINE(rx3270Connect, rx3270Connect),
  51 + REXX_TYPED_ROUTINE(rx3270isConnected, rx3270isConnected),
  52 + REXX_TYPED_ROUTINE(rx3270WaitForEvents, rx3270WaitForEvents),
  53 + REXX_TYPED_ROUTINE(rx3270Sleep, rx3270Sleep),
  54 + REXX_TYPED_ROUTINE(rx3270SendENTERKey, rx3270SendENTERKey),
  55 + REXX_TYPED_ROUTINE(rx3270SendPFKey, rx3270SendPFKey),
  56 + REXX_TYPED_ROUTINE(rx3270SendPAKey, rx3270SendPAKey),
  57 + REXX_TYPED_ROUTINE(rx3270WaitForTerminalReady, rx3270WaitForTerminalReady),
  58 + REXX_TYPED_ROUTINE(rx3270WaitForStringAt, rx3270WaitForStringAt),
  59 + REXX_TYPED_ROUTINE(rx3270GetStringAt, rx3270GetStringAt),
  60 + REXX_TYPED_ROUTINE(rx3270IsTerminalReady, rx3270IsTerminalReady),
  61 + REXX_TYPED_ROUTINE(rx3270queryStringAt, rx3270queryStringAt),
  62 + REXX_TYPED_ROUTINE(rx3270SetStringAt, rx3270SetStringAt),
  63 + REXX_TYPED_ROUTINE(rx3270CloseApplication, rx3270CloseApplication),
  64 +
  65 + REXX_TYPED_ROUTINE(rx3270Erase, rx3270Erase),
  66 + REXX_TYPED_ROUTINE(rx3270EraseEOF, rx3270EraseEOF),
  67 + REXX_TYPED_ROUTINE(rx3270EraseEOL, rx3270EraseEOL),
  68 + REXX_TYPED_ROUTINE(rx3270EraseInput, rx3270EraseInput),
  69 +
  70 + REXX_TYPED_ROUTINE(rx3270IsProtected, rx3270IsProtected),
  71 + REXX_TYPED_ROUTINE(rx3270IsProtectedAt, rx3270IsProtectedAt),
  72 + REXX_TYPED_ROUTINE(rx3270SetUnlockDelay, rx3270SetUnlockDelay),
  73 +
  74 + REXX_TYPED_ROUTINE(ebc2asc, ebc2asc),
  75 + REXX_TYPED_ROUTINE(asc2ebc, asc2ebc),
  76 +
  77 +
  78 + // rx3270Popup
  79 + REXX_LAST_METHOD()
  80 +};
  81 +
  82 +RexxMethodEntry rx3270_methods[] =
  83 +{
  84 + REXX_METHOD(rx3270_method_version, rx3270_method_version ),
  85 + REXX_METHOD(rx3270_method_revision, rx3270_method_revision ),
  86 + REXX_METHOD(rx3270_method_init, rx3270_method_init ),
  87 + REXX_METHOD(rx3270_method_uninit, rx3270_method_uninit ),
  88 + REXX_METHOD(rx3270_method_connect, rx3270_method_connect ),
  89 + REXX_METHOD(rx3270_method_disconnect, rx3270_method_disconnect ),
  90 + REXX_METHOD(rx3270_method_sleep, rx3270_method_sleep ),
  91 + REXX_METHOD(rx3270_method_is_connected, rx3270_method_is_connected ),
  92 + REXX_METHOD(rx3270_method_is_ready, rx3270_method_is_ready ),
  93 + REXX_METHOD(rx3270_method_wait_for_ready, rx3270_method_wait_for_ready ),
  94 + REXX_METHOD(rx3270_method_set_cursor, rx3270_method_set_cursor ),
  95 + REXX_METHOD(rx3270_method_set_cursor, rx3270_method_get_cursor_addr ),
  96 + REXX_METHOD(rx3270_method_set_cursor, rx3270_method_set_cursor_addr ),
  97 + REXX_METHOD(rx3270_method_enter, rx3270_method_enter ),
  98 + REXX_METHOD(rx3270_method_enter, rx3270_method_erase ),
  99 + REXX_METHOD(rx3270_method_enter, rx3270_method_erase_eof ),
  100 + REXX_METHOD(rx3270_method_enter, rx3270_method_erase_eol ),
  101 + REXX_METHOD(rx3270_method_enter, rx3270_method_erase_input ),
  102 + REXX_METHOD(rx3270_method_pfkey, rx3270_method_pfkey ),
  103 + REXX_METHOD(rx3270_method_pakey, rx3270_method_pakey ),
  104 + REXX_METHOD(rx3270_method_get_text, rx3270_method_get_text ),
  105 + REXX_METHOD(rx3270_method_get_text_at, rx3270_method_get_text_at ),
  106 + REXX_METHOD(rx3270_method_set_text_at, rx3270_method_set_text_at ),
  107 + REXX_METHOD(rx3270_method_cmp_text_at, rx3270_method_cmp_text_at ),
  108 + REXX_METHOD(rx3270_method_event_trace, rx3270_method_event_trace ),
  109 + REXX_METHOD(rx3270_method_screen_trace, rx3270_method_screen_trace ),
  110 + REXX_METHOD(rx3270_method_ds_trace, rx3270_method_ds_trace ),
  111 + REXX_METHOD(rx3270_method_set_option, rx3270_method_set_option ),
  112 + REXX_METHOD(rx3270_method_test, rx3270_method_test ),
  113 + REXX_METHOD(rx3270_method_wait_for_text_at, rx3270_method_wait_for_text_at ),
  114 +
  115 + REXX_METHOD(rx3270_method_get_field_len, rx3270_method_get_field_len ),
  116 + REXX_METHOD(rx3270_method_get_field_start, rx3270_method_get_field_start ),
  117 + REXX_METHOD(rx3270_method_get_next_unprotected, rx3270_method_get_next_unprotected ),
  118 +
  119 + REXX_METHOD(rx3270_method_get_is_protected, rx3270_method_get_is_protected ),
  120 + REXX_METHOD(rx3270_method_get_is_protected_at, rx3270_method_get_is_protected_at ),
  121 +
  122 + REXX_METHOD(rx3270_method_get_selection, rx3270_method_get_selection ),
  123 + REXX_METHOD(rx3270_method_set_selection, rx3270_method_set_selection ),
  124 + REXX_METHOD(rx3270_method_get_clipboard, rx3270_method_get_clipboard ),
  125 + REXX_METHOD(rx3270_method_set_clipboard, rx3270_method_set_clipboard ),
  126 +
  127 + REXX_METHOD(rx3270_method_erase, rx3270_method_erase ),
  128 + REXX_METHOD(rx3270_method_erase_eof, rx3270_method_erase_eof ),
  129 + REXX_METHOD(rx3270_method_erase_eol, rx3270_method_erase_eol ),
  130 + REXX_METHOD(rx3270_method_erase_input, rx3270_method_erase_input ),
  131 +
  132 + REXX_METHOD(rx3270_method_popup, rx3270_method_popup ),
  133 + REXX_METHOD(rx3270_method_get_filename, rx3270_method_get_filename ),
  134 +
  135 + REXX_METHOD(rx3270_method_get_cursor_addr, rx3270_method_get_cursor_addr ),
  136 + REXX_METHOD(rx3270_method_set_cursor_addr, rx3270_method_set_cursor_addr ),
  137 + REXX_METHOD(rx3270_method_input_text, rx3270_method_input_text ),
  138 +
  139 + REXX_METHOD(rx3270_method_get_display_charset, rx3270_method_get_display_charset ),
  140 + REXX_METHOD(rx3270_method_set_display_charset, rx3270_method_set_display_charset ),
  141 +
  142 + REXX_METHOD(rx3270_method_get_host_charset, rx3270_method_get_host_charset ),
  143 + REXX_METHOD(rx3270_method_set_host_charset, rx3270_method_set_host_charset ),
  144 +
  145 + REXX_METHOD(rx3270_method_set_unlock_delay, rx3270_method_set_unlock_delay ),
  146 +
  147 + REXX_LAST_METHOD()
  148 +};
  149 +
  150 +RexxPackageEntry rx3270_package_entry =
  151 +{
  152 + STANDARD_PACKAGE_HEADER
  153 + REXX_CURRENT_INTERPRETER_VERSION, // anything after 4.0.0 will work
  154 + "rx3270", // name of the package
  155 + PACKAGE_VERSION, // package information
  156 + NULL, // no load/unload functions
  157 + NULL,
  158 + rx3270_functions, // the exported functions
  159 + rx3270_methods // no methods in rx3270.
  160 +};
  161 +
  162 +// package loading stub.
  163 +/*
  164 +OOREXX_GET_PACKAGE(rx3270);
  165 +*/
  166 +
  167 +BEGIN_EXTERN_C()
  168 +
  169 +LIB3270_EXPORT void rx3270_set_package_option(RexxOption *option)
  170 +{
  171 + static const RexxLibraryPackage package = { "rx3270", &rx3270_package_entry };
  172 +
  173 + option->optionName = REGISTER_LIBRARY;
  174 + option->option = (void *) &package;
  175 +
  176 +}
  177 +
  178 +LIB3270_EXPORT RexxPackageEntry * RexxEntry RexxGetPackage(void)
  179 +{
  180 + return &rx3270_package_entry;
  181 +}
  182 +
  183 +END_EXTERN_C()
  184 +
  185 +
testprograms/getversion.rex 0 → 100644
@@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
  1 +
  2 +
  3 +say rx3270version()
  4 +
  5 +return 0
  6 +
  7 +::requires "rx3270" library
  8 +