From db07d95eabd016dce0123b018e30a7b5aa9e1cb6 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 21 Nov 2018 10:53:06 -0200 Subject: [PATCH] Working in new lib3270 API. --- lib3270++.cbp | 2 ++ local.cc | 7 ++++++- session.cc | 12 ++++++++++++ testprogram/testprogram.cc | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 testprogram/testprogram.cc diff --git a/lib3270++.cbp b/lib3270++.cbp index 5cde9f1..bdb02fa 100644 --- a/lib3270++.cbp +++ b/lib3270++.cbp @@ -41,11 +41,13 @@ + + diff --git a/local.cc b/local.cc index 1e99f9e..0865644 100644 --- a/local.cc +++ b/local.cc @@ -64,7 +64,12 @@ void LocalSession::connect(const char *url) { std::lock_guard lock(sync); - lib3270_connect_url(hSession,url,0); + int rc = lib3270_connect_url(hSession,url,0); + + if(!rc) { + throw std::system_error(rc, std::system_category()); + } + } void LocalSession::disconnect() { diff --git a/session.cc b/session.cc index 2ed957c..61f84b5 100644 --- a/session.cc +++ b/session.cc @@ -43,6 +43,18 @@ namespace TN3270 { + /// @brief Create a tn3270 session. + Session * Session::create(const char *id) { + + if(!id) { + return new LocalSession(); + } + + throw std::system_error(EINVAL, std::system_category()); + + } + + Session::Session() { } diff --git a/testprogram/testprogram.cc b/testprogram/testprogram.cc new file mode 100644 index 0000000..cf2e559 --- /dev/null +++ b/testprogram/testprogram.cc @@ -0,0 +1,52 @@ +/* + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a + * aplicativos mainframe. Registro no INPI sob o nome G3270. + * + * Copyright (C) <2008> + * + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela + * Free Software Foundation. + * + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para + * obter mais detalhes. + * + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin + * St, Fifth Floor, Boston, MA 02110-1301 USA + * + * Este programa está nomeado como lib3270++.h e possui - linhas de código. + * + * Contatos: + * + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) + * + */ + +/** + * @file src/lib3270++/testprogram/testprogram.cc + * + * @brief + * + * @author perry.werneck@gmail.com + * + */ + + #include + +/*---[ Implement ]----------------------------------------------------------------------------------*/ + + int main(int argc, const char *argv[]) { + + TN3270::Host host; + + host.connect(nullptr); + + return 0; + } + + -- libgit2 0.21.2