Commit d7deba33e201306a962c3a7c817da764d288acd3
1 parent
16dccf89
Exists in
master
and in
5 other branches
Implementando IPC rexx para windows
Showing
3 changed files
with
24 additions
and
4 deletions
Show diff stats
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) |