Commit 8e0eafe5842be42647f7c03d12e900da9bcccb11

Authored by perry.werneck@gmail.com
1 parent 70785486

Implementando objeto rexx

@@ -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