Commit 7078548654065e519532bf2fb0e4f5e874006486
1 parent
afedcc02
Exists in
master
and in
5 other branches
Iniciando implementação da classe ooRexx
Showing
8 changed files
with
173 additions
and
3 deletions
Show diff stats
src/plugins/rx3270/Makefile.in
| @@ -29,7 +29,7 @@ | @@ -29,7 +29,7 @@ | ||
| 29 | MODULE_NAME=rx3270 | 29 | MODULE_NAME=rx3270 |
| 30 | DEPENDS=*.h ../../include/*.h ../../include/lib3270/*.h Makefile | 30 | DEPENDS=*.h ../../include/*.h ../../include/lib3270/*.h Makefile |
| 31 | PLUGIN_SRC=pluginmain.cc | 31 | PLUGIN_SRC=pluginmain.cc |
| 32 | -EXTAPI_SRC=rxapimain.cc text.cc typed_routines.cc local.cc | 32 | +EXTAPI_SRC=rxapimain.cc text.cc typed_routines.cc local.cc rexx_methods.cc |
| 33 | 33 | ||
| 34 | #---[ Tools ]------------------------------------------------------------------ | 34 | #---[ Tools ]------------------------------------------------------------------ |
| 35 | 35 |
src/plugins/rx3270/local.cc
| @@ -139,6 +139,17 @@ rx3270::~rx3270() | @@ -139,6 +139,17 @@ rx3270::~rx3270() | ||
| 139 | defSession = NULL; | 139 | defSession = NULL; |
| 140 | } | 140 | } |
| 141 | 141 | ||
| 142 | +rx3270 * rx3270::create(const char *type) | ||
| 143 | +{ | ||
| 144 | + if(type && *type) | ||
| 145 | + { | ||
| 146 | + // Create remote session | ||
| 147 | + return NULL; | ||
| 148 | + } | ||
| 149 | + return new dynamic(); | ||
| 150 | +} | ||
| 151 | + | ||
| 152 | + | ||
| 142 | rx3270 * rx3270::get_default(void) | 153 | rx3270 * rx3270::get_default(void) |
| 143 | { | 154 | { |
| 144 | if(defSession) | 155 | if(defSession) |
| @@ -0,0 +1,76 @@ | @@ -0,0 +1,76 @@ | ||
| 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 | + | ||
| 30 | + #include <time.h> | ||
| 31 | + #include <string.h> | ||
| 32 | + | ||
| 33 | + #include "rx3270.h" | ||
| 34 | + | ||
| 35 | + | ||
| 36 | +/*--[ Implement ]------------------------------------------------------------------------------------*/ | ||
| 37 | + | ||
| 38 | +RexxMethod1(int, rx3270_method_init, CSTRING, type) | ||
| 39 | +{ | ||
| 40 | + // Set session class in rexx object | ||
| 41 | + RexxPointerObject sessionPtr = context->NewPointer(rx3270::create(type)); | ||
| 42 | + context->SetObjectVariable("CSELF", sessionPtr); | ||
| 43 | + return 0; | ||
| 44 | +} | ||
| 45 | + | ||
| 46 | +RexxMethod1(int, rx3270_method_uninit, CSELF, sessionPtr) | ||
| 47 | +{ | ||
| 48 | + rx3270 *hSession = (rx3270 *) sessionPtr; | ||
| 49 | + if(hSession) | ||
| 50 | + delete hSession; | ||
| 51 | + return 0; | ||
| 52 | +} | ||
| 53 | + | ||
| 54 | +RexxMethod3(int, rx3270_method_connect, CSELF, sessionPtr, CSTRING, uri, OPTIONAL_int, wait) | ||
| 55 | +{ | ||
| 56 | + rx3270 *hSession = (rx3270 *) sessionPtr; | ||
| 57 | + if(!hSession) | ||
| 58 | + return -1; | ||
| 59 | + return hSession->connect(uri,wait != 0); | ||
| 60 | +} | ||
| 61 | + | ||
| 62 | +RexxMethod1(int, rx3270_method_disconnect, CSELF, sessionPtr) | ||
| 63 | +{ | ||
| 64 | + rx3270 *hSession = (rx3270 *) sessionPtr; | ||
| 65 | + if(!hSession) | ||
| 66 | + return -1; | ||
| 67 | + return hSession->disconnect(); | ||
| 68 | +} | ||
| 69 | + | ||
| 70 | +RexxMethod2(int, rx3270_method_sleep, CSELF, sessionPtr, int, seconds) | ||
| 71 | +{ | ||
| 72 | + rx3270 *hSession = (rx3270 *) sessionPtr; | ||
| 73 | + if(!hSession) | ||
| 74 | + return -1; | ||
| 75 | + return hSession->wait(seconds); | ||
| 76 | +} |
| @@ -0,0 +1,44 @@ | @@ -0,0 +1,44 @@ | ||
| 1 | +/*-- REXX -----------------------------------------------------------------------*/ | ||
| 2 | +/* */ | ||
| 3 | +/* "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 */ | ||
| 4 | +/* (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a */ | ||
| 5 | +/* aplicativos mainframe. Registro no INPI sob o nome G3270. */ | ||
| 6 | +/* */ | ||
| 7 | +/* Copyright (C) <2008> <Banco do Brasil S.A.> */ | ||
| 8 | +/* */ | ||
| 9 | +/* Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob */ | ||
| 10 | +/* os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela */ | ||
| 11 | +/* Free Software Foundation. */ | ||
| 12 | +/* */ | ||
| 13 | +/* Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER */ | ||
| 14 | +/* GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO */ | ||
| 15 | +/* A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para */ | ||
| 16 | +/* obter mais detalhes. */ | ||
| 17 | +/* */ | ||
| 18 | +/* Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este */ | ||
| 19 | +/* programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple */ | ||
| 20 | +/* Place, Suite 330, Boston, MA, 02111-1307, USA */ | ||
| 21 | +/* */ | ||
| 22 | +/* Contatos: */ | ||
| 23 | +/* */ | ||
| 24 | +/* perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) */ | ||
| 25 | +/* erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) */ | ||
| 26 | +/* licinio@bb.com.br (Licínio Luis Branco) */ | ||
| 27 | +/* */ | ||
| 28 | +/*-------------------------------------------------------------------------------*/ | ||
| 29 | + | ||
| 30 | +/*-------------------------------------------------------------------------------*/ | ||
| 31 | +/* 3270 class */ | ||
| 32 | +/*-------------------------------------------------------------------------------*/ | ||
| 33 | + | ||
| 34 | +::class rx3270 public subclass object | ||
| 35 | + | ||
| 36 | + | ||
| 37 | +::METHOD INIT EXTERNAL "LIBRARY rx3270 rx3270_method_init" | ||
| 38 | +::METHOD UNINIT EXTERNAL "LIBRARY rx3270 rx3270_method_uninit" | ||
| 39 | + | ||
| 40 | +::METHOD CONNECT EXTERNAL "LIBRARY rx3270 rx3270_method_connect" | ||
| 41 | +::METHOD DISCONNECT EXTERNAL "LIBRARY rx3270 rx3270_method_disconnect" | ||
| 42 | + | ||
| 43 | +::METHOD SLEEP EXTERNAL "LIBRARY rx3270 rx3270_method_sleep" | ||
| 44 | + |
src/plugins/rx3270/rx3270.h
| @@ -70,6 +70,12 @@ | @@ -70,6 +70,12 @@ | ||
| 70 | REXX_TYPED_ROUTINE_PROTOTYPE(rx3270queryStringAt); | 70 | REXX_TYPED_ROUTINE_PROTOTYPE(rx3270queryStringAt); |
| 71 | REXX_TYPED_ROUTINE_PROTOTYPE(rx3270SetStringAt); | 71 | REXX_TYPED_ROUTINE_PROTOTYPE(rx3270SetStringAt); |
| 72 | 72 | ||
| 73 | + REXX_METHOD_PROTOTYPE(rx3270_method_init); | ||
| 74 | + REXX_METHOD_PROTOTYPE(rx3270_method_uninit); | ||
| 75 | + REXX_METHOD_PROTOTYPE(rx3270_method_connect); | ||
| 76 | + REXX_METHOD_PROTOTYPE(rx3270_method_disconnect); | ||
| 77 | + REXX_METHOD_PROTOTYPE(rx3270_method_sleep); | ||
| 78 | + | ||
| 73 | /*---[ Globals ]---------------------------------------------------------------------------------------------*/ | 79 | /*---[ Globals ]---------------------------------------------------------------------------------------------*/ |
| 74 | 80 | ||
| 75 | /*--[ 3270 Session ]-----------------------------------------------------------------------------------------*/ | 81 | /*--[ 3270 Session ]-----------------------------------------------------------------------------------------*/ |
| @@ -92,6 +98,7 @@ | @@ -92,6 +98,7 @@ | ||
| 92 | rx3270(); | 98 | rx3270(); |
| 93 | virtual ~rx3270(); | 99 | virtual ~rx3270(); |
| 94 | 100 | ||
| 101 | + static rx3270 * create(const char *type = NULL); | ||
| 95 | static rx3270 * get_default(void); | 102 | static rx3270 * get_default(void); |
| 96 | static void set_plugin(void); | 103 | static void set_plugin(void); |
| 97 | 104 | ||
| @@ -121,4 +128,6 @@ | @@ -121,4 +128,6 @@ | ||
| 121 | 128 | ||
| 122 | }; | 129 | }; |
| 123 | 130 | ||
| 131 | + rx3270 * create_lib3270_instance(void); | ||
| 132 | + | ||
| 124 | #endif // RX3270_H_INCLUDED | 133 | #endif // RX3270_H_INCLUDED |
src/plugins/rx3270/rxapimain.cc
| @@ -109,6 +109,16 @@ RexxRoutineEntry rx3270_functions[] = | @@ -109,6 +109,16 @@ RexxRoutineEntry rx3270_functions[] = | ||
| 109 | REXX_LAST_METHOD() | 109 | REXX_LAST_METHOD() |
| 110 | }; | 110 | }; |
| 111 | 111 | ||
| 112 | +RexxMethodEntry rx3270_methods[] = | ||
| 113 | +{ | ||
| 114 | + REXX_METHOD(rx3270_method_init, rx3270_method_init ), | ||
| 115 | + REXX_METHOD(rx3270_method_uninit, rx3270_method_uninit ), | ||
| 116 | + REXX_METHOD(rx3270_method_connect, rx3270_method_connect ), | ||
| 117 | + REXX_METHOD(rx3270_method_disconnect, rx3270_method_disconnect ), | ||
| 118 | + REXX_METHOD(rx3270_method_sleep, rx3270_method_sleep ), | ||
| 119 | + REXX_LAST_METHOD() | ||
| 120 | +}; | ||
| 121 | + | ||
| 112 | RexxPackageEntry rx3270_package_entry = | 122 | RexxPackageEntry rx3270_package_entry = |
| 113 | { | 123 | { |
| 114 | STANDARD_PACKAGE_HEADER | 124 | STANDARD_PACKAGE_HEADER |
| @@ -118,7 +128,7 @@ RexxPackageEntry rx3270_package_entry = | @@ -118,7 +128,7 @@ RexxPackageEntry rx3270_package_entry = | ||
| 118 | NULL, // no load/unload functions | 128 | NULL, // no load/unload functions |
| 119 | NULL, | 129 | NULL, |
| 120 | rx3270_functions, // the exported functions | 130 | rx3270_functions, // the exported functions |
| 121 | - NULL // no methods in rx3270. | 131 | + rx3270_methods // no methods in rx3270. |
| 122 | }; | 132 | }; |
| 123 | 133 | ||
| 124 | // package loading stub. | 134 | // package loading stub. |
src/plugins/rx3270/typed_routines.cc
| @@ -18,7 +18,7 @@ | @@ -18,7 +18,7 @@ | ||
| 18 | * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple | 18 | * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple |
| 19 | * Place, Suite 330, Boston, MA, 02111-1307, USA | 19 | * Place, Suite 330, Boston, MA, 02111-1307, USA |
| 20 | * | 20 | * |
| 21 | - * Este programa está nomeado como text.cc e possui - linhas de código. | 21 | + * Este programa está nomeado como typed_routines.cc e possui - linhas de código. |
| 22 | * | 22 | * |
| 23 | * Contatos: | 23 | * Contatos: |
| 24 | * | 24 | * |