Commit b11cde6a74900bcffcbc3080a3687119178b2855

Authored by perry.werneck@gmail.com
1 parent 8a5290e7

Tentando implementar api rexx

src/include/plugin.mak.in
@@ -44,6 +44,7 @@ OBJEXT = o @@ -44,6 +44,7 @@ OBJEXT = o
44 44
45 MKDIR=@MKDIR_P@ 45 MKDIR=@MKDIR_P@
46 CC=@CC@ 46 CC=@CC@
  47 +CXX=@CXX@
47 LD=@CC@ 48 LD=@CC@
48 MSGCAT=@MSGCAT@ 49 MSGCAT=@MSGCAT@
49 XGETTEXT=@XGETTEXT@ 50 XGETTEXT=@XGETTEXT@
@@ -86,11 +87,20 @@ $(OBJDBG)/%.o: %.c $(DEPENDS) @@ -86,11 +87,20 @@ $(OBJDBG)/%.o: %.c $(DEPENDS)
86 @$(MKDIR) `dirname $@` 87 @$(MKDIR) `dirname $@`
87 @$(CC) $(DLL_CFLAGS) $(CFLAGS) $(DEBUG_CFLAGS) $(PW3270_CFLAGS) $(GTK_CFLAGS) -o $@ -c $< 88 @$(CC) $(DLL_CFLAGS) $(CFLAGS) $(DEBUG_CFLAGS) $(PW3270_CFLAGS) $(GTK_CFLAGS) -o $@ -c $<
88 89
  90 +$(OBJDBG)/%.o: %.cc $(DEPENDS)
  91 + @echo " CC `basename $@`"
  92 + @$(MKDIR) `dirname $@`
  93 + @$(CXX) $(DLL_CFLAGS) $(CFLAGS) $(DEBUG_CFLAGS) $(PW3270_CFLAGS) $(GTK_CFLAGS) -o $@ -c $<
  94 +
89 $(OBJRLS)/%.o: %.c $(DEPENDS) 95 $(OBJRLS)/%.o: %.c $(DEPENDS)
90 @echo " CC `basename $@`" 96 @echo " CC `basename $@`"
91 @$(MKDIR) `dirname $@` 97 @$(MKDIR) `dirname $@`
92 @$(CC) $(DLL_CFLAGS) $(CFLAGS) $(PW3270_CFLAGS) $(GTK_CFLAGS) -o $@ -c $< 98 @$(CC) $(DLL_CFLAGS) $(CFLAGS) $(PW3270_CFLAGS) $(GTK_CFLAGS) -o $@ -c $<
93 99
  100 +$(OBJRLS)/%.o: %.cc $(DEPENDS)
  101 + @echo " CC `basename $@`"
  102 + @$(MKDIR) `dirname $@`
  103 + @$(CXX) $(DLL_CFLAGS) $(CFLAGS) $(PW3270_CFLAGS) $(GTK_CFLAGS) -o $@ -c $<
94 104
95 #---[ Targets ]---------------------------------------------------------------- 105 #---[ Targets ]----------------------------------------------------------------
96 106
src/include/pw3270/plugin.h
@@ -36,11 +36,19 @@ @@ -36,11 +36,19 @@
36 #include <gtk/gtk.h> 36 #include <gtk/gtk.h>
37 #include <lib3270.h> 37 #include <lib3270.h>
38 38
  39 +#ifdef __cplusplus
  40 + extern "C" {
  41 +#endif
  42 +
39 LIB3270_EXPORT int pw3270_plugin_init(GtkWidget *window); 43 LIB3270_EXPORT int pw3270_plugin_init(GtkWidget *window);
40 LIB3270_EXPORT int pw3270_plugin_deinit(GtkWidget *window); 44 LIB3270_EXPORT int pw3270_plugin_deinit(GtkWidget *window);
41 45
42 LIB3270_EXPORT void pw3270_plugin_start(GtkWidget *window); 46 LIB3270_EXPORT void pw3270_plugin_start(GtkWidget *window);
43 LIB3270_EXPORT void pw3270_plugin_stop(GtkWidget *window); 47 LIB3270_EXPORT void pw3270_plugin_stop(GtkWidget *window);
44 48
  49 +#ifdef __cplusplus
  50 + }
  51 +#endif
  52 +
