Commit 2f61dc6f0029038684306d2efaa7f0229e5c7272
1 parent
20153f18
Exists in
master
and in
5 other branches
Implementando método is protected
Showing
10 changed files
with
65 additions
and
108 deletions
Show diff stats
src/classlib/local.cc
@@ -146,6 +146,7 @@ | @@ -146,6 +146,7 @@ | ||
146 | int (*_get_cursor_addr)(H3270 *h); | 146 | int (*_get_cursor_addr)(H3270 *h); |
147 | int (*_emulate_input)(H3270 *session, const char *s, int len, int pasting); | 147 | int (*_emulate_input)(H3270 *session, const char *s, int len, int pasting); |
148 | int (*_get_next_unprotected)(H3270 *hSession, int baddr0); | 148 | int (*_get_next_unprotected)(H3270 *hSession, int baddr0); |
149 | + int (*_get_is_protected)(H3270 *hSession, int baddr); | ||
149 | void (*_popup_va)(H3270 *session, LIB3270_NOTIFY id , const char *title, const char *message, const char *fmt, va_list); | 150 | void (*_popup_va)(H3270 *session, LIB3270_NOTIFY id , const char *title, const char *message, const char *fmt, va_list); |
150 | void * (*_free)(void *); | 151 | void * (*_free)(void *); |
151 | const char * (*_get_display_charset)(H3270 *hSession); | 152 | const char * (*_get_display_charset)(H3270 *hSession); |
@@ -204,6 +205,7 @@ | @@ -204,6 +205,7 @@ | ||
204 | { (void **) & _get_cursor_addr, "lib3270_get_cursor_address" }, | 205 | { (void **) & _get_cursor_addr, "lib3270_get_cursor_address" }, |
205 | { (void **) & _emulate_input, "lib3270_emulate_input" }, | 206 | { (void **) & _emulate_input, "lib3270_emulate_input" }, |
206 | { (void **) & _get_next_unprotected, "lib3270_get_next_unprotected" }, | 207 | { (void **) & _get_next_unprotected, "lib3270_get_next_unprotected" }, |
208 | + { (void **) & _get_is_protected, "lib3270_get_is_protected" }, | ||
207 | { (void **) & _popup_va, "lib3270_popup_va" }, | 209 | { (void **) & _popup_va, "lib3270_popup_va" }, |
208 | { (void **) & _free, "lib3270_free" }, | 210 | { (void **) & _free, "lib3270_free" }, |
209 | { (void **) & _get_display_charset, "lib3270_get_display_charset" }, | 211 | { (void **) & _get_display_charset, "lib3270_get_display_charset" }, |
@@ -394,6 +396,11 @@ | @@ -394,6 +396,11 @@ | ||
394 | return _get_next_unprotected(hSession,baddr); | 396 | return _get_next_unprotected(hSession,baddr); |
395 | } | 397 | } |
396 | 398 | ||
399 | + int get_is_protected(int baddr) | ||
400 | + { | ||
401 | + return _get_is_protected(hSession,baddr); | ||
402 | + } | ||
403 | + | ||
397 | int popup_dialog(LIB3270_NOTIFY id , const char *title, const char *message, const char *fmt, ...) | 404 | int popup_dialog(LIB3270_NOTIFY id , const char *title, const char *message, const char *fmt, ...) |
398 | { | 405 | { |
399 | va_list args; | 406 | va_list args; |
src/classlib/remote.cc
@@ -1228,6 +1228,36 @@ | @@ -1228,6 +1228,36 @@ | ||
1228 | 1228 | ||
1229 | } | 1229 | } |
1230 | 1230 | ||
1231 | + int get_is_protected(int baddr) | ||
1232 | + { | ||
1233 | +#if defined(WIN32) | ||
1234 | + | ||
1235 | + struct hllapi_packet_addr query = { HLLAPI_PACKET_IS_PROTECTED, (unsigned short) baddr }; | ||
1236 | + | ||
1237 | + return query_intval((void *) &query, sizeof(query)); | ||
1238 | + | ||
1239 | +#elif defined(HAVE_DBUS) | ||
1240 | + | ||
1241 | + dbus_int32_t k = (dbus_int32_t) baddr; | ||
1242 | + | ||
1243 | + DBusMessage * msg = create_message("getIsProtected"); | ||
1244 | + if(msg) | ||
1245 | + { | ||
1246 | + dbus_message_append_args(msg, DBUS_TYPE_INT32, &k, DBUS_TYPE_INVALID); | ||
1247 | + return get_intval(call(msg)); | ||
1248 | + } | ||
1249 | + | ||
1250 | + return -1; | ||
1251 | + | ||
1252 | +#else | ||
1253 | + | ||
1254 | + return -1; | ||
1255 | + | ||
1256 | +#endif | ||
1257 | + | ||
1258 | + } | ||
1259 | + | ||
1260 | + | ||
1231 | int set_host_charset(const char *charset) | 1261 | int set_host_charset(const char *charset) |
1232 | { | 1262 | { |
1233 | #if defined(WIN32) | 1263 | #if defined(WIN32) |
src/include/pw3270/class.h
@@ -220,6 +220,7 @@ | @@ -220,6 +220,7 @@ | ||
220 | virtual int get_field_start(int baddr = -1) = 0; | 220 | virtual int get_field_start(int baddr = -1) = 0; |
221 | virtual int get_field_len(int baddr = -1) = 0; | 221 | virtual int get_field_len(int baddr = -1) = 0; |
222 | virtual int get_next_unprotected(int baddr = -1) = 0; | 222 | virtual int get_next_unprotected(int baddr = -1) = 0; |
223 | + virtual int get_is_protected(int baddr = -1) = 0; | ||
223 | 224 | ||
224 | // Clipboard management | 225 | // Clipboard management |
225 | virtual int set_copy(const char *text); | 226 | virtual int set_copy(const char *text); |
src/include/pw3270/ipcpackets.h
@@ -58,6 +58,7 @@ | @@ -58,6 +58,7 @@ | ||
58 | HLLAPI_PACKET_FIELD_START, | 58 | HLLAPI_PACKET_FIELD_START, |
59 | HLLAPI_PACKET_FIELD_LEN, | 59 | HLLAPI_PACKET_FIELD_LEN, |
60 | HLLAPI_PACKET_NEXT_UNPROTECTED, | 60 | HLLAPI_PACKET_NEXT_UNPROTECTED, |
61 | + HLLAPI_PACKET_IS_PROTECTED, | ||
61 | HLLAPI_PACKET_QUIT, | 62 | HLLAPI_PACKET_QUIT, |
62 | 63 | ||
63 | HLLAPI_PACKET_SET_HOST_CHARSET, | 64 | HLLAPI_PACKET_SET_HOST_CHARSET, |
src/java/plugin.cc
@@ -234,6 +234,10 @@ | @@ -234,6 +234,10 @@ | ||
234 | return lib3270_get_next_unprotected(hSession,baddr); | 234 | return lib3270_get_next_unprotected(hSession,baddr); |
235 | } | 235 | } |
236 | 236 | ||
237 | + int get_is_protected(int baddr = -1) { | ||
238 | + return lib3270_is_protected(hSession,baddr); | ||
239 | + } | ||
240 | + | ||
237 | int set_copy(const char *text) { | 241 | int set_copy(const char *text) { |
238 | v3270_set_copy(GTK_WIDGET(lib3270_get_user_data(hSession)),text); | 242 | v3270_set_copy(GTK_WIDGET(lib3270_get_user_data(hSession)),text); |
239 | return 0; | 243 | return 0; |
src/java/terminal.java
@@ -306,6 +306,16 @@ public class terminal | @@ -306,6 +306,16 @@ public class terminal | ||
306 | public native int get_next_unprotected(int baddr); | 306 | public native int get_next_unprotected(int baddr); |
307 | 307 | ||
308 | /** | 308 | /** |
309 | + * Check if the address is protected. | ||
310 | + * | ||
311 | + * @param baddr Field address. | ||
312 | + * | ||
313 | + * @return Protect state. | ||
314 | + * | ||
315 | + */ | ||
316 | + public native int get_is_protected(int baddr); | ||
317 | + | ||
318 | + /** | ||
309 | * Get next field address. | 319 | * Get next field address. |
310 | * | 320 | * |
311 | * @return Address of the next field. | 321 | * @return Address of the next field. |
src/plugins/rx3270/pluginmain.cc
@@ -126,6 +126,7 @@ | @@ -126,6 +126,7 @@ | ||
126 | int get_field_start(int baddr = -1); | 126 | int get_field_start(int baddr = -1); |
127 | int get_field_len(int baddr = -1); | 127 | int get_field_len(int baddr = -1); |
128 | int get_next_unprotected(int baddr = -1); | 128 | int get_next_unprotected(int baddr = -1); |
129 | + int get_is_protected(int baddr = -1); | ||
129 | 130 | ||
130 | int set_copy(const char *text); | 131 | int set_copy(const char *text); |
131 | string get_copy(void); | 132 | string get_copy(void); |
src/plugins/rx3270/rexx_methods.cc
@@ -465,6 +465,15 @@ RexxMethod2(int, rx3270_method_get_next_unprotected, CSELF, sessionPtr, OPTIONAL | @@ -465,6 +465,15 @@ RexxMethod2(int, rx3270_method_get_next_unprotected, CSELF, sessionPtr, OPTIONAL | ||
465 | return baddr; | 465 | return baddr; |
466 | } | 466 | } |
467 | 467 | ||
468 | +RexxMethod2(int, rx3270_method_get_is_protected, CSELF, sessionPtr, OPTIONAL_int, baddr) | ||
469 | +{ | ||
470 | + session *hSession = (session *) sessionPtr; | ||
471 | + if(!hSession) | ||
472 | + return -1; | ||
473 | + | ||
474 | + return hSession->get_is_protected(baddr); | ||
475 | +} | ||
476 | + | ||
468 | RexxMethod1(RexxStringObject, rx3270_method_get_selection, CSELF, sessionPtr) | 477 | RexxMethod1(RexxStringObject, rx3270_method_get_selection, CSELF, sessionPtr) |
469 | { | 478 | { |
470 | try | 479 | try |
src/plugins/rx3270/rx3270.cls
@@ -82,6 +82,7 @@ | @@ -82,6 +82,7 @@ | ||
82 | ::METHOD GETFIELDSTART EXTERNAL "LIBRARY rx3270 rx3270_method_get_field_start" | 82 | ::METHOD GETFIELDSTART EXTERNAL "LIBRARY rx3270 rx3270_method_get_field_start" |
83 | ::METHOD GETFIELDLEN EXTERNAL "LIBRARY rx3270 rx3270_method_get_field_len" | 83 | ::METHOD GETFIELDLEN EXTERNAL "LIBRARY rx3270 rx3270_method_get_field_len" |
84 | ::METHOD GETNEXTUNPROTECTED EXTERNAL "LIBRARY rx3270 rx3270_method_get_next_unprotected" | 84 | ::METHOD GETNEXTUNPROTECTED EXTERNAL "LIBRARY rx3270 rx3270_method_get_next_unprotected" |
85 | +::METHOD GETISPROTECTED EXTERNAL "LIBRARY rx3270 rx3270_method_get_is_protected" | ||
85 | 86 | ||
86 | ::METHOD GETSELECTION EXTERNAL "LIBRARY rx3270 rx3270_method_get_selection" | 87 | ::METHOD GETSELECTION EXTERNAL "LIBRARY rx3270 rx3270_method_get_selection" |
87 | ::METHOD SETSELECTION EXTERNAL "LIBRARY rx3270 rx3270_method_set_selection" | 88 | ::METHOD SETSELECTION EXTERNAL "LIBRARY rx3270 rx3270_method_set_selection" |
src/plugins/rx3270/rx3270.h
@@ -124,6 +124,7 @@ | @@ -124,6 +124,7 @@ | ||
124 | REXX_METHOD_PROTOTYPE(rx3270_method_get_field_len); | 124 | REXX_METHOD_PROTOTYPE(rx3270_method_get_field_len); |
125 | REXX_METHOD_PROTOTYPE(rx3270_method_get_field_start); | 125 | REXX_METHOD_PROTOTYPE(rx3270_method_get_field_start); |
126 | REXX_METHOD_PROTOTYPE(rx3270_method_get_next_unprotected); | 126 | REXX_METHOD_PROTOTYPE(rx3270_method_get_next_unprotected); |
127 | + REXX_METHOD_PROTOTYPE(rx3270_method_get_is_protected); | ||
127 | REXX_METHOD_PROTOTYPE(rx3270_method_get_selection); | 128 | REXX_METHOD_PROTOTYPE(rx3270_method_get_selection); |
128 | REXX_METHOD_PROTOTYPE(rx3270_method_set_selection); | 129 | REXX_METHOD_PROTOTYPE(rx3270_method_set_selection); |
129 | REXX_METHOD_PROTOTYPE(rx3270_method_get_clipboard); | 130 | REXX_METHOD_PROTOTYPE(rx3270_method_get_clipboard); |
@@ -141,114 +142,6 @@ | @@ -141,114 +142,6 @@ | ||
141 | 142 | ||
142 | /*--[ 3270 Session ]-----------------------------------------------------------------------------------------*/ | 143 | /*--[ 3270 Session ]-----------------------------------------------------------------------------------------*/ |
143 | 144 | ||
144 | -/* | ||
145 | -#if defined (HAVE_GNUC_VISIBILITY) | ||
146 | - class __attribute__((visibility("default"))) rx3270 | ||
147 | -#elif defined(WIN32) | ||
148 | - class __declspec (dllexport) rx3270 | ||
149 | -#else | ||
150 | - #error NOT_IMPLEMENTED | ||
151 | -#endif | ||
152 | - { | ||
153 | - | ||
154 | - protected: | ||
155 | -#ifdef HAVE_ICONV | ||
156 | - iconv_t conv2Local; | ||
157 | - iconv_t conv2Host; | ||
158 | -#endif | ||
159 | - | ||
160 | - public: | ||
161 | - | ||
162 | - class exception : public std::exception | ||
163 | - { | ||
164 | - public: | ||
165 | - exception(int code, const char *fmt, ...); | ||
166 | - exception(const char *fmt, ...); | ||
167 | - | ||
168 | - const char * getMessage(void); | ||
169 | - void logMessage(void); | ||
170 | - | ||
171 | - void RaiseException(RexxMethodContext *context); | ||
172 | - void RaiseException(RexxCallContext *context); | ||
173 | - | ||
174 | - virtual const char * what() const throw(); | ||
175 | - | ||
176 | - private: | ||
177 | - int code; | ||
178 | - char msg[4096]; | ||
179 | - | ||
180 | - }; | ||
181 | - | ||
182 | - rx3270(const char *local = REXX_DEFAULT_CHARSET, const char *remote = "ISO-8859-1"); | ||
183 | - | ||
184 | - virtual ~rx3270(); | ||
185 | - | ||
186 | - virtual void free(void *ptr); | ||
187 | - | ||
188 | - | ||
189 | - static rx3270 * create(const char *name = NULL); | ||
190 | - static rx3270 * create_remote(const char *name); | ||
191 | - static rx3270 * create_local(void); | ||
192 | - static rx3270 * get_default(void); | ||
193 | - | ||
194 | - static void set_plugin(rx3270 * (*factory)(const char *name)); | ||
195 | - | ||
196 | - char * get_3270_string(const char *str); | ||
197 | - char * get_local_string(const char *str); | ||
198 | - | ||
199 | - void log(const char *fmt, ...); | ||
200 | - virtual void logva(const char *fmt, va_list arg); | ||
201 | - | ||
202 | - virtual char * get_version(void); | ||
203 | - virtual char * get_revision(void); | ||
204 | - virtual LIB3270_CSTATE get_cstate(void) = 0; | ||
205 | - | ||
206 | - virtual int connect(const char *uri, bool wait = true) = 0; | ||
207 | - virtual int disconnect(void) = 0; | ||
208 | - virtual bool is_connected(void) = 0; | ||
209 | - virtual bool is_ready(void) = 0; | ||
210 | - virtual int iterate(bool wait = true) = 0; | ||
211 | - virtual int wait(int seconds) = 0; | ||
212 | - virtual int wait_for_ready(int seconds) = 0; | ||
213 | - virtual int wait_for_text_at(int row, int col, const char *key, int timeout); | ||
214 | - | ||
215 | - virtual int set_cursor_position(int row, int col) = 0; | ||
216 | - virtual int set_cursor_addr(int addr) = 0; | ||
217 | - virtual int get_cursor_addr(void) = 0; | ||
218 | - | ||
219 | - virtual int set_toggle(LIB3270_TOGGLE ix, bool value) = 0; | ||
220 | - | ||
221 | - virtual int enter(void) = 0; | ||
222 | - virtual int pfkey(int key) = 0; | ||
223 | - virtual int pakey(int key) = 0; | ||
224 | - | ||
225 | - virtual char * get_text_at(int row, int col, size_t sz) = 0; | ||
226 | - virtual char * get_text(int baddr, size_t len) = 0; | ||
227 | - virtual int cmp_text_at(int row, int col, const char *text) = 0; | ||
228 | - virtual int set_text_at(int row, int col, const char *str) = 0; | ||
229 | - virtual int emulate_input(const char *str) = 0; | ||
230 | - | ||
231 | - virtual int get_field_start(int baddr = -1) = 0; | ||
232 | - virtual int get_field_len(int baddr = -1) = 0; | ||
233 | - virtual int get_next_unprotected(int baddr = -1) = 0; | ||
234 | - | ||
235 | - virtual int set_copy(const char *text); | ||
236 | - virtual char * get_copy(void); | ||
237 | - | ||
238 | - virtual char * get_clipboard(void); | ||
239 | - virtual int set_clipboard(const char *text); | ||
240 | - | ||
241 | - virtual int quit(void) = 0; | ||
242 | - | ||
243 | - // Dialogs | ||
244 | - virtual int popup_dialog(LIB3270_NOTIFY id , const char *title, const char *message, const char *fmt, ...); | ||
245 | - virtual char * file_chooser_dialog(GtkFileChooserAction action, const char *title, const char *extension, const char *filename); | ||
246 | - | ||
247 | - }; | ||
248 | - | ||
249 | - rx3270 * create_lib3270_instance(void); | ||
250 | -*/ | ||
251 | - | ||
252 | #ifdef __cplusplus | 145 | #ifdef __cplusplus |
253 | extern "C" { | 146 | extern "C" { |
254 | #endif | 147 | #endif |