Commit 2cd54c2062e7ddc40b727731cdf70f64dfedc69c
1 parent
82fa758b
Exists in
master
and in
1 other branch
Adding methods to set lib3270's properties.
Showing
7 changed files
with
129 additions
and
3 deletions
Show diff stats
client/ipcclient.cbp
@@ -79,6 +79,7 @@ | @@ -79,6 +79,7 @@ | ||
79 | <Unit filename="src/session/local/get.cc" /> | 79 | <Unit filename="src/session/local/get.cc" /> |
80 | <Unit filename="src/session/local/init.cc" /> | 80 | <Unit filename="src/session/local/init.cc" /> |
81 | <Unit filename="src/session/local/private.h" /> | 81 | <Unit filename="src/session/local/private.h" /> |
82 | + <Unit filename="src/session/local/properties.cc" /> | ||
82 | <Unit filename="src/session/local/set.cc" /> | 83 | <Unit filename="src/session/local/set.cc" /> |
83 | <Unit filename="src/session/local/wait.cc" /> | 84 | <Unit filename="src/session/local/wait.cc" /> |
84 | <Unit filename="src/session/remote/actions.cc" /> | 85 | <Unit filename="src/session/remote/actions.cc" /> |
@@ -97,9 +98,6 @@ | @@ -97,9 +98,6 @@ | ||
97 | <Unit filename="src/session/tools.cc" /> | 98 | <Unit filename="src/session/tools.cc" /> |
98 | <Unit filename="src/testprogram/testprogram.cc" /> | 99 | <Unit filename="src/testprogram/testprogram.cc" /> |
99 | <Extensions> | 100 | <Extensions> |
100 | - <code_completion /> | ||
101 | - <envvars /> | ||
102 | - <debugger /> | ||
103 | <lib_finder disable_auto="1" /> | 101 | <lib_finder disable_auto="1" /> |
104 | </Extensions> | 102 | </Extensions> |
105 | </Project> | 103 | </Project> |
client/src/include/lib3270/ipc.h
@@ -660,6 +660,11 @@ | @@ -660,6 +660,11 @@ | ||
660 | int compare(int baddr, const char* s, int len = -1) const; | 660 | int compare(int baddr, const char* s, int len = -1) const; |
661 | int compare(unsigned short row, unsigned short col, const char* s, int len = -1) const; | 661 | int compare(unsigned short row, unsigned short col, const char* s, int len = -1) const; |
662 | 662 | ||
663 | + virtual void setProperty(const char *name, const int value) = 0; | ||
664 | + virtual void setProperty(const char *name, const unsigned int value) = 0; | ||
665 | + virtual void setProperty(const char *name, const bool value) = 0; | ||
666 | + virtual void setProperty(const char *name, const char *value) = 0; | ||
667 | + | ||
663 | }; | 668 | }; |
664 | 669 | ||
665 | /// @brief TN3270 Host | 670 | /// @brief TN3270 Host |
@@ -954,6 +959,19 @@ | @@ -954,6 +959,19 @@ | ||
954 | int compare(int baddr, const char* s, int len = -1) const; | 959 | int compare(int baddr, const char* s, int len = -1) const; |
955 | int compare(unsigned short row, unsigned short col, const char* s, int len = -1) const; | 960 | int compare(unsigned short row, unsigned short col, const char* s, int len = -1) const; |
956 | 961 | ||
962 | + /* | ||
963 | + Host & setProperty(const char *name, const std::string &value) { | ||
964 | + session->setProperty(name,value.c_str()); | ||
965 | + return *this; | ||
966 | + } | ||
967 | + | ||
968 | + template <typename T> | ||
969 | + Host & setProperty(const char *name, const T value) { | ||
970 | + session->setProperty(name,value); | ||
971 | + return *this; | ||
972 | + } | ||
973 | + */ | ||
974 | + | ||
957 | // Set contents. | 975 | // Set contents. |
958 | 976 | ||
959 | /// @brief Input string. | 977 | /// @brief Input string. |
client/src/session/local/private.h
@@ -162,6 +162,10 @@ | @@ -162,6 +162,10 @@ | ||
162 | unsigned short setCursor(unsigned short row, unsigned short col) override; | 162 | unsigned short setCursor(unsigned short row, unsigned short col) override; |
163 | unsigned short getCursorAddress() override; | 163 | unsigned short getCursorAddress() override; |
164 | Session::Cursor getCursorPosition() override; | 164 | Session::Cursor getCursorPosition() override; |
165 | + void setProperty(const char *name, const int value) override; | ||
166 | + void setProperty(const char *name, const unsigned int value) override; | ||
167 | + void setProperty(const char *name, const bool value) override; | ||
168 | + void setProperty(const char *name, const char *value) override; | ||
165 | 169 | ||
166 | }; | 170 | }; |
167 | 171 |
@@ -0,0 +1,85 @@ | @@ -0,0 +1,85 @@ | ||
1 | +/* | ||
2 | + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | ||
3 | + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | ||
4 | + * aplicativos mainframe. Registro no INPI sob o nome G3270. | ||
5 | + * | ||
6 | + * Copyright (C) <2008> <Banco do Brasil S.A.> | ||
7 | + * | ||
8 | + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | ||
9 | + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | ||
10 | + * Free Software Foundation. | ||
11 | + * | ||
12 | + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | ||
13 | + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | ||
14 | + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | ||
15 | + * obter mais detalhes. | ||
16 | + * | ||
17 | + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | ||
18 | + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin | ||
19 | + * St, Fifth Floor, Boston, MA 02110-1301 USA | ||
20 | + * | ||
21 | + * Este programa está nomeado como - e possui - linhas de código. | ||
22 | + * | ||
23 | + * Contatos: | ||
24 | + * | ||
25 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | ||
26 | + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | ||
27 | + * | ||
28 | + */ | ||
29 | + | ||
30 | +/** | ||
31 | + * @file | ||
32 | + * | ||
33 | + * @brief | ||
34 | + * | ||
35 | + * @author perry.werneck@gmail.com | ||
36 | + * | ||
37 | + */ | ||
38 | + | ||
39 | + #include "private.h" | ||
40 | + #include <lib3270/ipc.h> | ||
41 | + #include <lib3270/properties.h> | ||
42 | + | ||
43 | +/*---[ Implement ]----------------------------------------------------------------------------------*/ | ||
44 | + | ||
45 | + namespace TN3270 { | ||
46 | + | ||
47 | + void Local::Session::setProperty(const char *name, const int value) { | ||
48 | + | ||
49 | + std::lock_guard<std::recursive_mutex> lock(const_cast<Local::Session *>(this)->sync); | ||
50 | + int rc = lib3270_set_int_property(hSession,name,value,0); | ||
51 | + if(rc) | ||
52 | + chkResponse(rc); | ||
53 | + | ||
54 | + } | ||
55 | + | ||
56 | + void Local::Session::setProperty(const char *name, const unsigned int value) { | ||
57 | + | ||
58 | + std::lock_guard<std::recursive_mutex> lock(const_cast<Local::Session *>(this)->sync); | ||
59 | + int rc = lib3270_set_uint_property(hSession,name,value,0); | ||
60 | + if(rc) | ||
61 | + chkResponse(rc); | ||
62 | + | ||
63 | + } | ||
64 | + | ||
65 | + void Local::Session::setProperty(const char *name, const bool value) { | ||
66 | + | ||
67 | + std::lock_guard<std::recursive_mutex> lock(const_cast<Local::Session *>(this)->sync); | ||
68 | + int rc = lib3270_set_boolean_property(hSession,name,(int) value, 0); | ||
69 | + if(rc) | ||
70 | + chkResponse(rc); | ||
71 | + | ||
72 | + } | ||
73 | + | ||
74 | + void Local::Session::setProperty(const char *name, const char *value) { | ||
75 | + | ||
76 | + std::lock_guard<std::recursive_mutex> lock(const_cast<Local::Session *>(this)->sync); | ||
77 | + int rc = lib3270_set_string_property(hSession, name, value, 0); | ||
78 | + if(rc) | ||
79 | + chkResponse(rc); | ||
80 | + | ||
81 | + } | ||
82 | + | ||
83 | + } | ||
84 | + | ||
85 | + |
client/src/session/remote/private.h
@@ -167,6 +167,10 @@ | @@ -167,6 +167,10 @@ | ||
167 | unsigned short setCursor(unsigned short row, unsigned short col) override; | 167 | unsigned short setCursor(unsigned short row, unsigned short col) override; |
168 | unsigned short getCursorAddress() override; | 168 | unsigned short getCursorAddress() override; |
169 | Session::Cursor getCursorPosition() override; | 169 | Session::Cursor getCursorPosition() override; |
170 | + void setProperty(const char *name, const int value) override; | ||
171 | + void setProperty(const char *name, const unsigned int value) override; | ||
172 | + void setProperty(const char *name, const bool value) override; | ||
173 | + void setProperty(const char *name, const char *value) override; | ||
170 | 174 | ||
171 | }; | 175 | }; |
172 | 176 |
client/src/session/remote/properties.cc
@@ -236,6 +236,22 @@ | @@ -236,6 +236,22 @@ | ||
236 | 236 | ||
237 | } | 237 | } |
238 | 238 | ||
239 | + void IPC::Session::setProperty(const char *name, const int value) { | ||
240 | + setAttribute(name,value); | ||
241 | + } | ||
242 | + | ||
243 | + void IPC::Session::setProperty(const char *name, const unsigned int value) { | ||
244 | + setAttribute(name,value); | ||
245 | + } | ||
246 | + | ||
247 | + void IPC::Session::setProperty(const char *name, const bool value) { | ||
248 | + setAttribute(name,value); | ||
249 | + } | ||
250 | + | ||
251 | + void IPC::Session::setProperty(const char *name, const char *value) { | ||
252 | + setAttribute(name,value); | ||
253 | + } | ||
254 | + | ||
239 | } | 255 | } |
240 | 256 | ||
241 | 257 |
client/src/testprogram/testprogram.cc