45 #endif // PW3270_PLUGIN_INCLUDED 53 #endif // PW3270_PLUGIN_INCLUDED
46 54
src/plugins/rx3270/pluginmain.c
@@ -1,43 +0,0 @@ @@ -1,43 +0,0 @@
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 pluginmain.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 - #include <pw3270.h>  
31 - #include <pw3270/plugin.h>  
32 -  
33 - #include "rx3270.h"  
34 -  
35 -/*--[ Implement ]------------------------------------------------------------------------------------*/  
36 -  
37 - LIB3270_EXPORT int pw3270_plugin_init(GtkWidget *window)  
38 - {  
39 - trace("%s called for window %p",__FUNCTION__,window);  
40 -  
41 - return 0;  
42 - }  
43 -  
src/plugins/rx3270/rx3270.h
@@ -32,6 +32,7 @@ @@ -32,6 +32,7 @@
32 #define RX3270_H_INCLUDED 1 32 #define RX3270_H_INCLUDED 1
33 33
34 #include <errno.h> 34 #include <errno.h>
  35 + #include <stdio.h>
35 #include <lib3270/config.h> 36 #include <lib3270/config.h>
36 #include <lib3270.h> 37 #include <lib3270.h>
37 #include <lib3270/log.h> 38 #include <lib3270/log.h>
@@ -45,4 +46,10 @@ @@ -45,4 +46,10 @@
45 /*---[ Globals ]---------------------------------------------------------------------------------------------*/ 46 /*---[ Globals ]---------------------------------------------------------------------------------------------*/
46 47
47 48
  49 +/*--[ Prototipes ]-------------------------------------------------------------------------------------------*/
  50 +
  51 + LIB3270_EXPORT REXX_TYPED_ROUTINE_PROTOTYPE(rx3270version);
  52 +
  53 +
  54 +
48 #endif // RX3270_H_INCLUDED 55 #endif // RX3270_H_INCLUDED
src/plugins/rx3270/rxapimain.c
@@ -28,66 +28,32 @@ @@ -28,66 +28,32 @@
28 */ 28 */
29 29
30 /* 30 /*
  31 + *
31 * Reference: 32 * Reference:
32 * 33 *
33 * http://www.oorexx.org/docs/rexxpg/x2950.htm 34 * http://www.oorexx.org/docs/rexxpg/x2950.htm
34 * 35 *
35 */ 36 */
36 37
37 - #include <pw3270.h>  
38 - #include <pw3270/plugin.h>  
39 - #include <oorexxapi.h>  
40 -  
41 #include "rx3270.h" 38 #include "rx3270.h"
42 39
43 -// create function declarations for the linker  
44 -REXX_TYPED_ROUTINE_PROTOTYPE(rx3270LoadFuncs);  
45 -REXX_TYPED_ROUTINE_PROTOTYPE(rx3270DropFuncs);  
46 -REXX_TYPED_ROUTINE_PROTOTYPE(rx3270Version);  
47 -  
48 -/*--[ Globals ]--------------------------------------------------------------------------------------*/  
49 -  
50 #if defined WIN32 40 #if defined WIN32
51 - BOOL WINAPI DllMain(HANDLE hinst, DWORD dwcallpurpose, LPVOID lpvResvd);  
52 - static int librx3270_loaded(void);  
53 - static int librx3270_unloaded(void); 41 + BOOL WINAPI DllMain(HANDLE hinst, DWORD dwcallpurpose, LPVOID lpvResvd);
  42 + static int librx3270_loaded(void);
  43 + static int librx3270_unloaded(void);
54 #else 44 #else
55 - int librx3270_loaded(void) __attribute__((constructor));  
56 - int librx3270_unloaded(void) __attribute__((destructor)); 45 + int librx3270_loaded(void) __attribute__((constructor));
  46 + int librx3270_unloaded(void) __attribute__((destructor));
