Commit 12e3bf678ac462e5d1f209ebbcc1fd001f532a66
1 parent
93ef46b2
Exists in
master
and in
5 other branches
Melhorando objeto dbus
Showing
2 changed files
with
44 additions
and
117 deletions
Show diff stats
src/classlib/remote.cc
... | ... | @@ -229,9 +229,28 @@ |
229 | 229 | |
230 | 230 | int query_intval(const char *method) |
231 | 231 | { |
232 | - if(conn) | |
233 | - return get_intval(call(create_message(method))); | |
234 | - return -1; | |
232 | + return get_intval(call(create_message(method))); | |
233 | + } | |
234 | + | |
235 | + int query_intval(const char *method, int first_arg_type, ...) | |
236 | + { | |
237 | + va_list var_args; | |
238 | + DBusMessage * msg = dbus_message_new_method_call( this->dest, // Destination | |
239 | + this->path, // Path | |
240 | + this->intf, // Interface | |
241 | + method); // method | |
242 | + | |
243 | + if (!msg) | |
244 | + { | |
245 | + throw exception("Error creating DBUS message for method %s",method); | |
246 | + return -1; | |
247 | + } | |
248 | + | |
249 | + va_start(var_args, first_arg_type); | |
250 | + dbus_message_append_args_valist(msg,first_arg_type,var_args); | |
251 | + va_end(var_args); | |
252 | + | |
253 | + return get_intval(call(msg)); | |
235 | 254 | } |
236 | 255 | |
237 | 256 | #else |
... | ... | @@ -412,15 +431,10 @@ |
412 | 431 | |
413 | 432 | trace("%s: Using DBUS name %s",__FUNCTION__,busname); |
414 | 433 | |
415 | - DBusMessage * msg = create_message("setScript"); | |
434 | + const char * id = "r"; | |
435 | + static const dbus_int32_t flag = 1; | |
436 | + query_intval("setScript", DBUS_TYPE_STRING, &id, DBUS_TYPE_INT32, &flag, DBUS_TYPE_INVALID); | |
416 | 437 | |
417 | - if(msg) | |
418 | - { | |
419 | - const char * id = "r"; | |
420 | - static const dbus_int32_t flag = 1; | |
421 | - dbus_message_append_args(msg, DBUS_TYPE_STRING, &id, DBUS_TYPE_INT32, &flag, DBUS_TYPE_INVALID); | |
422 | - get_intval(call(msg)); | |
423 | - } | |
424 | 438 | |
425 | 439 | #else |
426 | 440 | |
... | ... | @@ -440,14 +454,9 @@ |
440 | 454 | |
441 | 455 | try |
442 | 456 | { |
443 | - DBusMessage * msg = create_message("setScript"); | |
444 | - if(msg) | |
445 | - { | |
446 | - const char * id = "r"; | |
447 | - static const dbus_int32_t flag = 0; | |
448 | - dbus_message_append_args(msg, DBUS_TYPE_STRING, &id, DBUS_TYPE_INT32, &flag, DBUS_TYPE_INVALID); | |
449 | - get_intval(call(msg)); | |
450 | - } | |
457 | + const char * id = "r"; | |
458 | + static const dbus_int32_t flag = 0; | |
459 | + query_intval("setScript", DBUS_TYPE_STRING, &id, DBUS_TYPE_INT32, &flag, DBUS_TYPE_INVALID); | |
451 | 460 | } |
452 | 461 | catch(exception e) |
453 | 462 | { |
... | ... | @@ -490,14 +499,7 @@ |
490 | 499 | |
491 | 500 | #elif defined(HAVE_DBUS) |
492 | 501 | |
493 | - int rc; | |
494 | - DBusMessage * msg = create_message("connect"); | |
495 | - if(!msg) | |
496 | - return -1; | |
497 | - | |
498 | - dbus_message_append_args(msg, DBUS_TYPE_STRING, &uri, DBUS_TYPE_INVALID); | |
499 | - | |
500 | - rc = get_intval(call(msg)); | |
502 | + int rc = query_intval("connect", DBUS_TYPE_STRING, &uri, DBUS_TYPE_INVALID); | |
501 | 503 | |
502 | 504 | if(!rc && wait) |
503 | 505 | return wait_for_ready(120); |
... | ... | @@ -537,15 +539,8 @@ |
537 | 539 | { |
538 | 540 | static const dbus_int32_t delay = 2; |
539 | 541 | |
540 | - DBusMessage * msg = create_message("waitForReady"); | |
541 | - int rc; | |
542 | - | |
543 | - if(!msg) | |
544 | - return -1; | |
542 | + int rc = query_intval("waitForReady", DBUS_TYPE_INT32, &delay, DBUS_TYPE_INVALID); | |
545 | 543 | |
546 | - dbus_message_append_args(msg, DBUS_TYPE_INT32, &delay, DBUS_TYPE_INVALID); | |
547 | - | |
548 | - rc = get_intval(call(msg)); | |
549 | 544 | trace("waitForReady exits with rc=%d",rc); |
550 | 545 | |
551 | 546 | if(rc != ETIMEDOUT) |
... | ... | @@ -677,14 +672,7 @@ |
677 | 672 | dbus_int32_t r = (dbus_int32_t) row; |
678 | 673 | dbus_int32_t c = (dbus_int32_t) col; |
679 | 674 | |
680 | - DBusMessage * msg = create_message("setTextAt"); | |
681 | - if(msg) | |
682 | - { | |
683 | - dbus_message_append_args(msg, DBUS_TYPE_INT32, &r, DBUS_TYPE_INT32, &c, DBUS_TYPE_STRING, &str, DBUS_TYPE_INVALID); | |
684 | - return get_intval(call(msg)); | |
685 | - } | |
686 | - | |
687 | - return -1; | |
675 | + return query_intval("setTextAt", DBUS_TYPE_INT32, &r, DBUS_TYPE_INT32, &c, DBUS_TYPE_STRING, &str, DBUS_TYPE_INVALID); | |
688 | 676 | |
689 | 677 | #else |
690 | 678 | |
... | ... | @@ -714,12 +702,7 @@ |
714 | 702 | dbus_int32_t r = (dbus_int32_t) row; |
715 | 703 | dbus_int32_t c = (dbus_int32_t) col; |
716 | 704 | |
717 | - DBusMessage * msg = create_message("cmpTextAt"); | |
718 | - if(msg) | |
719 | - { | |
720 | - dbus_message_append_args(msg, DBUS_TYPE_INT32, &r, DBUS_TYPE_INT32, &c, DBUS_TYPE_STRING, &text, DBUS_TYPE_INVALID); | |
721 | - return get_intval(call(msg)); | |
722 | - } | |
705 | + return query_intval("cmpTextAt", DBUS_TYPE_INT32, &r, DBUS_TYPE_INT32, &c, DBUS_TYPE_STRING, &text, DBUS_TYPE_INVALID); | |
723 | 706 | |
724 | 707 | #endif |
725 | 708 | |
... | ... | @@ -782,12 +765,7 @@ |
782 | 765 | dbus_int32_t r = (dbus_int32_t) row; |
783 | 766 | dbus_int32_t c = (dbus_int32_t) col; |
784 | 767 | |
785 | - DBusMessage * msg = create_message("setCursorAt"); | |
786 | - if(msg) | |
787 | - { | |
788 | - dbus_message_append_args(msg, DBUS_TYPE_INT32, &r, DBUS_TYPE_INT32, &c, DBUS_TYPE_INVALID); | |
789 | - return get_intval(call(msg)); | |
790 | - } | |
768 | + return query_intval("setCursorAt", DBUS_TYPE_INT32, &r, DBUS_TYPE_INT32, &c, DBUS_TYPE_INVALID); | |
791 | 769 | |
792 | 770 | #endif |
793 | 771 | |
... | ... | @@ -806,12 +784,7 @@ |
806 | 784 | |
807 | 785 | dbus_int32_t k = (dbus_int32_t) addr; |
808 | 786 | |
809 | - DBusMessage * msg = create_message("setCursorAddress"); | |
810 | - if(msg) | |
811 | - { | |
812 | - dbus_message_append_args(msg, DBUS_TYPE_INT32, &k, DBUS_TYPE_INVALID); | |
813 | - return get_intval(call(msg)); | |
814 | - } | |
787 | + return query_intval("setCursorAddress", DBUS_TYPE_INT32, &k, DBUS_TYPE_INVALID); | |
815 | 788 | |
816 | 789 | #endif |
817 | 790 | |
... | ... | @@ -841,14 +814,7 @@ |
841 | 814 | |
842 | 815 | dbus_int32_t k = (dbus_int32_t) key; |
843 | 816 | |
844 | - DBusMessage * msg = create_message("pfKey"); | |
845 | - if(msg) | |
846 | - { | |
847 | - dbus_message_append_args(msg, DBUS_TYPE_INT32, &k, DBUS_TYPE_INVALID); | |
848 | - return get_intval(call(msg)); | |
849 | - } | |
850 | - | |
851 | - return -1; | |
817 | + return query_intval("pfKey", DBUS_TYPE_INT32, &k, DBUS_TYPE_INVALID); | |
852 | 818 | |
853 | 819 | #else |
854 | 820 | |
... | ... | @@ -870,13 +836,7 @@ |
870 | 836 | |
871 | 837 | dbus_int32_t k = (dbus_int32_t) key; |
872 | 838 | |
873 | - DBusMessage * msg = create_message("paKey"); | |
874 | - if(msg) | |
875 | - { | |
876 | - dbus_message_append_args(msg, DBUS_TYPE_INT32, &k, DBUS_TYPE_INVALID); | |
877 | - return get_intval(call(msg)); | |
878 | - } | |
879 | - return -1; | |
839 | + return query_intval("paKey", DBUS_TYPE_INT32, &k, DBUS_TYPE_INVALID); | |
880 | 840 | |
881 | 841 | #else |
882 | 842 | |
... | ... | @@ -904,14 +864,7 @@ |
904 | 864 | dbus_int32_t i = (dbus_int32_t) ix; |
905 | 865 | dbus_int32_t v = (dbus_int32_t) value; |
906 | 866 | |
907 | - DBusMessage * msg = create_message("setToggle"); | |
908 | - if(msg) | |
909 | - { | |
910 | - dbus_message_append_args(msg, DBUS_TYPE_INT32, &i, DBUS_TYPE_INT32, &v, DBUS_TYPE_INVALID); | |
911 | - return get_intval(call(msg)); | |
912 | - } | |
913 | - | |
914 | - return -1; | |
867 | + return query_intval("setToggle", DBUS_TYPE_INT32, &i, DBUS_TYPE_INT32, &v, DBUS_TYPE_INVALID); | |
915 | 868 | |
916 | 869 | #else |
917 | 870 | return -1; |
... | ... | @@ -938,14 +891,7 @@ |
938 | 891 | |
939 | 892 | #elif defined(HAVE_DBUS) |
940 | 893 | |
941 | - DBusMessage * msg = create_message("input"); | |
942 | - if(msg) | |
943 | - { | |
944 | - dbus_message_append_args(msg, DBUS_TYPE_STRING, &str, DBUS_TYPE_INVALID); | |
945 | - return get_intval(call(msg)); | |
946 | - } | |
947 | - return -1; | |
948 | - | |
894 | + return query_intval("input", DBUS_TYPE_STRING, &str, DBUS_TYPE_INVALID); | |
949 | 895 | #else |
950 | 896 | |
951 | 897 | return -1; |
... | ... | @@ -966,14 +912,7 @@ |
966 | 912 | |
967 | 913 | dbus_int32_t k = (dbus_int32_t) baddr; |
968 | 914 | |
969 | - DBusMessage * msg = create_message("getFieldStart"); | |
970 | - if(msg) | |
971 | - { | |
972 | - dbus_message_append_args(msg, DBUS_TYPE_INT32, &k, DBUS_TYPE_INVALID); | |
973 | - return get_intval(call(msg)); | |
974 | - } | |
975 | - | |
976 | - return -1; | |
915 | + return query_intval("getFieldStart", DBUS_TYPE_INT32, &k, DBUS_TYPE_INVALID); | |
977 | 916 | |
978 | 917 | #else |
979 | 918 | |
... | ... | @@ -995,14 +934,7 @@ |
995 | 934 | |
996 | 935 | dbus_int32_t k = (dbus_int32_t) baddr; |
997 | 936 | |
998 | - DBusMessage * msg = create_message("getFieldLength"); | |
999 | - if(msg) | |
1000 | - { | |
1001 | - dbus_message_append_args(msg, DBUS_TYPE_INT32, &k, DBUS_TYPE_INVALID); | |
1002 | - return get_intval(call(msg)); | |
1003 | - } | |
1004 | - | |
1005 | - return -1; | |
937 | + return query_intval("getFieldLength", DBUS_TYPE_INT32, &k, DBUS_TYPE_INVALID); | |
1006 | 938 | |
1007 | 939 | #else |
1008 | 940 | |
... | ... | @@ -1048,14 +980,7 @@ |
1048 | 980 | |
1049 | 981 | int set_clipboard(const char *text) |
1050 | 982 | { |
1051 | - DBusMessage * msg = create_message("setClipboard"); | |
1052 | - if(msg) | |
1053 | - { | |
1054 | - dbus_message_append_args(msg, DBUS_TYPE_STRING, &text, DBUS_TYPE_INVALID); | |
1055 | - return get_intval(call(msg)); | |
1056 | - } | |
1057 | - | |
1058 | - return -1; | |
983 | + return query_intval("setClipboard", DBUS_TYPE_STRING, &text, DBUS_TYPE_INVALID); | |
1059 | 984 | } |
1060 | 985 | #endif // HAVE_DBUS |
1061 | 986 | ... | ... |
src/plugins/rx3270/sample/remote.rex