From 6058ed375c612ef6636023d45953635d506b3916 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 14 Apr 2016 16:37:07 -0300 Subject: [PATCH] Melhorando funcionamento da classe java. --- src/classlib/session.cc | 4 +++- src/include/pw3270/class.h | 6 +++++- src/java/getset.cc | 18 ++++++++++++++++++ src/java/terminal.java | 6 ++++++ 4 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/classlib/session.cc b/src/classlib/session.cc index 49001db..706c405 100644 --- a/src/classlib/session.cc +++ b/src/classlib/session.cc @@ -216,7 +216,7 @@ iterate(false); while(time(0) < end) { - trace("Aguardar %d segundos",(int) (end - time(0))); + trace("Aguardar %d segundos por \"%s\" @%d,%d (%s)",(int) (end - time(0)),key,row,col,get_text_at(row,col,strlen(key)).c_str()); int rc = wait_for_ready(end - time(0)); if(rc) { @@ -231,6 +231,8 @@ } + trace("Tela:\n%s\n", ((string) *this).c_str()); + return ETIMEDOUT; } diff --git a/src/include/pw3270/class.h b/src/include/pw3270/class.h index 56f0ce3..dbf3cc8 100644 --- a/src/include/pw3270/class.h +++ b/src/include/pw3270/class.h @@ -173,7 +173,7 @@ virtual int iterate(bool wait = true) = 0; // Get/Set/Test without charset translation - virtual string get_text(int baddr, size_t len) = 0; + virtual string get_text(int baddr = 0, size_t len = 1) = 0; virtual string get_text_at(int row, int col, size_t sz) = 0; virtual int set_text_at(int row, int col, const char *str) = 0; virtual int cmp_text_at(int row, int col, const char *text) = 0; @@ -194,6 +194,10 @@ int wait_for_string_at(int row, int col, const char *key, int timeout); int input_string(const char *str); + inline operator string() { + return get_string(); + } + // Cursor management virtual int set_cursor_position(int row, int col) = 0; virtual int set_cursor_addr(int addr) = 0; diff --git a/src/java/getset.cc b/src/java/getset.cc index d389ea7..103bf3d 100644 --- a/src/java/getset.cc +++ b/src/java/getset.cc @@ -35,6 +35,24 @@ using namespace std; using namespace PW3270_NAMESPACE; +JNIEXPORT jstring JNICALL Java_pw3270_terminal_toString(JNIEnv *env, jobject obj) { + + string str; + + try { + + str = java::getHandle(env,obj)->get_string(); + + } catch(std::exception &e) { + + env->ThrowNew(env->FindClass("java/lang/Exception"), e.what()); + + } + + return env->NewStringUTF(str.c_str()); + +} + JNIEXPORT jstring JNICALL Java_pw3270_terminal_get_1string(JNIEnv *env, jobject obj, jint baddr, jint len) { string str; diff --git a/src/java/terminal.java b/src/java/terminal.java index 085777e..8140a74 100644 --- a/src/java/terminal.java +++ b/src/java/terminal.java @@ -434,6 +434,12 @@ public class terminal public native void log(String msg); /** + * Get Screen contents. + * + */ + public native String toString(); + + /** * Get connection SSL state * * @return State of SSL connection (0 = Unsafe, 1 = Valid CA, 2 = Invalid CA or self-signed, 3 = Negotiating, 4 = Undefined) -- libgit2 0.21.2