Commit 12e3bf678ac462e5d1f209ebbcc1fd001f532a66

Authored by perry.werneck@gmail.com
1 parent 93ef46b2

Melhorando objeto dbus

src/classlib/remote.cc
@@ -229,9 +229,28 @@ @@ -229,9 +229,28 @@
229 229
230 int query_intval(const char *method) 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 #else 256 #else
@@ -412,15 +431,10 @@ @@ -412,15 +431,10 @@
412 431
413 trace("%s: Using DBUS name %s",__FUNCTION__,busname); 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 #else 439 #else
426 440
@@ -440,14 +454,9 @@ @@ -440,14 +454,9 @@
440 454
441 try 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 catch(exception e) 461 catch(exception e)
453 { 462 {
@@ -490,14 +499,7 @@ @@ -490,14 +499,7 @@
490 499
491 #elif defined(HAVE_DBUS) 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 if(!rc && wait) 504 if(!rc && wait)
503 return wait_for_ready(120); 505 return wait_for_ready(120);
@@ -537,15 +539,8 @@ @@ -537,15 +539,8 @@
537 { 539 {
538 static const dbus_int32_t delay = 2; 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 trace("waitForReady exits with rc=%d",rc); 544 trace("waitForReady exits with rc=%d",rc);
550 545
551 if(rc != ETIMEDOUT) 546 if(rc != ETIMEDOUT)
@@ -677,14 +672,7 @@ @@ -677,14 +672,7 @@
677 dbus_int32_t r = (dbus_int32_t) row; 672 dbus_int32_t r = (dbus_int32_t) row;
678 dbus_int32_t c = (dbus_int32_t) col; 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 #else 677 #else
690 678
@@ -714,12 +702,7 @@ @@ -714,12 +702,7 @@
714 dbus_int32_t r = (dbus_int32_t) row; 702 dbus_int32_t r = (dbus_int32_t) row;
715 dbus_int32_t c = (dbus_int32_t) col; 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 #endif 707 #endif
725 708
@@ -782,12 +765,7 @@ @@ -782,12 +765,7 @@
782 dbus_int32_t r = (dbus_int32_t) row; 765 dbus_int32_t r = (dbus_int32_t) row;
783 dbus_int32_t c = (dbus_int32_t) col; 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 #endif 770 #endif
793 771
@@ -806,12 +784,7 @@ @@ -806,12 +784,7 @@
806 784
807 dbus_int32_t k = (dbus_int32_t) addr; 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 #endif 789 #endif
817 790
@@ -841,14 +814,7 @@ @@ -841,14 +814,7 @@
841 814
842 dbus_int32_t k = (dbus_int32_t) key; 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 #else 819 #else
854 820
@@ -870,13 +836,7 @@ @@ -870,13 +836,7 @@
870 836
871 dbus_int32_t k = (dbus_int32_t) key; 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 #else 841 #else
882 842
@@ -904,14 +864,7 @@ @@ -904,14 +864,7 @@
904 dbus_int32_t i = (dbus_int32_t) ix; 864 dbus_int32_t i = (dbus_int32_t) ix;
905 dbus_int32_t v = (dbus_int32_t) value; 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 #else 869 #else
917 return -1; 870 return -1;
@@ -938,14 +891,7 @@ @@ -938,14 +891,7 @@
938 891
939 #elif defined(HAVE_DBUS) 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 #else 895 #else
950 896
951 return -1; 897 return -1;
@@ -966,14 +912,7 @@ @@ -966,14 +912,7 @@
966 912
967 dbus_int32_t k = (dbus_int32_t) baddr; 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 #else 917 #else
979 918
@@ -995,14 +934,7 @@ @@ -995,14 +934,7 @@
995 934
996 dbus_int32_t k = (dbus_int32_t) baddr; 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 #else 939 #else
1008 940
@@ -1048,14 +980,7 @@ @@ -1048,14 +980,7 @@
1048 980
1049 int set_clipboard(const char *text) 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 #endif // HAVE_DBUS 985 #endif // HAVE_DBUS
1061 986
src/plugins/rx3270/sample/remote.rex
1 1
2 use arg uri 2 use arg uri
3 3
  4 +trace "?R"
  5 +
4 host = .rx3270~new("pw3270:a") 6 host = .rx3270~new("pw3270:a")
5 7
6 -say "PW3270 version is "||host~revision() 8 +say "PW3270 revision is "||host~revision()
7 say "Connection state is "||host~connected() 9 say "Connection state is "||host~connected()
8 say "Ready state is "||host~ready() 10 say "Ready state is "||host~ready()
9 11