Commit 2f61dc6f0029038684306d2efaa7f0229e5c7272

Authored by perry.werneck@gmail.com
1 parent 20153f18

Implementando método is protected

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