Commit 8e0eafe5842be42647f7c03d12e900da9bcccb11
1 parent
70785486
Exists in
master
and in
5 other branches
Implementando objeto rexx
Showing
5 changed files
with
157 additions
and
5 deletions
Show diff stats
pw3270.cbp
| @@ -287,6 +287,8 @@ | @@ -287,6 +287,8 @@ | ||
| 287 | <Unit filename="src/plugins/rx3270/Makefile.in" /> | 287 | <Unit filename="src/plugins/rx3270/Makefile.in" /> |
| 288 | <Unit filename="src/plugins/rx3270/local.cc" /> | 288 | <Unit filename="src/plugins/rx3270/local.cc" /> |
| 289 | <Unit filename="src/plugins/rx3270/pluginmain.cc" /> | 289 | <Unit filename="src/plugins/rx3270/pluginmain.cc" /> |
| 290 | + <Unit filename="src/plugins/rx3270/rexx_methods.cc" /> | ||
| 291 | + <Unit filename="src/plugins/rx3270/rx3270.cls" /> | ||
| 290 | <Unit filename="src/plugins/rx3270/rx3270.h" /> | 292 | <Unit filename="src/plugins/rx3270/rx3270.h" /> |
| 291 | <Unit filename="src/plugins/rx3270/rxapimain.cc" /> | 293 | <Unit filename="src/plugins/rx3270/rxapimain.cc" /> |
| 292 | <Unit filename="src/plugins/rx3270/text.cc" /> | 294 | <Unit filename="src/plugins/rx3270/text.cc" /> |
src/plugins/rx3270/rexx_methods.cc
| @@ -74,3 +74,117 @@ RexxMethod2(int, rx3270_method_sleep, CSELF, sessionPtr, int, seconds) | @@ -74,3 +74,117 @@ RexxMethod2(int, rx3270_method_sleep, CSELF, sessionPtr, int, seconds) | ||
| 74 | return -1; | 74 | return -1; |
| 75 | return hSession->wait(seconds); | 75 | return hSession->wait(seconds); |
| 76 | } | 76 | } |
| 77 | + | ||
| 78 | +RexxMethod1(int, rx3270_method_is_connected, CSELF, sessionPtr) | ||
| 79 | +{ | ||
| 80 | + rx3270 *hSession = (rx3270 *) sessionPtr; | ||
| 81 | + if(!hSession) | ||
| 82 | + return -1; | ||
| 83 | + return hSession->is_connected(); | ||
| 84 | +} | ||
| 85 | + | ||
| 86 | +RexxMethod1(int, rx3270_method_is_ready, CSELF, sessionPtr) | ||
| 87 | +{ | ||
| 88 | + rx3270 *hSession = (rx3270 *) sessionPtr; | ||
| 89 | + if(!hSession) | ||
| 90 | + return -1; | ||
| 91 | + return hSession->is_ready(); | ||
| 92 | +} | ||
| 93 | + | ||
| 94 | +RexxMethod2(int, rx3270_method_wait_for_ready, CSELF, sessionPtr, int, seconds) | ||
| 95 | +{ | ||
| 96 | + rx3270 *hSession = (rx3270 *) sessionPtr; | ||
| 97 | + if(!hSession) | ||
| 98 | + return -1; | ||
| 99 | + return hSession->wait_for_ready(seconds); | ||
| 100 | +} | ||
| 101 | + | ||
| 102 | +RexxMethod3(int, rx3270_method_set_cursor, CSELF, sessionPtr, int, row, int, col) | ||
| 103 | +{ | ||
| 104 | + rx3270 *hSession = (rx3270 *) sessionPtr; | ||
| 105 | + if(!hSession) | ||
| 106 | + return -1; | ||
| 107 | + return hSession->set_cursor_position(row,col); | ||
| 108 | +} | ||
| 109 | + | ||
| 110 | +RexxMethod1(int, rx3270_method_enter, CSELF, sessionPtr) | ||
| 111 | +{ | ||
| 112 | + rx3270 *hSession = (rx3270 *) sessionPtr; | ||
| 113 | + if(!hSession) | ||
| 114 | + return -1; | ||
| 115 | + return hSession->enter(); | ||
| 116 | +} | ||
| 117 | + | ||
| 118 | +RexxMethod2(int, rx3270_method_pfkey, CSELF, sessionPtr, int, key) | ||
| 119 | +{ | ||
| 120 | + rx3270 *hSession = (rx3270 *) sessionPtr; | ||
| 121 | + if(!hSession) | ||
| 122 | + return -1; | ||
| 123 | + return hSession->pfkey(key); | ||
| 124 | +} | ||
| 125 | + | ||
| 126 | +RexxMethod2(int, rx3270_method_pakey, CSELF, sessionPtr, int, key) | ||
| 127 | +{ | ||
| 128 | + rx3270 *hSession = (rx3270 *) sessionPtr; | ||
| 129 | + if(!hSession) | ||
| 130 | + return -1; | ||
| 131 | + return hSession->pakey(key); | ||
| 132 | +} | ||
| 133 | + | ||
| 134 | +RexxMethod4(RexxStringObject, rx3270_method_get_text_at, CSELF, sessionPtr, int, row, int, col, int, sz) | ||
| 135 | +{ | ||
| 136 | + rx3270 * session = (rx3270 *) sessionPtr; | ||
| 137 | + | ||
| 138 | + if(session) | ||
| 139 | + { | ||
| 140 | + char * str = session->get_text_at(row,col,sz); | ||
| 141 | + | ||
| 142 | + if(str) | ||
| 143 | + { | ||
| 144 | + char * text = session->get_local_string(str); | ||
| 145 | + RexxStringObject ret = context->String((CSTRING) text); | ||
| 146 | + free(str); | ||
| 147 | + free(text); | ||
| 148 | + return ret; | ||
| 149 | + } | ||
| 150 | + } | ||
| 151 | + | ||
| 152 | + return context->String(""); | ||
| 153 | +} | ||
| 154 | + | ||
| 155 | + | ||
| 156 | +RexxMethod4(int, rx3270_method_set_text_at, CSELF, sessionPtr, int, row, int, col, CSTRING, text) | ||
| 157 | +{ | ||
| 158 | + rx3270 * session = (rx3270 *) sessionPtr; | ||
| 159 | + | ||
| 160 | + if(session) | ||
| 161 | + { | ||
| 162 | + char * str = session->get_3270_string(text); | ||
| 163 | + int rc; | ||
| 164 | + rc = session->set_text_at(row,col,str); | ||
| 165 | + free(str); | ||
| 166 | + return rc; | ||
| 167 | + } | ||
| 168 | + return -1; | ||
| 169 | +} | ||
| 170 | + | ||
| 171 | +RexxMethod4(int, rx3270_method_cmp_text_at, CSELF, sessionPtr, int, row, int, col, CSTRING, key) | ||
| 172 | +{ | ||
| 173 | + int rc = 0; | ||
| 174 | + rx3270 * session = (rx3270 *) sessionPtr; | ||
| 175 | + | ||
| 176 | + if(session) | ||
| 177 | + { | ||
| 178 | + char * str = session->get_text_at(row,col,strlen(key)); | ||
| 179 | + if(str) | ||
| 180 | + { | ||
| 181 | + char * text = session->get_3270_string(key); | ||
| 182 | + rc = strcasecmp(str,text); | ||
| 183 | + free(text); | ||
| 184 | + } | ||
| 185 | + free(str); | ||
| 186 | + } | ||
| 187 | + | ||
| 188 | + return rc; | ||
| 189 | +} | ||
| 190 | + |
src/plugins/rx3270/rx3270.cls
| @@ -42,3 +42,18 @@ | @@ -42,3 +42,18 @@ | ||
| 42 | 42 | ||
| 43 | ::METHOD SLEEP EXTERNAL "LIBRARY rx3270 rx3270_method_sleep" | 43 | ::METHOD SLEEP EXTERNAL "LIBRARY rx3270 rx3270_method_sleep" |
| 44 | 44 | ||
| 45 | +::METHOD CONNECTED EXTERNAL "LIBRARY rx3270 rx3270_method_is_connected" | ||
| 46 | +::METHOD READY EXTERNAL "LIBRARY rx3270 rx3270_method_is_ready" | ||
| 47 | + | ||
| 48 | +::METHOD WAITFORREADY EXTERNAL "LIBRARY rx3270 rx3270_method_wait_for_ready" | ||
| 49 | + | ||
| 50 | +::METHOD SETCURSOR EXTERNAL "LIBRARY rx3270 rx3270_method_set_cursor" | ||
| 51 | + | ||
| 52 | +::METHOD ENTER EXTERNAL "LIBRARY rx3270 rx3270_method_enter" | ||
| 53 | +::METHOD PFKEY EXTERNAL "LIBRARY rx3270 rx3270_method_pfkey" | ||
| 54 | +::METHOD PFKEY EXTERNAL "LIBRARY rx3270 rx3270_method_pakey" | ||
| 55 | + | ||
| 56 | +::METHOD GETTEXTAT EXTERNAL "LIBRARY rx3270 rx3270_method_get_text_at" | ||
| 57 | +::METHOD SETTEXTAT EXTERNAL "LIBRARY rx3270 rx3270_method_set_text_at" | ||
| 58 | +::METHOD CMPTEXTAT EXTERNAL "LIBRARY rx3270 rx3270_method_cmp_text_at" | ||
| 59 | + |
src/plugins/rx3270/rx3270.h
| @@ -75,6 +75,16 @@ | @@ -75,6 +75,16 @@ | ||
| 75 | REXX_METHOD_PROTOTYPE(rx3270_method_connect); | 75 | REXX_METHOD_PROTOTYPE(rx3270_method_connect); |
| 76 | REXX_METHOD_PROTOTYPE(rx3270_method_disconnect); | 76 | REXX_METHOD_PROTOTYPE(rx3270_method_disconnect); |
| 77 | REXX_METHOD_PROTOTYPE(rx3270_method_sleep); | 77 | REXX_METHOD_PROTOTYPE(rx3270_method_sleep); |
| 78 | + REXX_METHOD_PROTOTYPE(rx3270_method_is_connected); | ||
| 79 | + REXX_METHOD_PROTOTYPE(rx3270_method_is_ready); | ||
| 80 | + REXX_METHOD_PROTOTYPE(rx3270_method_wait_for_ready); | ||
| 81 | + REXX_METHOD_PROTOTYPE(rx3270_method_set_cursor); | ||
| 82 | + REXX_METHOD_PROTOTYPE(rx3270_method_enter); | ||
| 83 | + REXX_METHOD_PROTOTYPE(rx3270_method_pfkey); | ||
| 84 | + REXX_METHOD_PROTOTYPE(rx3270_method_pakey); | ||
| 85 | + REXX_METHOD_PROTOTYPE(rx3270_method_get_text_at); | ||
| 86 | + REXX_METHOD_PROTOTYPE(rx3270_method_set_text_at); | ||
| 87 | + REXX_METHOD_PROTOTYPE(rx3270_method_cmp_text_at); | ||
| 78 | 88 | ||
| 79 | /*---[ Globals ]---------------------------------------------------------------------------------------------*/ | 89 | /*---[ Globals ]---------------------------------------------------------------------------------------------*/ |
| 80 | 90 |
src/plugins/rx3270/rxapimain.cc
| @@ -111,11 +111,22 @@ RexxRoutineEntry rx3270_functions[] = | @@ -111,11 +111,22 @@ RexxRoutineEntry rx3270_functions[] = | ||
| 111 | 111 | ||
| 112 | RexxMethodEntry rx3270_methods[] = | 112 | RexxMethodEntry rx3270_methods[] = |
| 113 | { | 113 | { |
| 114 | - REXX_METHOD(rx3270_method_init, rx3270_method_init ), | ||
| 115 | - REXX_METHOD(rx3270_method_uninit, rx3270_method_uninit ), | ||
| 116 | - REXX_METHOD(rx3270_method_connect, rx3270_method_connect ), | ||
| 117 | - REXX_METHOD(rx3270_method_disconnect, rx3270_method_disconnect ), | ||
| 118 | - REXX_METHOD(rx3270_method_sleep, rx3270_method_sleep ), | 114 | + REXX_METHOD(rx3270_method_init, rx3270_method_init ), |
| 115 | + REXX_METHOD(rx3270_method_uninit, rx3270_method_uninit ), | ||
| 116 | + REXX_METHOD(rx3270_method_connect, rx3270_method_connect ), | ||
| 117 | + REXX_METHOD(rx3270_method_disconnect, rx3270_method_disconnect ), | ||
| 118 | + REXX_METHOD(rx3270_method_sleep, rx3270_method_sleep ), | ||
| 119 | + REXX_METHOD(rx3270_method_is_connected, rx3270_method_is_connected ), | ||
| 120 | + REXX_METHOD(rx3270_method_is_ready, rx3270_method_is_ready ), | ||
| 121 | + REXX_METHOD(rx3270_method_wait_for_ready, rx3270_method_wait_for_ready ), | ||
| 122 | + REXX_METHOD(rx3270_method_set_cursor, rx3270_method_set_cursor ), | ||
| 123 | + REXX_METHOD(rx3270_method_enter, rx3270_method_enter ), | ||
| 124 | + REXX_METHOD(rx3270_method_pfkey, rx3270_method_pfkey ), | ||
| 125 | + REXX_METHOD(rx3270_method_pakey, rx3270_method_pakey ), | ||
| 126 | + REXX_METHOD(rx3270_method_get_text_at, rx3270_method_get_text_at ), | ||
| 127 | + REXX_METHOD(rx3270_method_set_text_at, rx3270_method_set_text_at ), | ||
| 128 | + REXX_METHOD(rx3270_method_cmp_text_at, rx3270_method_cmp_text_at ), | ||
| 129 | + | ||
| 119 | REXX_LAST_METHOD() | 130 | REXX_LAST_METHOD() |
| 120 | }; | 131 | }; |
| 121 | 132 |