Commit d7deba33e201306a962c3a7c817da764d288acd3

Authored by perry.werneck@gmail.com
1 parent 16dccf89

Implementando IPC rexx para windows

src/include/pw3270/ipcpackets.h
... ... @@ -48,6 +48,8 @@
48 48 HLLAPI_PACKET_EMULATE_INPUT,
49 49 HLLAPI_PACKET_ERASE_EOF,
50 50 HLLAPI_PACKET_PRINT,
  51 + HLLAPI_PACKET_GET_CSTATE,
  52 + HLLAPI_PACKET_IS_READY,
51 53  
52 54 HLLAPI_PACKET_INVALID
53 55  
... ...
src/plugins/hllapi/pluginmain.c
... ... @@ -191,6 +191,10 @@
191 191 send_result(source,lib3270_in_tn3270e(lib3270_get_default_session_handle()));
192 192 break;
193 193  
  194 + case HLLAPI_PACKET_IS_READY:
  195 + send_result(source,lib3270_is_ready(lib3270_get_default_session_handle()));
  196 + break;
  197 +
194 198 case HLLAPI_PACKET_ENTER:
195 199 send_result(source,lib3270_enter(lib3270_get_default_session_handle()));
196 200 break;
... ... @@ -267,6 +271,9 @@
267 271 send_result(source,lib3270_get_cursor_address(lib3270_get_default_session_handle()));
268 272 break;
269 273  
  274 + case HLLAPI_PACKET_GET_CSTATE:
  275 + send_result(source,lib3270_get_connection_state(lib3270_get_default_session_handle()));
  276 + break;
270 277  
271 278 default:
272 279 send_result(source, EINVAL);
... ...
src/plugins/rx3270/remote.cc
... ... @@ -118,7 +118,6 @@ DBusMessage * remote::create_message(const char *method)
118 118 }
119 119 #endif // HAVE_DBUS
120 120  
121   -
122 121 rx3270 * rx3270::create_remote(const char *name)
123 122 {
124 123 return new remote(name);
... ... @@ -419,7 +418,11 @@ LIB3270_CSTATE remote::get_cstate(void)
419 418  
420 419 if(hPipe != INVALID_HANDLE_VALUE)
421 420 {
422   - #warning Implementar
  421 + static const struct hllapi_packet_query query = { HLLAPI_PACKET_GET_CSTATE };
  422 + struct hllapi_packet_result response;
  423 + DWORD cbSize = sizeof(query);
  424 + TransactNamedPipe(hPipe,(LPVOID) &query, cbSize, &response, sizeof(response), &cbSize,NULL);
  425 + return (LIB3270_CSTATE) response.rc;
423 426 }
424 427  
425 428 return (LIB3270_CSTATE) -1;
... ... @@ -541,7 +544,11 @@ bool remote::is_ready(void)
541 544  
542 545 if(hPipe != INVALID_HANDLE_VALUE)
543 546 {
544   - #warning Implementar
  547 + static const struct hllapi_packet_query query = { HLLAPI_PACKET_IS_READY };
  548 + struct hllapi_packet_result response;
  549 + DWORD cbSize = sizeof(query);
  550 + TransactNamedPipe(hPipe,(LPVOID) &query, cbSize, &response, sizeof(response), &cbSize,NULL);
  551 + return response.rc != 0;
545 552 }
546 553  
547 554 #elif defined(HAVE_DBUS)
... ... @@ -792,7 +799,11 @@ int remote::set_cursor_position(int row, int col)
792 799  
793 800 if(hPipe != INVALID_HANDLE_VALUE)
794 801 {
795   - #warning Implementar
  802 + struct hllapi_packet_cursor query = { HLLAPI_PACKET_SET_CURSOR_POSITION, (unsigned short) row, (unsigned short) col };
  803 + struct hllapi_packet_result response;
  804 + DWORD cbSize = sizeof(query);
  805 + TransactNamedPipe(hPipe,(LPVOID) &query, cbSize, &response, sizeof(response), &cbSize,NULL);
  806 + return response.rc != 0;
796 807 }
797 808  
798 809 #elif defined(HAVE_DBUS)
... ...