diff --git a/src/include/pw3270cpp.h b/src/include/pw3270cpp.h index 8874675..255ae2e 100644 --- a/src/include/pw3270cpp.h +++ b/src/include/pw3270cpp.h @@ -145,6 +145,7 @@ static void set_plugin(session * (*factory)(const char *name)); virtual string get_session_name(void) const; + virtual int close(void); // Log management void log(const char *fmt, ...); diff --git a/src/libpw3270cpp/service.cc b/src/libpw3270cpp/service.cc index add5886..86fdd97 100644 --- a/src/libpw3270cpp/service.cc +++ b/src/libpw3270cpp/service.cc @@ -326,6 +326,11 @@ return getInteger("isReady", DBUS_TYPE_STRING, &this->id, DBUS_TYPE_INVALID); } + virtual int close(void) + { + return getInteger("destroySession", DBUS_TYPE_STRING, &this->id, DBUS_TYPE_INVALID); + } + virtual LIB3270_CSTATE get_cstate(void) { return (LIB3270_CSTATE) getInteger("getConnectionState", DBUS_TYPE_STRING, &this->id, DBUS_TYPE_INVALID); diff --git a/src/libpw3270cpp/session.cc b/src/libpw3270cpp/session.cc index 1c3134c..2bba6d8 100644 --- a/src/libpw3270cpp/session.cc +++ b/src/libpw3270cpp/session.cc @@ -706,6 +706,9 @@ return string(); } + int session::close(void) { + return 0; + } } diff --git a/src/libpw3270cpp/testprogram.cc b/src/libpw3270cpp/testprogram.cc index 617b5f1..8b6edc6 100644 --- a/src/libpw3270cpp/testprogram.cc +++ b/src/libpw3270cpp/testprogram.cc @@ -74,6 +74,8 @@ cout << "Conteúdo:" << endl << session->get_contents() << endl; session->disconnect(); + session->close(); + delete session; } catch(std::exception &e) { -- libgit2 0.21.2