Commit 44331a7f331c2d2e3c6b750add60f5fd8a29a7f7

Authored by perry.werneck@gmail.com
1 parent 4fb74d6c

Implementando interface jni

configure.ac
... ... @@ -146,6 +146,7 @@ case "$host" in
146 146 PLUGINS="hllapi"
147 147 APP_GUI_SRC="resources.rc"
148 148 DLLPREFIX=""
  149 + JNI_CPPFLAGS="-I\$(JDK_HOME)/include -I\$(JDK_HOME)/include/win32"
149 150 ;;
150 151  
151 152 *-apple-*)
... ... @@ -169,6 +170,7 @@ case "$host" in
169 170 LDAPPFLAGS=""
170 171 DBGRPATH="-Wl,--rpath,.bin/Debug/lib"
171 172 DBGCMDPREFIX="LD_LIBRARY_PATH=\$(BINDIR)/Debug/lib"
  173 + JNI_CPPFLAGS="-I\$(JDK_HOME)/include -I\$(JDK_HOME)/include/linux"
172 174  
173 175 esac
174 176  
... ... @@ -339,6 +341,7 @@ AC_SUBST(JAVAH)
339 341 AC_SUBST(JAR)
340 342 AC_SUBST(JDK_HOME)
341 343 AC_SUBST(JRE_HOME)
  344 +AC_SUBST(JNI_CPPFLAGS)
342 345  
343 346 #--[ Headers ]------------------------------------------------------------------------------------------------------------------------------------------------
344 347  
... ...
src/java/Makefile.in
... ... @@ -25,7 +25,7 @@
25 25 #
26 26  
27 27 PACKAGE_NAME=@PACKAGE_NAME@
28   -SOURCES=
  28 +SOURCES=main.cc info.cc
29 29  
30 30 #---[ Paths ]------------------------------------------------------------------
31 31  
... ... @@ -70,24 +70,24 @@ include $(CLASSLIBDIR)/class.mak
70 70  
71 71 #---[ Build options ]----------------------------------------------------------
72 72  
73   -CXXFLAGS=@CXXFLAGS@ @DLL_CFLAGS@
  73 +CXXFLAGS=@CXXFLAGS@ @DLL_CFLAGS@ @JNI_CPPFLAGS@ -I../include
74 74  
75 75 #---[ Rules ]------------------------------------------------------------------
76 76  
77 77 $(OBJDBG)/%.o: %.cc Makefile jni3270.h
78 78 @echo " CC `basename $@`"
79 79 @mkdir -p `dirname $@`
80   - @$(CXX) -DDEBUG=1 $(CXXFLAGS) -o $@ -c $<
  80 + $(CXX) -DDEBUG=1 $(CXXFLAGS) -o $@ -c $<
81 81  
82 82 $(OBJRLS)/%.o: %.cc Makefile jni3270.h
83 83 @echo " CC `basename $@`"
84 84 @mkdir -p `dirname $@`
85 85 @$(CXX) -DNDEBUG=1 $(CXXFLAGS) -o $@ -c $<
86 86  
87   -$(BINDIR)/java/$(PACKAGE)/%.class: %.java
  87 +$(BINDIR)/java/$(PACKAGE_NAME)/%.class: %.java
88 88 @echo $< ...
89 89 @mkdir -p `dirname $@`
90   - $(JAVAC) -encoding utf-8 -cp $(BINDIR)/java -sourcepath $(PWD) -d $(BINDIR)/java $^
  90 + $(JAVAC) -encoding utf-8 -d $(BINDIR)/java $^
91 91  
92 92 #---[ Release targets ]--------------------------------------------------------
93 93  
... ... @@ -117,10 +117,10 @@ run: $(BINDBG)/jni3270@DLLEXT@
117 117  
118 118 #---[ Misc targets ]-----------------------------------------------------------
119 119  
120   -jni3270.h: $(BINDIR)/java/$(PACKAGE)/terminal.class
  120 +jni3270.h: $(BINDIR)/java/$(PACKAGE_NAME)/terminal.class
