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,6 +48,8 @@
48 HLLAPI_PACKET_EMULATE_INPUT, 48 HLLAPI_PACKET_EMULATE_INPUT,
49 HLLAPI_PACKET_ERASE_EOF, 49 HLLAPI_PACKET_ERASE_EOF,
50 HLLAPI_PACKET_PRINT, 50 HLLAPI_PACKET_PRINT,
  51 + HLLAPI_PACKET_GET_CSTATE,
  52 + HLLAPI_PACKET_IS_READY,
51 53
52 HLLAPI_PACKET_INVALID 54 HLLAPI_PACKET_INVALID
53 55
src/plugins/hllapi/pluginmain.c
@@ -191,6 +191,10 @@ @@ -191,6 +191,10 @@
191 send_result(source,lib3270_in_tn3270e(lib3270_get_default_session_handle())); 191 send_result(source,lib3270_in_tn3270e(lib3270_get_default_session_handle()));
192 break; 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 case HLLAPI_PACKET_ENTER: 198 case HLLAPI_PACKET_ENTER:
195 send_result(source,lib3270_enter(lib3270_get_default_session_handle())); 199 send_result(source,lib3270_enter(lib3270_get_default_session_handle()));
196 break; 200 break;
@@ -267,6 +271,9 @@ @@ -267,6 +271,9 @@
267 send_result(source,lib3270_get_cursor_address(lib3270_get_default_session_handle())); 271 send_result(source,lib3270_get_cursor_address(lib3270_get_default_session_handle()));
268 break; 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 default: 278 default:
272 send_result(source, EINVAL); 279 send_result(source, EINVAL);
src/plugins/rx3270/remote.cc
@@ -118,7 +118,6 @@ DBusMessage * remote::create_message(const char *method) @@ -118,7 +118,6 @@ DBusMessage * remote::create_message(const char *method)
118 } 118 }
119 #endif // HAVE_DBUS 119 #endif // HAVE_DBUS
120 120
121 -  
122 rx3270 * rx3270::create_remote(const char *name) 121 rx3270 * rx3270::create_remote(const char *name)
123 { 122 {
124 return new remote(name); 123 return new remote(name);
@@ -419,7 +418,11 @@ LIB3270_CSTATE remote::get_cstate(void) @@ -419,7 +418,11 @@ LIB3270_CSTATE remote::get_cstate(void)
419 418
420 if(hPipe != INVALID_HANDLE_VALUE) 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 return (LIB3270_CSTATE) -1; 428 return (LIB3270_CSTATE) -1;
@@ -541,7 +544,11 @@ bool remote::is_ready(void) @@ -541,7 +544,11 @@ bool remote::is_ready(void)
541 544
542 if(hPipe != INVALID_HANDLE_VALUE) 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 #elif defined(HAVE_DBUS) 554 #elif defined(HAVE_DBUS)
@@ -792,7 +799,11 @@ int remote::set_cursor_position(int row, int col) @@ -792,7 +799,11 @@ int remote::set_cursor_position(int row, int col)
792 799
793 if(hPipe != INVALID_HANDLE_VALUE) 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 #elif defined(HAVE_DBUS) 809 #elif defined(HAVE_DBUS)