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