121 121 @echo $< ...
122 122 @mkdir -p `dirname $@`
123   - @$(JAVAH) -o $@ -classpath $(BINDIR)/java $(PACKAGE).terminal
  123 + $(JAVAH) -o $@ -classpath $(BINDIR)/java $(PACKAGE_NAME).terminal
124 124  
125 125  
126 126 install: $(BINRLS)/jni3270@DLLEXT@
... ...
src/java/info.cc 0 → 100644
... ... @@ -0,0 +1,41 @@
  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 info.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 "private.h"
  31 +
  32 +
  33 +/*---[ Implement ]----------------------------------------------------------------------------------*/
  34 +
  35 +JNIEXPORT jstring JNICALL Java_pw3270_terminal_getVersion (JNIEnv *env, jobject obj) {
  36 +
  37 +}
  38 +
  39 +JNIEXPORT jstring JNICALL Java_pw3270_terminal_getRevision(JNIEnv *, jobject) {
  40 +
  41 +}
... ...
src/java/jni3270.cbp
... ... @@ -32,8 +32,13 @@
32 32 <Compiler>
33 33 <Add option="-Wall" />
34 34 </Compiler>
  35 + <Unit filename="../../configure.ac" />
  36 + <Unit filename="../include/pw3270/class.h" />
35 37 <Unit filename="Makefile.in" />
  38 + <Unit filename="info.cc" />
36 39 <Unit filename="jni3270.h" />
  40 + <Unit filename="main.cc" />
  41 + <Unit filename="private.h" />
37 42 <Unit filename="terminal.java" />
38 43 <Extensions>
39 44 <code_completion />
... ...
src/java/main.cc 0 → 100644
... ... @@ -0,0 +1,34 @@
  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 main.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 "private.h"
  31 +
  32 +/*---[ Implement ]----------------------------------------------------------------------------------*/
  33 +
  34 +
... ...
src/java/private.h 0 → 100644
... ... @@ -0,0 +1,37 @@
  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 private.h 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 +#ifndef PRIVATE_H_INCLUDED
  30 +
  31 + #define PRIVATE_H_INCLUDED
  32 +
  33 + #include "jni3270.h"
  34 +
  35 +
  36 +
  37 +#endif // PRIVATE_H_INCLUDED
... ...
src/java/terminal.java
... ... @@ -24,6 +24,9 @@
24 24 *
25 25 * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
26 26 * erico.mendonca@gmail.com (Erico Mascarenhas 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)
27 30 *
28 31 */
29 32  
... ... @@ -31,47 +34,17 @@ package pw3270;
31 34  
32 35 public class terminal
33 36 {
34   - /* Get library/extension info */
35   - public native String getVersion();
36   - public native String getRevision();
  37 + // Init/Deinit
  38 + private native int init();
  39 + private native int deinit();
37 40  
38   - /* Connect/Disconnect */
39   - public native int Connect( String uri, int timeout );
40   - public native int Disconnect();
41   - public native int getConnectionState();
42   -
43   - /* Get Status */
44   - public native boolean isConnected();
45   - public native boolean isTerminalReady();
46   - public native String getEncoding();
47   -
48   - /* Get/Query Screen contents */
49   - public native String getScreenContentAt(int row, int col, int size);
50   - public native String getScreenContent();
51   - public native boolean queryStringAt(int row, int col, String key);
52   -
53   - /* Actions/Screen changes */
54   - public native int sendEnterKey();
55   - public native int setStringAt(int row, int col, String str);
56   - public native int sendPFKey(int key);
57   -
58   - /* Waiting */
59   - public native int wait(int seconds);
60   - public native int waitForTerminalReady(int timeout);
61   - public native int waitForStringAt(int row, int col, String key, int timeout);
62   -
63   - /* Non-native methods */
64   - public int Connect(String hostinfo)
65   - {
66   - int rc = Connect(hostinfo,10);
67   - if(rc != 0)
68   - return rc;
69   - return waitForTerminalReady(10);
70   - }
  41 + // Get library/extension info
  42 + public native String get_version();
  43 + public native String get_revision();
71 44  
72 45 static
73 46 {
74   - System.loadLibrary("jni3270");
  47 + System.loadLibrary("pw3270_jni");
75 48 }
76 49  
77 50 };
... ...