Commit b417442ed15d0eba5b3555b0ed633ddf8075b673

Authored by Perry Werneck
1 parent e7274ac6

Atualizando módulo cliente com as últimas mudanças na parte de IPC

pw3270.cbp
... ... @@ -284,6 +284,7 @@
284 284 <Unit filename="src/libpw3270cpp/module.cc" />
285 285 <Unit filename="src/libpw3270cpp/private.h" />
286 286 <Unit filename="src/libpw3270cpp/remote.cc" />
  287 + <Unit filename="src/libpw3270cpp/service.cc" />
287 288 <Unit filename="src/libpw3270cpp/session.cc" />
288 289 <Unit filename="src/libpw3270cpp/testprogram.cc" />
289 290 <Unit filename="src/loffice/Makefile.in" />
... ...
src/libpw3270cpp/remote.cc
... ... @@ -817,6 +817,7 @@
817 817 return (LIB3270_SSL_STATE) query_intval(HLLAPI_PACKET_GET_SSL_STATE);
818 818 }
819 819  
  820 +/*
820 821 int connect(void)
821 822 {
822 823 int rc;
... ... @@ -846,6 +847,47 @@
846 847 return rc;
847 848  
848 849 }
  850 +*/
  851 +
  852 + virtual int connect()
  853 + {
  854 + return connect("",0);
  855 + }
  856 +
  857 + virtual int connect(const char *url, time_t wait)
  858 + {
  859 + debug("%s(%s,%u)",__FUNCTION__,url,(unsigned int) wait);
  860 +
  861 +#if defined(WIN32)
  862 +
  863 + #error Reimplementar
  864 +
  865 +#elif defined(HAVE_DBUS)
  866 +
  867 + int rc = query_intval("connect", DBUS_TYPE_STRING, &url, DBUS_TYPE_INVALID);
  868 +
  869 + debug("connect(%s) rc=%d (%s)",url,rc,strerror(rc));
  870 +
  871 + if(!rc && wait) {
  872 + time_t end = time(0) + wait;
  873 + while(!is_connected()) {
  874 + if(time(0) > end) {
  875 + debug("%s: Timeout",__FUNCTION__);
  876 + return ETIMEDOUT;
  877 + }
  878 + usleep(500);
  879 + }
  880 + }
  881 +
  882 +#else
  883 + rc = EINVAL;
  884 +
  885 +#endif
  886 + debug("connect(%s) rc=%d (%s)",url,rc,strerror(rc));
  887 +
  888 + return rc;
  889 +
  890 + }
849 891  
850 892 int set_url(const char *uri)
851 893 {
... ...
src/libpw3270cpp/testprogram.cc
... ... @@ -42,9 +42,9 @@
42 42 try
43 43 {
44 44 string s;
45   - session *session = session::start("service://?");
  45 + // session *session = session::start("service://?");
46 46 // session *session = session::start("");
47   - // session *session = session::start("new");
  47 + session *session = session::start("pw3270:A");
48 48  
49 49 string name = session->get_session_name();
50 50  
... ... @@ -68,7 +68,7 @@
68 68 // s = session->get_host_charset();
69 69 // cout << "\tHost charset: " << s.c_str() << endl;
70 70  
71   - cout << "Connect: " << session->connect("fandezhi.efglobe.com:23",60) << endl << endl;
  71 + cout << "Connect: " << session->connect("tn3270://fandezhi.efglobe.com:23",60) << endl << endl;
72 72  
73 73 cout << "\tWaitForReady: " << session->wait_for_ready(10) << endl;
74 74  
... ... @@ -80,6 +80,7 @@
80 80  
81 81 delete session;
82 82  
  83 + /*
83 84 session = session::start(name.c_str());
84 85 cout << "Restored session: " << name << endl << endl;
85 86 cout << "\tIsConnected: " << session->is_connected() << endl;
... ... @@ -88,6 +89,7 @@
88 89 session->disconnect();
89 90 session->close();
90 91 delete session;
  92 + */
91 93  
92 94 }
93 95 catch(std::exception &e) {
... ...
src/plugins/dbus3270/test.sh
... ... @@ -22,7 +22,7 @@ run_command()
22 22 ;;
23 23  
24 24 connect)
25   - dbus-send --session --print-reply --dest=$DEST.$SESSION $BPATH $DEST.connect string:$2
  25 + dbus-send --session --print-reply --dest=$DEST.$SESSION $BPATH $DEST.connect string:$2 int32:10
26 26 ;;
27 27  
28 28 disconnect)
... ...