57 #endif 47 #endif
58 -  
59 -/*--[ Rexx Package description ]---------------------------------------------------------------------*/  
60 -  
61 -  
62 -// now build the actual entry list  
63 -RexxRoutineEntry rx3270_functions[] =  
64 -{  
65 - REXX_TYPED_ROUTINE(rx3270Version, rx3270Version),  
66 - REXX_LAST_ROUTINE()  
67 -};  
68 -  
69 -RexxPackageEntry rx3270_package_entry =  
70 -{  
71 - STANDARD_PACKAGE_HEADER  
72 - REXX_INTERPRETER_4_0_0, /**> anything after 4.0.0 will work */  
73 - "RX3270", /**> name of the package */  
74 - PACKAGE_VERSION, /**> package information */  
75 - NULL, /**> no load/unload functions */  
76 - NULL, /**> no load/unload functions */  
77 - rx3270_functions, /**> the exported functions */  
78 - NULL /**> no methods in rx3270. */  
79 -};  
80 -  
81 -// package loading stub.  
82 -OOREXX_GET_PACKAGE(rx3270);  
83 -  
84 /*--[ Implement ]------------------------------------------------------------------------------------*/ 48 /*--[ Implement ]------------------------------------------------------------------------------------*/
85 49
86 #if defined WIN32 50 #if defined WIN32
87 BOOL WINAPI DllMain(HANDLE hinst, DWORD dwcallpurpose, LPVOID lpvResvd) 51 BOOL WINAPI DllMain(HANDLE hinst, DWORD dwcallpurpose, LPVOID lpvResvd)
88 { 52 {
89 - switch(dwcallpurpose)  
90 - { 53 +// Trace("%s - Library %s",__FUNCTION__,(dwcallpurpose == DLL_PROCESS_ATTACH) ? "Loaded" : "Unloaded");
  54 +
  55 + switch(dwcallpurpose)
  56 + {
91 case DLL_PROCESS_ATTACH: 57 case DLL_PROCESS_ATTACH:
92 librx3270_loaded(); 58 librx3270_loaded();
93 break; 59 break;
@@ -95,26 +61,49 @@ BOOL WINAPI DllMain(HANDLE hinst, DWORD dwcallpurpose, LPVOID lpvResvd) @@ -95,26 +61,49 @@ BOOL WINAPI DllMain(HANDLE hinst, DWORD dwcallpurpose, LPVOID lpvResvd)
95 case DLL_PROCESS_DETACH: 61 case DLL_PROCESS_DETACH:
96 librx3270_unloaded(); 62 librx3270_unloaded();
97 break; 63 break;
98 - }  
99 -  
100 - return TRUE; 64 + }
  65 + return TRUE;
101 } 66 }
102 -#endif // WIN32 67 +#endif
103 68
104 int librx3270_loaded(void) 69 int librx3270_loaded(void)
105 { 70 {
106 - trace("%s %s %s",__FUNCTION__,__DATE__,__TIME__);  
107 - return 0; 71 + trace("%s",__FUNCTION__);
  72 + return 0;
108 } 73 }
109 74
110 int librx3270_unloaded(void) 75 int librx3270_unloaded(void)
111 { 76 {
112 trace("%s",__FUNCTION__); 77 trace("%s",__FUNCTION__);
113 - return 0; 78 + return 0;
114 } 79 }
115 80
116 -RexxRoutine0(CSTRING, rx3270Version) 81 +RexxRoutine0(CSTRING, rx3270version)
117 { 82 {
118 - return "teste"; // lib3270_get_version(); 83 + return "Teste";
119 } 84 }
120 85
  86 +
  87 +// now build the actual entry list
  88 +RexxRoutineEntry rx3270_functions[] =
  89 +{
  90 + REXX_TYPED_ROUTINE(rx3270version, rx3270version),
  91 + REXX_LAST_METHOD()
  92 +};
  93 +
  94 +RexxPackageEntry rxmath_package_entry =
  95 +{
  96 + STANDARD_PACKAGE_HEADER
  97 + REXX_INTERPRETER_4_0_0, // anything after 4.0.0 will work
  98 + "RX3270", // name of the package
  99 + "5.0", // package information
  100 + NULL, // no load/unload functions
  101 + NULL,
  102 + rx3270_functions, // the exported functions
  103 + NULL // no methods in rxmath.
  104 +};
  105 +
  106 +// package loading stub.
  107 +OOREXX_GET_PACKAGE(rx3270);
  108 +
  109 +